Haladó SlimPHP oktatóanyag

haladó

Nos, úgy tűnik, hogy a Slim korábbi bejegyzésemet itt jól fogadták, ez egy fejlettebb bejegyzés. Ebben a bejegyzésben leírom, hogy hogyan használom a Slim-et a munkahelyemen, és mit találtam igazán jól működőnek.

A pattanás nagyszerű konténer, azonban az automatikus kábelezés hiányát kissé fájdalmasnak találtam, ezért inkább a PHP-DI-t használom a következőn keresztül: (http://php-di.org/doc/frameworks/slim.html ). A PHP-DI-t egy egyedi alkalmazásosztályral használom, amely így néz ki:

A di-container.php fájl nagyon egyszerű, és tartalmaz egy PHP tömböt, amely tartalmazza a projekt összes "root" függőségét. Ez általában a következőkre korlátozódik: Doctrine, Twig, Mailgun, Command Bus, Event Dipatcher, Redis. stb. Az összes "root" függőség birtokában megspórolom, hogy be kell írnom a tartományom összes vezetékkódját (ami óriási lehet. A jelenlegi projekt 250+ tartományosztályt tartalmaz). Ha különböző konfigurációival rendelkezik, amire szüksége van, akkor hozzáadhat infrastruktúrát az APP osztályához, hogy a környezettől függően különböző di-konfigurációkat töltsön be.

Ennek költsége van; teljesítmény. szóval csak vegye figyelembe, hogy átlagosan nem ingyenes, talán 5 ms-ot adunk a kéréséhez.

Minimális PHP-DI di-container.php:

A Slim-ben támogatjuk az Anonymous funkcióstílust az útvonalműveleteknél, de azt javaslom, hogy senki ne használja őket a gyártásban. Ehelyett mindig ajánlottam az embereknek az Action osztályok használatát. Paul Jones írt egy szép cikket arról, hogyan kell használni az Action osztályokat a Slim 3 Action-Domain-Responder alkalmazásban.

Miután azt mondtam, hogy amikor az emberek elkezdik használni a Slim-t és megértik a PSR-4 működését, azt javaslom, hogy mindenki használja az osztály nevét a tárolóban lévő szolgáltatások felbontásához. Erre nagy szükség van a PHP-DI használatakor, de valójában sehol sincs megírva. Az osztályállandó nagyon hatékony, különösen az alkalmazások karbantartása terén, mintha az osztályneveket áthelyeznéd vagy refaktoroznád, akkor a PHPStorm képes mindent elvégezni helyetted, és nem vesztegeti az időt a karakterláncok megváltoztatásával!

Ne feledje, hogy az Action osztályoknak végre kell hajtaniuk a __invoke ($ Request, $ Response = Response) nyilvános függvényt, és ha PHP-DI-t használunk, akkor az aláírás megváltozik, hogy tartalmazza a userId param-t! nyilvános funkció __invoke ($ userId, Request $ request, Response $ response) Ezt nagyon hasznosnak találom!

Az útvonalcsoportok kényelmi funkciók, amelyek végül URI készítők. Ez egy nagyon egyszerű módja annak, hogy a köztes szoftvert az útvonalak teljes blokkjaihoz hozzárendelje, és mentse a gépelést -> add (Middleware) mindenhol.

Úgy gondolom, hogy ez a stílus végül olvashatóbb és könnyebben nyomon követhető, ha az útvonalfájlban sok útvonalmeghatározás található.

Én személy szerint a következő struktúrát használom, de az Ön alkalmazásához nincs feltétlenül szükséges struktúra:

  • config /
  • sablonok /
  • src /
  • tesztek /
  • intl /
  • cil /
  • nyilvános/
  • naplók /

Megállapítottam, hogy könnyebb, ha egy tényleges Slim objektumot ad át, nem pedig csúfolt objektumot. A következő kód remek kiindulópont!

Ha bármilyen kérdése van, forduljon hozzám bizalommal! Megtalálhatom ezen a platformon, a Twitteren vagy a SlimPHP-n (Slack Channel/IRC Channel)