CakePHP - Konfiguracja projektu
W tym rozdziale zrozumiemy Environment Variables, General Configuration, Database Configuration i Email Configuration w CakePHP.
ConfigurationCakePHP ma domyślnie jeden plik konfiguracyjny, który możemy modyfikować zgodnie z naszymi potrzebami. Jest jeden dedykowany folder“config”w tym celu. CakePHP ma różne opcje konfiguracji.
Zacznijmy od zrozumienia zmiennych środowiskowych w CakePHP.
Zmienne środowiska
Zmienne środowiskowe ułatwiają pracę aplikacji w różnych środowiskach. Na przykład na serwerze deweloperskim, serwerze testowym, serwerze pomostowym i środowisku serwera produkcyjnego. We wszystkich tych środowiskach możesz skorzystać zenv() function aby odczytać konfigurację dla potrzebnego środowiska i zbudować aplikację.
W folderze konfiguracyjnym znajdziesz config / .env.example. Ten plik zawiera wszystkie zmienne, które zostaną zmienione w zależności od środowiska. Na początek możesz utworzyć plik w folderze konfiguracyjnym, np. Config / .env, zdefiniować te zmienne i ich używać. Jeśli potrzebujesz dodatkowych zmiennych, możesz je umieścić w tym pliku.
Możesz odczytać zmienną środowiskową za pomocą funkcji env (), jak pokazano poniżej -
Przykład
$debug = env('APP_DEBUG', false);
Pierwsza to nazwa odpowiedniej zmiennej środowiskowej, a druga wartość to wartość domyślna. Wartość domyślna jest używana, jeśli nie ma wartości dla zmiennej środowiskowej.
Konfiguracja ogólna
Poniższa tabela opisuje rolę różnych zmiennych i ich wpływ na aplikację CakePHP.
Sr.No | Nazwa i opis zmiennej |
---|---|
1 | debug Zmienia wyjście debugowania CakePHP. false= Tryb produkcyjny. Brak komunikatów o błędach, błędów ani ostrzeżeń. true = Wyświetlane błędy i ostrzeżenia. |
2 | App.namespace Przestrzeń nazw, w której mają znajdować się klasy aplikacji. |
3 | App.baseUrl Usuń komentarz dla tej definicji, jeśli nie planujesz używać mod_rewrite Apache z CakePHP. Nie zapomnij również usunąć plików .htaccess. |
4 | App.base Katalog podstawowy, w którym znajduje się aplikacja. Jeśli false, zostanie to wykryte automatycznie. |
5 | App.encoding Zdefiniuj, jakiego kodowania używa Twoja aplikacja. To kodowanie służy do generowania zestawu znaków w układzie i kodowania jednostek. Powinien pasować do wartości kodowania określonych dla Twojej bazy danych. |
6 | App.webroot Katalog webroot. |
7 | App.wwwRoot Ścieżka do pliku webroot. |
8 | App.fullBaseUrl W pełni kwalifikowana nazwa domeny (łącznie z protokołem) do katalogu głównego aplikacji. |
9 | App.imageBaseUrl Ścieżka sieciowa do publicznego katalogu obrazów w katalogu webroot. |
10 | App.cssBaseUrl Ścieżka sieciowa do publicznego katalogu css w katalogu webroot. |
11 | App.jsBaseUrl Ścieżka sieciowa do publicznego katalogu js w katalogu webroot. |
12 | App.paths Skonfiguruj ścieżki dla zasobów nieopartych na klasach. Obsługujeplugins, templates, locales, subkeys, które pozwalają na definiowanie ścieżek dla wtyczek, odpowiednio szablonów widoków i plików locale. |
13 | Security.salt Losowy ciąg używany do mieszania. Ta wartość jest również używana jako sól HMAC podczas szyfrowania symetrycznego. |
14 | Asset.timestamp Dołącza sygnaturę czasową, która jest czasem ostatniej modyfikacji określonego pliku na końcu adresów URL plików zasobów (CSS, JavaScript, Image) podczas korzystania z odpowiednich pomocników. Prawidłowe wartości to -
|
Konfiguracja baz danych
Bazę danych można skonfigurować w config/app.php and config/app_local.phpplik. Ten plik zawiera domyślne połączenie z podanymi parametrami, które można modyfikować zgodnie z naszym wyborem.
Poniższy fragment pokazuje domyślne parametry i wartości, które należy zmodyfikować zgodnie z wymaganiami.
Config / app_local.php
*/
'Datasources' => [
'default' => [
'host' => 'localhost',
'username' => 'my_app',
'password' => 'secret',
'database' => 'my_app',
'url' => env('DATABASE_URL', null),
],
/*
* The test connection is used during the test suite.
*/
'test' => [
'host' => 'localhost',
//'port' => 'non_standard_port_number',
'username' => 'my_app',
'password' => 'secret',
'database' => 'test_myapp',
//'schema' => 'myapp',
],
],
Rozumiemy szczegółowo każdy parametr w config/app_local.php.
Gospodarz | Nazwa hosta (lub adres IP) serwera bazy danych. |
---|---|
Nazwa Użytkownika | Nazwa użytkownika bazy danych |
hasło | Hasło do bazy danych. |
Baza danych | Nazwa bazy danych. |
Port | Port TCP lub gniazdo Unix używane do łączenia się z serwerem. |
config / app.php
'Datasources' => [
'default' => [
'className' => Connection::class,
'driver' => Mysql::class,
'persistent' => false,
'timezone' => 'UTC',
//'encoding' => 'utf8mb4',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
'quoteIdentifiers' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
],
]
Rozumiemy szczegółowo każdy parametr w config/app.php.
logSr.No | Klucz i opis |
---|---|
1 | className Pełna nazwa klasy z przestrzenią nazw, która reprezentuje połączenie z serwerem bazy danych. Klasa ta odpowiada m.in. za ładowanie sterownika bazy danych, udostępnianie mechanizmów transakcji SQL oraz przygotowywanie instrukcji SQL. |
2 | driver Nazwa klasy sterownika używanego do implementacji wszystkich specyfikacji silnika bazy danych. Może to być krótka nazwa klasy wykorzystująca składnię wtyczki, pełna nazwa z przestrzenią nazw lub skonstruowana instancja sterownika. Przykładami krótkich nazw klas są MySQL, Sqlite, Postgres i Sqlserver. |
3 | persistent Czy używać trwałego połączenia z bazą danych. |
4 | encoding Wskazuje zestaw znaków, który ma być używany podczas wysyłania instrukcji SQL do serwera, takich jak „utf8” itp. |
5 | timezone Strefa czasowa serwera do ustawienia. |
6 | init Lista zapytań, które powinny być wysyłane do serwera bazy danych podczas tworzenia połączenia. |
7 | log Ustaw na true, aby włączyć rejestrowanie zapytań. Po włączeniu zapytania będą rejestrowane na poziomie debugowania z zakresem queriesLog. |
8 | quoteIdentifiers Ustaw na true, jeśli używasz słów zastrzeżonych lub znaków specjalnych w nazwach tabel lub kolumn. Włączenie tego ustawienia spowoduje, że zapytania utworzone za pomocą narzędzia do tworzenia zapytań będą miały identyfikatory cytowane podczas tworzenia kodu SQL. Zmniejsza wydajność. |
9 | flags Tablica asocjacyjna stałych PDO, które należy przekazać do podstawowej instancji PDO. |
10 | cacheMetadata Wartość logiczna prawda lub ciąg znaków zawierający konfigurację pamięci podręcznej do przechowywania metadanych. Wyłączenie buforowania metadanych nie jest zalecane i może spowodować bardzo niską wydajność. |
Konfiguracja poczty e-mail
Email można skonfigurować w pliku config/app.php. Nie jest wymagane definiowanie konfiguracji poczty e-mail w config / app.php. E-mail może być używany bez niego. Po prostu użyj odpowiednich metod, aby ustawić wszystkie konfiguracje oddzielnie lub załadować tablicę konfiguracji. Konfiguracja domyślnych ustawień poczty e-mail jest tworzona za pomocąconfig() i configTransport().
Transport konfiguracji poczty e-mail
Definiując transport oddzielnie od profili dostawy, można łatwo ponownie wykorzystać konfigurację transportu w wielu profilach. Możesz określić wiele konfiguracji do produkcji, programowania i testowania. Każdy transport wymaga nazwy klasy. Prawidłowe opcje są następujące -
Mail - Wyślij za pomocą funkcji poczty PHP
Smtp - Wyślij za pomocą SMTP
Debug - Nie wysyłaj e-maila, po prostu zwróć wynik
Możesz dodać transporty niestandardowe (lub zastąpić istniejące transporty), dodając odpowiedni plik do src/Mailer/Transport. Należy nazwać transportyYourTransport.php, gdzie 'Your' to nazwa transportu.
Poniżej znajduje się przykład transportu konfiguracji poczty e-mail.
'EmailTransport' => [
'default' => [
'className' => 'Mail',
// The following keys are used in SMTP transports
'host' => 'localhost',
'port' => 25,
'timeout' => 30,
'username' => 'user',
'password' => 'secret',
'client' => null,
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
],
Profile dostarczania poczty e-mail
Profile dostarczania umożliwiają wstępne zdefiniowanie różnych właściwości wiadomości e-mail z aplikacji i nadanie ustawieniom nazwy. Oszczędza to duplikację w całej aplikacji i ułatwia konserwację i rozwój. Każdy profil akceptuje kilka kluczy.
Poniżej znajduje się przykład profili dostarczania poczty e-mail.
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'you@localhost',
],
],