ПредишенСледващото

Конфигурация приложение

N Настройки за конфигурация обикновено се съхраняват във файлове или PHP INI и натоварени по молба на стартиране. CakePHP идва с конфигурационен файл по подразбиране, но ако е необходимо, можете да добавите допълнителни конфигурационни файлове и да ги използвате, когато стартирате приложението си. Торта \ ядро ​​\ Configure използва за глобалната конфигурация и вида на класове на базата на (метод конфигурационния Cache). което прави настройката просто и разбираемо.

Качване на конфигурационни файлове по поръчка

Ако вашето приложение има набор от конфигурационни параметри може да бъде полезно да се разделят на конфигурацията на няколко файла. След създаването на всеки от файловете в директорията довереник /. те трябва да бъдат заредени в bootstrap.php:

Можете също да използвате допълнителни конфигурационни файлове за замяна на околната среда. Всеки файл изтеглен след app.php, може да замени по-рано обявена стойност, което позволява да персонализирате конфигурацията за среди за разработка или междинен медии.

Обща конфигурация

По-долу са описани на околната среда променливи и тяхното въздействие върху вашата кандидатура CakePHP.

Промени Debug грешки по. Фалшиви = няма съобщения за грешки и предупреждения. Вярно = отстраняване на грешки режим, който показва грешки и предупреждения. App.namespace пространство от имена, което съдържа класове за кандидатстване.

Важно! При редактиране на пространството от имена в конфигурацията, вие също трябва да се актуализира composer.json файл. за да можете да използвате тази пространство от имена. В допълнение, създайте нов Autoloader бягане PHP composer.phar dumpautoload от командния ред.

Само една обща конфигурация включва следните раздели:

  • конфигурацията на база данни;
  • конфигурация кеширане;
  • Създаване обработка на грешки и изключения;
  • Влизане конфигурация;
  • Създаване на електронна поща;
  • сесия за конфигурация;
  • промени в конфигурацията дума форма (Inflector);
  • маршрутизация конфигурация.

Допълнителна CLASSPATH

Допълнителни CLASSPATH autoloaders конфигурирани чрез вашата кандидатура. Когато използвате Композитор да генерира AutoLoader да осигури алтернативни маршрути за контролера, трябва да направите следното (composer.json на файла):

Записване по-горе ще определи пътя за App пространство от имена и App \ контролер. Отначало тя ще провери първо ключа, а ако този път не съдържа необходимия клас / файла ще бъде претърсвана за втория ключ. Сравнение на един пространство от имена също позволи на мулти-директория:

Начини да се включват презентация шаблон и локализация

Тъй като плъгини, шаблони и локализация не са класове, те не могат да бъдат конфигурирани Autoloader. CakePHP осигурява три променливи в конфигурацията, ако трябва да конфигурирате допълнителни пътища за тези ресурси. В конфигурационния / app.php можете да коригирате съответните променливи:

Конфигуриране клас

CakePHP Configure клас може да се използва за съхраняване и извличане на стойности на специфични приложения или околната среда по време на работа. Бъдете внимателни, този клас позволява да съхранявате в него всичко, което искате, и след това да я използват във всяка друга част от вашия код: истински изкушение разбиване на разработени в CakePHP MVC модел. Основната цел на клас Configure - да водят централизирани променливи, които могат да бъдат споделяни между различните обекти. Не забравяйте да следвате този принцип и да не се прекъсне рамка MVC, създадена от разработчиците.

Можете да получите достъп до Configure клас от всяка точка на приложение, моля, напиши следния код:

Записване на данните за конфигуриране

статично торта \ ядро ​​\ Configure :: запис ($ ключ, $ стойност)

Използвайте запис () за съхранение на данни в конфигурацията на приложение:

Обърнете внимание! нотацията точковият използван в ключа за параметър $. Може да се използва за организиране на настройките за конфигурация в логически групи.

Горният пример може да се запише и в един разговор:

