Az alkalmazás beállítása a cakePHP3-ban, a cakePP-vel kapcsolatos blog

Az alkalmazás beállítása

A konfigurációs paraméterek általában PHP vagy INI fájlokban tárolódnak, és betöltődnek az alkalmazás kezdeti letöltésekor. A CakePHP egy alapértelmezett konfigurációs fájllal rendelkezik, de szükség esetén további konfigurációs fájlokat is felvehet és felhasználhatja őket az alkalmazás indításakor. A Cake \ Core \ Configure a globális konfigurációhoz használható, és a gyorsítótár típusú osztályok a config () módokon alapulnak. ami egyszerűvé és érthetővé teszi a beállítást.

További konfigurációs fájlok letöltése

Ha az alkalmazásnak sok konfigurációs lehetősége van, célszerű lehet a konfigurációt több fájlba osztani. Miután létrehozta a könyvtárban lévő összes fájlt, konfigurálja /. azokat be kell tölteni a bootstrap.php fájlba:

További konfigurációs fájlokat is használhat a környezet újrafogalmazásához. Az app.php után letöltött fájlok felülbírálhatják az előzőleg megadott értékeket, lehetővé téve a konfigurációs környezetek konfigurálását a fejlesztési környezetekhez vagy a rendezők környezetéhez.

Általános konfiguráció

Az alábbiakban ismertetjük a környezeti változók leírását és azok hatását a CakePHP alkalmazására.

Debug Módosítja a hibakeresési információk kimenetét. False = Nincs hiba vagy figyelmeztető üzenet. True = hibaelhárítási mód, amely hibákat és figyelmeztetéseket jelenít meg. App.namespace A névtér, amelyben az alkalmazásosztályok találhatók.

Fontos! Ha módosítja a névtér a konfigurációban, frissítenie kell a composer.json fájlt is. hogy használhassa ezt a névteret. Ezenkívül hozzon létre egy új autoloaderot a php composer.phar dumpautoload futtatásával a parancssorból.

A következő szakaszok az általános konfigurációra is vonatkoznak:

  • Adatbázis konfiguráció;
  • Cache konfiguráció;
  • A hibakezelés és kivételek beállítása;
  • Naplózási konfiguráció;
  • Az e-mail konfigurálása;
  • Munkamenet-konfiguráció;
  • Szavak alakváltozásának konfigurálása (Inflector);
  • Útvonal konfiguráció.

További osztálypályák

A további osztálypályákat az alkalmazás autoloaderei konfigurálják. Ha a zeneszerzőt használva létrehoz egy autoloadert, hogy pótirányzatokat biztosítson a vezérlők számára, akkor a következőket kell tennie (composer.json-fájl):

A fenti bejegyzés az App és az App \ Controller névterek elérési útvonalát határozza meg. Először ellenőrizni fogja az első kulcsot, és ha ez az elérési út nem tartalmazza a kívánt osztályt / fájlt, a második kulcsot keresik. Lehetőség van egy névtér több könyvtárra történő leképezésére is:

A plugin, a bemutató sablon és a lokalizáció módjai

Mivel a bővítmények, a sablonok és a lokalizáció nem osztályok, azok nem konfigurálhatók autoloaderrel. A CakePHP három változót tartalmaz a konfigurációban, ha további erőforrásokat kell beállítani. A config / app.php fájlban beállíthatja a megfelelő változókat:

Konfigurálja az osztályt

A CakePHP Configure osztály használható speciális alkalmazások vagy futási értékek tárolására és letöltésére. Legyen óvatos, ez az osztály lehetővé teszi, hogy bármiben tároljon benne valamit, majd használd a kódod bármely más részén: az igazi kísértés az, hogy megtörje a CakePHP-ben kifejlesztett MVC sablont. A Configure osztály fő célja olyan centralizált változók tárolása, amelyek különböző objektumokkal oszthatók meg. Ne felejtse el követni ezt az elvet, és nem fogja megtörni a fejlesztők MVC struktúráját.

A Konfigurálás osztály az alkalmazásból bárhonnan elérhetõ a következõ kód megadásával:

Konfigurációs adatok rögzítése

statikus Cake \ Core \ Configure :: write ($ kulcs, $ érték)

A write () segítségével írja le az adatokat az alkalmazás konfigurációjában:

Figyelj! A $ kulcsparaméterben használt pontjelzés. a konfigurációs beállítások logikai csoportokban történő rendezésére használható.

A fenti példa egy hívásra is felvehető:

A Configure :: write ('debug', $ bool) használatával átválthat a hibakeresési és a gyártási módok között, amelyet úgy hívnak, hogy - menet közben. Ez különösen hasznos a JSON interakcióhoz, amikor az információ hibakeresése problémákat okozhat a szintaxisszerkesztés során.

A konfigurációs adatok olvasása

statikus Cake \ Core \ Configure :: read ($ key = null)

Az alkalmazásból származó konfigurációs adatok olvasására szolgál. A megadott kulcs adatait visszaadják. A fenti példában, ahol a write () metódust használtuk, a rögzített adatokat az alábbiak szerint olvashatjuk:

Ha a $ kulcs nincs megadva, akkor a módszer minden konfigurációs értéket visszaad.

statikus Cake \ Core \ Configure :: readOrFail ($ kulcs)

A konfigurációs adatokat ugyanúgy olvassa el, mint a Cake \ Core \ Configure :: read. de elvárja, hogy kulcs / érték párt találjon. Abban az esetben, ha a keresett pár nem létezik, akkor a RuntimeException eldobásra kerül:

Figyelem! új verzió 3.1.7: Konfigurálás :: readOrFail () a 3.1.7-es verzió óta hozzáadva

Ellenőrizze, hogy van-e megadva konfigurációs adatok

statikus Cake \ Core \ Configure :: check ($ kulcs)

A kulcs / elérési út meglétének ellenőrzése esetén az igaz vagy hamis:

Konfigurációs adatok törlése

statikus Cake \ Core \ Configure :: delete ($ kulcs)

Információk törlésére az alkalmazás konfigurációjából:

A konfigurációs adatok olvasása és további törlése

statikus Cake \ Core \ Configure :: fogyaszt ($ kulcs)

A kulcs elolvasása és törlése a konfigurációból. Ez akkor hasznos, ha az értékeket olvasni és törölni szeretne egyetlen műveletben.

A konfigurációs fájlok olvasása és írása

statikus Cake \ Core \ Configure :: config ($ név, $ motor)

A Konfiguráláshoz számos mechanizmust használhat különböző típusú konfigurációs fájlok olvasásához különböző forrásokból. A csatlakoztatott mechanizmusokkal kölcsönhatásba léphet számos további módszerrel a Konfigurálásban. A konfigurációs mechanizmusok csatlakoztatásának ellenőrzéséhez használja a Configure :: configured () beállítást:

statikus Cake \ Core \ Configure :: drop ($ név)

A csatlakoztatott mechanizmusokat is törölheti. A Configure :: drop ("alapértelmezett") beállítás eltávolítja azt a mechanizmust, amelyik az alias "alapértelmezett". A későbbi próbálkozások a konfigurációs fájlok letöltésére a mechanizmushoz sikertelenek lesznek:

Konfigurációs fájlok letöltése

statikus Cake \ Core \ Configure :: load ($ kulcs, $ config = 'alapértelmezett', $ merge = true)

Miután csatlakoztatta a megfelelő mechanizmust a Konfiguráláshoz, akkor letöltheti a konfigurációs fájlokat:

A betöltött konfigurációs fájlok összevonják az adataikat a konfigurációban beállított konfigurációval. Ezzel felülírhatja vagy új értékeket adhat hozzá a meglévő alkalmazásbeállításokhoz. A $ merge true értékre való beállításával az értékek nem lesznek felülírva, hanem a meglévő konfigurációval kombinálva.

Konfigurációs fájlok létrehozása vagy módosítása

statikus Cake \ Core \ Configure :: dump ($ kulcs, $ config = 'alapértelmezett', $ keys = [])

Az adatok egészét vagy egy részét az Konfigurálásból egy konfigurációs motor által támogatott fájlra vagy tárolórendszerre tölti le. A sorszámozási formátumot a csatlakoztatott mechanizmus határozza meg, amelynek álnevét $ config-ban határozzák meg. Ha például a mechanizmus "alapértelmezett" aliasja a Cake \ Core \ Configure \ Engine \ PhpConfig. akkor a generált fájl egy Cake \ Core \ Configure \ Engine \ PhpConfig betöltött PHP konfigurációs fájl lesz

Ha az "alapértelmezett" mechanizmus a PhpConfig példánya. Minden Konfigurációs adatok beállítása a my_config.php fájlban kerül mentésre:

Csak a hibakezelési konfiguráció marad meg:

A Configure :: dump () beállítás a konfigurációs fájlok módosítására vagy felülírására szolgál, amelyeket később a Configure :: load () paranccsal lehet olvasni.

Futásidejű konfiguráció mentése

statikus Cake \ Core \ Configure :: store ($ név, $ cacheConfig = 'alapértelmezett', $ data = null)

A futásidejű konfigurációs értékeket (futásidejű) is elmentheti egy későbbi lekérdezéshez. Mivel a Konfigurálás csak az aktuális kérés értékeire emlékeztet, minden módosított konfigurációs adatot el kell mentenie, ha azt később szeretné használni:

Az adatokat a konfigurációnak megfelelően tárolják a gyorsítótárban.

Mentett konfiguráció visszaállítása futásidejűleg

statikus Cake \ Core \ Configure :: visszaállítás ($ name, $ cacheConfig = 'default')

Miután mentette a futásidejű konfigurációs értékeket, valószínűleg szükség lehet ezek visszaállítására későbbi felhasználásra. A Configure :: restore () beállítás ezt teszi:

A konfigurációs adatok visszaállításakor fontos megjegyezni, hogy ugyanazzal a kulccsal és a gyorsítótár-konfiguráció nevével visszaállítja a mentést. A visszanyert adatok összevonásra kerülnek a meglévő futásidejű konfigurációval.

Saját konfigurációs mechanizmusok létrehozása

Mivel a konfiguráció a CakePHP kiterjeszthető része, létrehozhat saját mechanizmusokat alkalmazásokban és plug-inekben. A létrehozott mechanizmusoknak végre kell hajtaniuk a Cake \ Core \ Configure \ ConfigEngineInterface programot. Ez az interfész magában foglalja az olvasás módját, mint az egyetlen szükséges módszert. Ha XML konfigurációs fájlokat szeretne használni, létrehozhat egy egyszerű XML-konfigurációs mechanizmust az alkalmazáshoz:

A config / bootstrap.php fájlban csatlakoztathatja az újonnan létrehozott motort, majd használhatja azt:

A konfigurációs modulban lévő read () metódusnak vissza kell adnia egy olyan konfigurációs információs tömböt, amely $ key nevű erőforrást tartalmaz.

Meghatározza az osztályok által használt konfigurációs adatokat olvasó és a Konfigurációban tárolt interfészeket

Paraméterek: $ key (string) - A kulcs neve vagy azonosítója a letöltéshez.

Ezzel a módszerrel be kell tölteni / elemezni kell a $ key kulcs által azonosított konfigurációs adatokat, és vissza kell adni egy adatmintát a konfigurációs fájlból.

Cake \ Core \ Configure \ ConfigEngineInterface :: dump ($ kulcs, tömb $ adatok)

Paraméterek: $ key (string) - Az azonosító (fájlnév), ahol a rekord elkészül; $ data (tömb) - a dump (rekord) adatai.

Ennek a módszernek tárolnia kell a megadott konfigurációs adatokat a $ key kulcs által azonosított kulcsszó által megadott fájlban.

Beépített konfigurációs mechanizmus

PHP konfigurációs fájlok

Töltse le a konfigurációs fájl (customConfig.php) akkor helyezze a config / bootstrap.php az alábbi kódot:

Ini konfigurációs fájlok

  • elválasztási pont értékeket alakítjuk tömbök;
  • Logikai típusú értékek, mint a «a» és «le», alakítjuk logikai értékek «igaz» és «hamis».

Egy példa a tartalom ini fájl az alábbiak szerint:

Ez a példa ini-fájlt eredményez az azonos végső konfigurációs adatokat, és hogy a fenti példa PHP. Struktúrák tömbök hozhatók létre akár egy elválasztott pontokat akár a szakaszok. Szakasz is tartalmazhat szaggatott kulcsok mélyebb mellékletet.

A konfigurációs fájlok JSON

Lehetővé teszi, hogy az ürítés / .json olvasás konfigurációs fájlok, amelyben az információ tárolódik a JSON-kódolt szálakat.

A fenti példa a tartalom json fájl alábbi:

Bootstrapping CakePHP (Bootstrapping)

Ha további konfigurációs követelményeit, amelyhez hozzá kell adni a config / bootstrap.php az alkalmazás fájlt. Csatlakozó config / bootstrap.php fájl lefut, mielőtt minden kérést és egy parancsot a CLI.

Ez a fájl ideális egy sor közös problémák a boot:

Csábító lehet helyezni formázási funkciók vannak annak érdekében, hogy használja őket a vezérlők. Mint azt látni fogja a „szabályozók» (vezérlők) és a „teljesítmény»(Views), vannak jobb módszerek, hogy adjunk egyéni logika az alkalmazásban.

Alkalmazás :: bootstrap ()

Amellett, hogy a config / bootstrap.php fájlt. amelyeket fel kell használni az alacsony szintű alkalmazás beállításait, akkor is használni egy horog módszer alkalmazása :: bootstrap () betöltéséhez / inicializálni a plug-inek és csatlakozik a globális esemény hallgatók:

környezeti változók

Néhány mai szolgáltatók felhő megoldások, mint a Heroku, lehetővé teszi, hogy meghatározza a környezeti változók. Környezeti változót definiálni, akkor állítsd be a projekt, mint a CakePHP alkalmazás 12 faktorok (12factor app). Követve 12factor app utasításokat. létrehozhat egy alkalmazás hontalan (hontalan), valamint egyszerűsítik a telepítés. Ez például azt jelenti, hogy ha meg akarja változtatni az adatbázis-kapcsolat, akkor csak meg kell változtatni a változó DATABASE_URL a gépkonfigurációs anélkül, hogy változtatni a forráskódot.

A fentiek alapján, a app.php fájlt. láthatjuk a következő változókat:

  • DEBUG (0 vagy 1);
  • APP_ENCODING (azaz UTF-8);
  • APP_DEFAULT_LOCALE (azaz hu);
  • SECURITY_SALT;
  • CACHE_DEFAULT_URL (azaz a file: /// prefix = myapp_serialize = truetimeout = 3600path = .. / tmp / cache /?);
  • CACHE_CAKECORE_URL (azaz a file: /// prefix = myapp_cake_core_serialize = truetimeout = 3600path = .. / tmp / cache / tartós /?);
  • CACHE_CAKEMODEL_URL (azaz a file: /// prefix = myapp_cake_model_serialize = truetimeout = 3600path = .. / tmp / cache / modellek /?);
  • EMAIL_TRANSPORT_DEFAULT_URL (azaz smtp: // felhasználó: jelszó @ gépnév: port TLS = nullclient = nulltimeout = 30?);
  • DATABASE_URL (azaz mysql: // user: pass @ db / my_app);
  • DATABASE_TEST_URL (azaz mysql: // user: pass @ db / test_my_app);
  • LOG_DEBUG_URL (vagyis a fájl: /// szintek [] = noticelevels [] = infolevels [] = debugfile = debugpath = .. / logs /?);
  • LOG_ERROR_URL (vagyis a fájl :? /// szinten [] = warninglevels [] = errorlevels [] = criticallevels [] = alertlevels [] = emergencyfile = errorpath = .. / logs /).

Mint látható, a példákban definiálunk néhány konfigurációs lehetőség a DSN-line (DSN - adatforrás neve). Ez azokra az adatbázisokra, folyóiratok, e-mail közlekedés és cache konfigurációkat.

Ha a környezeti változó nincs definiálva, CakePHP fogja használni a megadott értékek app.php fájlt. Használhatja php-dotenv könyvtárat használja környezeti változók a helyi fejlesztés. További információkért lásd az utasításokat a Readme a könyvtár.

Letiltása általános asztalok

Amikor a közös asztalra osztályok, más néven avtotablitsami, a gyors fejlődés az új alkalmazások és hasznos modell sütés, a teljes asztal osztály bonyolulttá teheti hibakeresés bizonyos helyzetekben.

Ellenőrizni tudja, hogy a kérelem kiállítása az általános osztály a táblázat segítségével SQL DebugKit panel DebugKit. Ha még mindig nem tudja diagnosztizálni a problémát, amit okozhat avtotablitsami, akkor dobni egy kivételt, amikor CakePHP hallgatólagosan használja az általános Cake \ ORM \ táblázat helyett az adott osztály az alábbiak szerint: