Kiválasztása php keret symfonys fejlesztő laravel szemét
Helló, a nevem Andrew és én szimfóniát. Nemrég indult egy kis projekt, hogy fejlessze tovább a meglévő SAP rendszerben. Megkezdése előtt a fejlesztés, azt ajánlották, hogy válasszon egy sor szükséges eszközöket, és úgy döntöttem, hogy valami más, mint a natív és ismerős Symfony.
Azt nem mondhatjuk, hogy a Symfony nem alkalmas a feladatok megoldása a projekt, de zavart, az összeg a kódot, hogy meg kellett írni, hogy „Symfony út”. Ezért úgy döntöttem, hogy vizsgálja meg az irányt egyszerűbb eszközökkel.
Saját esett a választás Laravel. Ítélve a véleménye az interneten, ez elég könnyű megtanulni, van egy nagy közösség és a jó mutatkozik a megvalósításához kicsi és egyszerű projekteket. Hogy őszinte legyek, Lenyûgözött használata Symfony komponensek keretében, és már régóta szerettem volna látni, hogy mennyire hatékonyan használják őket más projektekben.
Laravel teljesen váltotta be az elvárásaimat:
- Elég könnyen és gyorsan telepíthető
- Egyszerű és könnyű kialakítás
- Akkor azonnal írásához kereskedelmi kód
Ennek alapján az első benyomások, készítettem egy kis felmérés keretében az építészet és alkatrészek.
Framework - egy projekt struktúra csontváz, ami végre a funkcionalitás "out of the box". Ez a funkció lehetővé teszi, hogy megoldja a leggyakoribb probléma a design. keret építészet végre mind a megfelelő sor minták és jelentésük jól ismert végrehajtásának egyes mintákat.
Laravel architektúra köré épül népszerű az utóbbi években az elvet Inversion of Control >> Függőség Injection >> Service Container. Ez az elv ismerős fejlesztők symfonyban mert Ez az alapja az egész Symfony fejlődését.
Szolgáltatás Container Laravel Symfony nagyon hasonló, kisebb eltérésekkel. Ez nem meglepő, hiszen azt végrehajtja ugyanazt a mintát, de egy kicsit más. Általánosságban meg kell jegyezni, hogy megfosztják a figyelmet Service tartály Laravel dokumentációt. Valószínűleg a fejlesztők a keret ezt nem tartja központi eleme az épület is. Bár lehet, ezek részletes leírását elhagyjuk egyszerűsítése érdekében a dokumentáció és így a fejlesztő képes navigálni a munkát az alkatrész a helyzetet.
További információkért elve Inversion of Control és annak végrehajtási minták (DependencyInjection >> Szolgáltatás Konténer és (anti) minta a ServiceLocator) itt lehet megtekinteni:
Laravel részét használja a Symfony alkatrészeket. Ez nem azt jelenti, hogy az összetevők végre „copy-paste”, és ennek megfelelően dolgoznak egy „kell csak elolvasni a leírást, az eredeti és lehet használni.” Elemek többsége sikeresen beleszőve a vázszerkezet, ahol egy kissé módosított (burkolt), valahol bővült, és beállítani, hogy megfeleljen a „ökoszisztéma” a keret. Tény, hogy ez elég logikus, mert Sf sok elemek szintén kész használható kódot, és jól oldja meg a kitűzött feladatok előtt kereteit általános szinten.
Components keretek: Symfony és hasonlítsa Laravel
Mivel én szimfónia és nézd meg mindent szemével symphonist, akkor megpróbálom összehasonlítani az oldatokat és keretek Laravel Symfony.
HTTP alapjait MVC mintát (vezérlők, Routing, megtekintés)
Tehát, térjünk vissza a gyökerekhez a webes fejlesztés, különösen a HTTP protokoll. Ez nem teszi a szerver oldali kódot, a végén ő egy kis nyomozás, eljárás, és visszatér egy határozott választ. Ha sima PHP, akkor nagyon könnyen összezavarodnak, például a test a választ, és visszatér a válasz fejlécét. Ha hosszú ideig fejlesztés, érdemes megemlíteni „headers already sent”, és meg fogod érteni mindent.
Az ilyen problémák elkerülésére, lehetséges, hogy kövessék a munka a kérés és válasz a munka egy pár megfelelő osztályok (objektumok). HTTPFoundation Symfony alkatrész ezt a célt szolgálja. Ő használt Laravel, és lehetővé teszi, hogy versenyez munkát a HTTP protokoll szintjén. Egyszerű és könnyen használható. A példák szívesen használja a dokumentációt.
MVS minta jól ismert, így elég azt mondani, hogy ez végre Laravel. Ez végre nagyon szabvány: ott ismerik a cselekvések vezérlők, egy szinten a bemutatás sablon segítségével, és minden, ami azt jelenti, a modell.
Egyszerű lépéseket a vezérlő lehet kinézni:
ORM Ékesszóló vs. Tan ORM
Elég szabvány feladatot a web design az, hogy a tárgyak az adatbázisban, és olvasott egy adatbázisból. Együttműködik az adatbázisok által használt úgynevezett modellek. A Laravel kezelési folyamat által végrehajtott adatbázis ORM ékesszóló.
Ékes minta az Active Record, ami sokkal könnyebb DataMapper minták, munkaegység és identitás térkép. Az utóbbit arra használják a Tan ORM, ami egy alapvető ORM számára symfony. Munka Ékesszóló miatt egyszerűség számos előnye van. Talán a legfontosabb: tartózkodás leírásakor modellek és a könnyű használat a kódot. Amikor létrehoz egy modell nem feltétlenül írják le az egyes elérési, elegendő utalni az ingatlan a mező nevét az adatbázisban.
Példa Ékesszóló (a hivatalos dokumentáció):
Továbbá, számos kényelmi lehetőségek, mint a beépített migráció, vagy egy egyszerű leírást a linkek között modelleket. Általában Ékesszóló hasznos modell kialakítása a kis- és közepes méretű. Amennyire ez alkalmas nehéz megmondani egy nagy modell, de azt is feltételezhetjük, hogy hatalmát nem lehet elég.
Artisan vs. konzolparancsok
Mint szinte minden modern keretben, Laravel van egy hatékony eszköz, hogy működjön együtt a konzolt. Ebben nevű funkciót Laravel Artisan (kézműves mester). Ez lehetőséget biztosít, hogy hajtsák végre a különböző rutin műveletek. Alapvetően van koncentrált kódgenerátorok (migráció, modellek, vezérlők, és más hallgatók). A szakember kezelheti feladat sorok végre műveleteket menetrend, tiszta cache, és még sok mást. Ezen túlmenően, ez nagyon könnyű írni a csapatok. Ehhez hozzon létre egy osztályt csapat és regisztrálni. Ön is létrehozhat egy parancsnoki lánc, így azok egymással.
Például, ha azt akarjuk, hogy hozzon létre egy új modellt, mi fut elég a konzol a következő parancsot:
$ Php kézműves is: modell felhasználó
Artisan egy kicsit eltér a szokásos konzol összetevői más keretek között. Fontos tudni, hogy mi ez, és működik. Kedvenc csapat php kézműves inspirálja :).
szolgáltatás Container
Amint azt korábban említettük, Laravel architektúra alapja a minta Service Container. Általában annak végrehajtása nagyon hasonlít a végrehajtást a Symfony, bár vannak kisebb különbségek.
Amikor dolgozik symfonyval, próbálja betartani ezt a mintát és a nyújtás függvényében jóllehet révén összetett réteg absztrakció. A teljes keret épül idióma szolgáltatások, és kap egy bizonyos osztály az objektum nem mindig közvetlenül lehet, hogy olvassa el a vonatkozó szolgáltatások előállítására.
Laravel ebben a tekintetben nem annyira megzavarja. Mint fejlesztő, általában szabad kezet, és találtam néhány példát, amit a szükséges módszerek és tárgyak fogadhat hívásokat át statikus felületeket. Általában ez egy elvének megsértése a sablon, de semmit büntető ebben, ez ízlés dolga, és fejlesztési megközelítést.
Sablonozás: Penge vs. gally
Prezentáció alapján valósul meg a sablon pengével. Ez egy normális sablont. Vannak beépített operátorok (például ha), esetleg nyomós része a sablon, vannak kényelmes generátor html egységek számára hozzáférhetővé kell tenni a szükséges szolgáltatásokat, akkor is írhatunk irányelvet.
Penge tűnt tűnt kevésbé kényelmes, mint Twig. Bár Laravel keret összességében sokkal könnyebb a Symfony ez a Symfony sablonozórendszerét, véleményem szerint, úgy néz ki, könnyebb elsajátítani.
Debug és hibakezelés
A Laravel jelenlegi fejlesztési mód, amelyben a fejlesztő elérhetővé válik egy speciális panel minden oldalon. A hibakeresési panelt, hogy mi történik az oldalán a keret, így a szerver válaszát. Például, akkor megjelenik egy lista a lekérdezések az adatbázis kiváltott kivétel elküldött e-mailek és így tovább. A panel nagyon hasonlít a hibakeresési panelt Symfony, de jelentősen veszít a hatalom.
Elmondhatjuk, hogy az alkotók a Laravel keret kellően gondoskodott fejlesztők: amellett, hogy hibakeresés panelek, a rendszer napló minden, ami történik, van avtogerenatory kódot. Emellett egy speciális funkció dd kimeneti adatsorok a fejlesztés a képernyőn.
Általában az összbenyomás az ipari munkavégzés a Laravel keret továbbra is jó. Ami a sebességet a fejlődés, akkor lényegesen nagyobb, mint amikor dolgozik Symfony. Az egyszerűség kedvéért a keret és annak relatív tartózkodás jelentősen csökkenti az idő, hogy kell tölteni közvetlenül vesződnie. A keret, van egy sor zsemlét, amelyek megkönnyítik a fejlesztő életét, ez is ad egy szép lendületet.
A telepítéshez a keret és a működést harmadik fél könyvtárak által használt zeneszerző, úgy, hogy a telepítés és frissítése külső könyvtár nem jelentenek különösebb nehézséget. Azt is meg kell figyelni, hogy a teljesítménye Laravel. Egy egyszerű keret, és ennek következtében a legtöbb gyors. Néhány konkrét referenciaértékek már nem használt, de az érzések, és egy gyors pillantást a hibakeresési panelt (ó, igen, van még láthatjuk a teljes futási a script), a nyereség sebesség nyilvánvaló.
Egy kicsit csalódott dokumentációt. Annak ellenére, hogy nem mutatnak be, de csak nagyon korlátozott módon. Úgy gondolom, hogy ha kialakult, a fejlesztők által vezérelt ugyanezt az elvet a minimalizmus, mint az építőiparban a keret. Ez magában csak az alapvető funkciókat, a másik csodája a keretet annak vizsgálatára is, vagy keressen az interneten. Nos, ez nagyon gyakori Laravel, és van egy nagy közösség - szinte minden probléma, hogy a találkozás, úgy döntött, régen valaki más.
Végül szeretnék hozzátenni, hogy a keret (szükséges, hogy tegyen eleget a fejlesztők), a gyakorlatban kiderül, pontosan úgy, ahogy van elhelyezve. Ez egy egyszerű és kényelmes eszköz a „mesterek” azokban az esetekben, ahol nem kell bump fel a szelek Enterprise.