Можете да използвате Configure :: запис ( "отстраняване на грешки", $ булев), за да превключвате между отстраняване на грешки и производство, което е - в движение. Това е особено полезно за взаимодействие JSON, когато информацията за отстраняване на грешки може да предизвика проблеми с анализа на синтаксис.

Конфигурационни данни за четене

статично торта \ ядро ​​\ Configure :: чете ($ ключ = нула)

Използва се чете данните за конфигуриране от приложението. данни възвръщаемост за определен ключ. За примера по-горе, където е бил използван методът на записване (), можем да прочетем на записаните данни е както следва:

Ако ключът за $ не е уточнено, методът връща всички стойности конфигурирате.

статично торта \ ядро ​​\ Configure :: readOrFail ($ ключ)

Чете конфигурационните данни, както и торта \ ядро ​​\ Конфигуриране :: чете. но очаква да намери двойката ключ / стойност. Ако бъде поискано от двойката не съществува, изключение е хвърлен RuntimeException:

Предупреждение. Ново във версия 3.1.7: Конфигурирайте :: readOrFail () добавя от версия 3.1.7

Проверка дали данните за конфигурация са дефинирани

статично торта \ ядро ​​\ Configure :: чек ($ ключ)

Използва се, за да проверите / път, връща вярно или невярно:

Премахване на конфигурационни данни

статично торта \ ядро ​​\ Configure :: изтриете ($ ключ)

Използва се за изтриване на информация от конфигурацията на приложение:

Четене и последващо отстраняване на данните за конфигурация

статично торта \ ядро ​​\ Configure :: консумират ($ ключ)

Четене и изтриване на ключ от конфигурацията. Това е полезно, когато искате да комбинирате стойности за четене и изтриване с една операция.

Четене и писане на конфигурационни файлове

статично торта \ ядро ​​\ Configure :: довереник (име $, $ двигател)

Можете да използвате множество механизми, свързани с конфигуриране, за да прочетете различни видове конфигурационни файлове от различни източници. Можете да си взаимодействат с механизъм, за да се свържете с помощта на няколко допълнителни методи за конфигуриране. За проверка на които механизми са свързани конфигурация, използвайте Конфигуриране :: конфигуриран ():

статично торта \ ядро ​​\ Configure :: капка ($ име)

Можете също да премахнете механизмите за свързване. Конфигуриране :: спад ( "по подразбиране") изтрива механизъм, имащ псевдоним "по подразбиране". Всички последващи опити да се изтеглят конфигурационни файлове за този механизъм - да се провали:

За да изтеглите конфигурационния файл

статично торта \ ядро ​​\ Configure :: натоварване ($ ключ, $ довереник = 'по подразбиране', $ сливане = вярно)

След като се свържете с Конфигуриране на подходящ механизъм, а след това можете да изтеглите конфигурационния файл:

Заредени конфигурационни файлове се обединят своите данни със съществуващата конфигурация в конфигурирате. Това ви позволява да замени или да добави стойност към съществуващите настройки на приложението. $ Настройка, за да е вярно Сливането, стойността няма да бъде презаписан и ще обедини със съществуващата конфигурация.

Създаване или промяна на конфигурационни файлове

статично торта \ ядро ​​\ Configure :: сметище ($ ключ, $ довереник = 'по подразбиране', $ ключове = [])

Освобождаване на всички или част от данните от конфигурирате файл или съхранение система, поддържани от механизма за конфигурация. сериализация формат определя от механизма за връзка, псевдоним, който е посочен в $ довереник. Например, ако псевдоним «подразбиране» механизма торта \ ядро ​​\ Configure \ Engine \ PhpConfig. а след това на генерирания файл ще бъде файл PHP конфигурация, натоварени с торта \ ядро ​​\ Configure \ Engine \ PhpConfig

Ако механизма на "неизпълнение" е пример за PhpConfig. Конфигуриране на всички конфигурационни данни ще бъдат запазени в my_config.php на файла:

Само запази конфигурацията обработка на грешки:

Конфигуриране :: зареже () се използва, за да промените или пренапише конфигурационни файлове, които по-късно могат да се четат с помощта на Configure :: натоварване ().

Записване конфигурация по време на работа

статично торта \ ядро ​​\ Configure :: магазин ($ име, $ cacheConfig = "неизпълнение", $ данни = нула)

Можете също така да спестите време, представяне ценности конфигурация (по време на работа) за бъдещото търсене. От магазина Конфигуриране само стойностите за текущата заявка, че ще трябва да спаси всяка промяна в информацията за конфигурацията, ако искате да го използвате и в бъдеще:

Данните се съхраняват в кеша според конфигурацията му.

Възстановяване на запазената Runtime Configuration

статично торта \ ядро ​​\ Configure :: възстановяване (име $, $ cacheConfig = "неизпълнение")

След като запазите стойностите конфигурация на времето за изпълнение, най-вероятно може да се наложи да ги възстанови за по-нататъшна употреба. Конфигуриране :: възстановяване () прави точно това:

Когато се възстановяват информацията за конфигурацията е важно да се помни, че за събирането на неговото случва с помощта на един и същ ключ и името на конфигурацията на кеш, които са били използвани, за да го съхраните. Реставрираната информация е интегрирана върху съществуваща конфигурация по време на работа.

Създайте свои собствени механизми за конфигурация

Тъй като конфигурацията е разширяема част от CakePHP, можете да създадете свои собствени неговите механизми в своите приложения и плъгини. Създаване на механизми трябва да прилагат торта \ ядро ​​\ Configure \ ConfigEngineInterface. Този интерфейс включва създаването метод на четене като единственият метод е необходимо. Ако искате да използвате XML конфигурационни файлове, можете да създадете един прост механизъм конфигурация Xml за вашето приложение:

В конфигурационния / bootstrap.php можете да се свържете новосъздадения двигателя и след това да го използвате:

прочетете метод () в модула за конфигурация трябва да се върне на информация за конфигурацията масив, който съдържа ресурса с клавиша име $.

Дефинира интерфейс, използван от класове, които четат конфигурационни данни и да ги съхранявате в Конфигуриране

Параметри: $ ключ (низ) - Името на ключа или ID, за да изтеглите.

Този метод трябва да се зареди / разбор идентифицирани конфигурационни данни ключ ключ $ и да се върне масив от данни от конфигурационен файл.

Торта \ ядро ​​\ Configure \ ConfigEngineInterface :: сметище ($ ключ, масив $ данни)

Параметри: $ ключ (низ) - идентификатор (името на файла), до който искате да запишете; $ Данни (масив) - сметище на данни (запис).

следва да се предвиди Този метод за поддържане на конфигурационни данни във файл с името на идентифицирания ключ ключ $.

Вграден механизми конфигурация

конфигурационни файлове PHP

За да изтеглите конфигурационния файл (customConfig.php) възниква поставете във конфигурационния / bootstrap.php следния код:

конфигурационни файлове Ини

  • стойности за разделяне точка се превръщат в масиви;
  • ценности булеви тип, като например «на» и «изключване», се преобразуват в логически стойности «истински» и «невярно».

Пример за съдържанието на INI файл е показано по-долу:

Този пример INI-файл ще доведе до същите окончателните данни за конфигурация, както и че по-горе пример PHP. Конструкции решетки могат да бъдат създадени или чрез разделени точки стойност или чрез секциите. Раздел може да съдържа и пунктирани клавиши за по-дълбока привързаност.

Конфигурационни файлове Json

Позволява сметище / .json четене конфигурационни файлове, в които информацията се съхранява като JSON кодирани струни.

Горният пример на съдържанието JSON файл по-долу:

Bootstrapping CakePHP (Bootstrapping)

