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: