Symfony - konfiguracja połączenia z bazą danych

Stronę tą wyświetlono już: 24 razy

Cofnijmy się nieco w czasie i przestrzeni do początków przygody z Symfony. Okazuje się bowiem, że już na początkowym etapie tworzenia projektu strony w Symfony wyświetlane są podstawowe informacje na temat miejsca, gdzie framework ten ma zapisane ustawienia. Warto więc sobie przypomnieć, jak wyglądał komunikat wygenerowany przy tworzeniu projektu:

              
 What's next? 
              

  * Run your application:
    1. Change to the project directory
    2. Create your code repository with the git init command
    3. Run composer require server --dev to install the development web server,
       or configure another supported web server https://symfony.com/doc/current/setup/web_server_configuration.html

  * Read the documentation at https://symfony.com/doc

                        
 Database Configuration 
                        

  * Modify your DATABASE_URL config in .env

  * Configure the driver (mysql) and
    server_version (5.7) in config/packages/doctrine.yaml

              
 How to test? 
              

  * Write test cases in the tests/ folder
  * Run php bin/phpunit

Jak widać, konfiguracja została przeniesiona w Symfony 4.3 do pliku .env. Z tego też względu z najdzikszą rozkoszą przedstawiam poniżej zawartość tegoż pliku:

Listing 1
  1. # In all environments, the following files are loaded if they exist,
  2. # the later taking precedence over the former:
  3. #
  4. # * .env contains default values for the environment variables needed by the app
  5. # * .env.local uncommitted file with local overrides
  6. # * .env.$APP_ENV committed environment-specific defaults
  7. # * .env.$APP_ENV.local uncommitted environment-specific overrides
  8. #
  9. # Real environment variables win over .env files.
  10. #
  11. # DO NOT DEFINE PRODUCTION SECRETS IN THIS FILE NOR IN ANY OTHER COMMITTED FILES.
  12. #
  13. # Run "composer dump-env prod" to compile .env files for production use (requires symfony/flex >=1.2).
  14. # https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
  15. ###> symfony/framework-bundle ###
  16. APP_ENV=dev
  17. APP_SECRET=135d01e162bb1396c87667c6896e7aa4
  18. #TRUSTED_PROXIES=127.0.0.1,127.0.0.2
  19. #TRUSTED_HOSTS='^localhost|example.com$'
  20. ###< symfony/framework-bundle ###
  21. ###> doctrine/doctrine-bundle ###
  22. # Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
  23. # For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
  24. # Configure your db driver and server_version in config/packages/doctrine.yaml
  25. DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name
  26. ###< doctrine/doctrine-bundle ###
  27. ###> symfony/swiftmailer-bundle ###
  28. # For Gmail as a transport, use: "gmail://username:password@localhost"
  29. # For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
  30. # Delivery is disabled by default via "null://localhost"
  31. MAILER_URL=null://localhost
  32. ###< symfony/swiftmailer-bundle ###

Oczywiście w tym przypadku interesuje mnie linijka 27:

Listing 2
  1. DATABASE_URL=mysql://db_user:db_password@127.0.0.1:3306/db_name

w której:

  • db_user - oznacza nazwę użytkownika (np. root);
  • db_password - oznacza miejsce wstawienia hasła;
  • 127.0.0.1:3306 - oznacza połączenie z lokalhost-em na porcie 3306 (standardowy dla bazy danych mysql);
  • db_name - nazwa bazy danych, do której się chcesz podłączyć

Komentarze