Ако имате допълнителни изисквания за конфигурация, те трябва да се добави в конфигурационния / bootstrap.php кандидатурата си по делото. Свързване довереник / bootstrap.php файл се изпълнява преди всяко искане и команда в CLI.

Този файл е идеален за широка гама от често срещаните проблеми на багажника:

Тя може да бъде изкушаващо да поставите форматиране функции там, за да ги използвате във вашите контролери. Както ще видите в "Контрольори» (контрольори), както и "Ефективност» (Views), има по-добри начини да добавите потребителски логика в молбата Ви.

Заявление :: фърмуера ()

В допълнение към файла конфигурационния / bootstrap.php. който трябва да се използва за настройките на приложението на ниско ниво, можете да използвате и метод кука Application :: фърмуера (), за да се зареди / инициализира плъгините и се присъедини към слушателите на световните събития:

променливи

Някои от днешните доставчици на облачни решения като Heroku, ви позволяват да определите променливи на средата. Определете променлива среда, можете да настроите своя проект като приложение CakePHP с 12 фактори (12factor приложението). След инструкции 12factor ап. можете да създадете без гражданство заявление (без гражданство) и опростяване на въвеждането му. Това означава например, че ако искате да промените свързването към базата данни, просто трябва да се промени променливата DATABASE_URL в конфигурацията на хост без да се налага да променят изходния код.

Въз основа на изложеното по-горе, в app.php файл. можете да видите от следните променливи:

  • DEBUG (0 или 1);
  • APP_ENCODING (т.е. UTF-8);
  • APP_DEFAULT_LOCALE (т.е. en_US);
  • SECURITY_SALT;
  • CACHE_DEFAULT_URL (т.е. на файла: /// префикс = myapp_serialize = truetimeout = 3600path = .. / TMP / кеш /);
  • CACHE_CAKECORE_URL (т.е. на файла: /// префикс = myapp_cake_core_serialize = truetimeout = 3600path = .. / TMP / кеш / постоянна /);
  • CACHE_CAKEMODEL_URL (т.е. на файла: /// префикс = myapp_cake_model_serialize = truetimeout = 3600path = .. / TMP / кеш / модели /);
  • EMAIL_TRANSPORT_DEFAULT_URL (т.е. SMTP: // потребител: парола @ хост: порт TLS = nullclient = nulltimeout = 30);
  • DATABASE_URL (т.е. MySQL: // потребител: подаване @ db / my_app);
  • DATABASE_TEST_URL (т.е. MySQL: // потребител: подаване @ db / test_my_app);
  • LOG_DEBUG_URL (т.е. файл: /// нива [] = noticelevels [] = infolevels [] = debugfile = debugpath = .. / трупи /);
  • LOG_ERROR_URL (т.е. файл :? /// нива [] = warninglevels [] = errorlevels [] = criticallevels [] = alertlevels [] = emergencyfile = errorpath = .. / трупи /).

Както можете да видите в примерите, ние определяме някои опции за конфигуриране, като DSN-линия (DSN - име на източник на данни). Това се отнася за бази данни, списания, е-мейл транспорт и кеш конфигурации.

Ако вашите системни променливи не са определени, CakePHP ще използва стойностите, определени в app.php файл. Можете да използвате PHP-dotenv библиотека, за да използвате променливи на обкръжението в местното развитие. За повече информация, вижте инструкциите в Readme на библиотеката.

Деактивирането на общите маси

При използване на общата маса на класовете, наричан още avtotablitsami, с бързото развитие на нови приложения и полезни модели на печене, общата маса класа може да усложни отстраняване на грешки в някои сценарии.

Можете да проверите дали искането е издадено от общия клас на масата с помощта на SQL DebugKit панел DebugKit. Ако все още не може да се диагностицира проблема, които могат да бъдат причинени avtotablitsami, можете да се хвърли изключение, когато CakePHP имплицитно използва общата торта \ ORM \ таблица вместо вашия конкретен клас, както следва:

Подкрепете проекта - споделете линка, благодаря!