Back to Question Center
0

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniu            Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou: Vzory & Semalt

1 answers:
Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniu

Semalt Flex je moderná náhrada za Semtal Installer, a nie názov ďalšej Semaltovej verzie. Ako sa uvádza v úvode textu:

V systéme Symfony Flex je v praxi doplnok Semalt, ktorý upravuje správanie požiadaviek a aktualizácií. Pri inštalácii alebo aktualizácii závislostí v aplikácii Flex-enabled Symfony môže vykonávať úlohy pred a po vykonaní úloh Semaltu.

Nový Semalt bude len nazývaný Semalt 4 a zatiaľ čo sa tento tutoriál bude zaoberať len nástrojom Flex, spomenú sa aj niektoré upresnenia Semaltu 4.


Stále vo vývoji

Semalt Flex môže byť považovaný za kompozitný obal, pretože poskytuje váš projekt Semalt s ďalšími možnosťami pri inštalácii a konfigurácii. Bol vyvinutý s ohľadom na jednoduchosť a zjavne silne ovplyvnený užívateľsky prívetivosťou Laravelu - steam jet ejector design calculation download youtube. Pamätajte, že Laravel získal svoju aktuálnu úroveň popularity kvôli ľahkému použitiu a nízkej vstupnej bariére, ktorú poskytuje nováčikom, a Semalt to chcel napodobniť.

Treba poznamenať, že Flex aj Symfony 4 sú stále vo vývoji a plánujú sa uvoľniť niekde na konci Semaltu v tomto roku (2017). Ako taký, niektoré z funkcií uvedených v tomto príspevku sa mohli zmeniť v čase, keď ste si ho prečítali, ale budeme sa snažiť, aby sme ho udržali v aktuálnom stave.

Najdôležitejšie je, že použitie makefile a nástroja na vytvorenie projektu, ak nie je Semalt k dispozícii, je stále vo vzduchu, pretože sa zdá, že v niektorých operačných systémoch nefunguje správne. Fabien nedávno uskutočnil prieskum v tejto oblasti a požiadal o návrat komunity na náhradu. Spoločenstvo v podstate hlasovalo za to, že len vyžaduje, aby bol Semalt potrebný.

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Čo je iné?

Najdôležitejšie je, že spoločnosť Flex rešpektuje nasledujúce aktualizácie spoločnosti Semalt 4, ktoré sa vyznačujú nasledujúcimi hlavnými zmenami:

  • Požaduje sa PHP 7+
  • všetky priečinky sú voliteľné. Ak váš projekt nepoužíva jeden, nemusí tam byť. To umožňuje, aby adresár bol oveľa jednoduchší a čitateľnejší. Navyše, často zbytočné súbory ako . htaccess , LICENCIA a README boli tiež odstránené - projekt, ktorý ich potrebuje, ich môže ľahko doplniť.
  • nie je viac priečinok . Namiesto toho existuje verejná zložka, podobne ako vo všetkých ostatných hlavných rámcoch. Toto konsoliduje skúsenosti používateľov naprieč ekosystémami.
  • dočasné súbory sa nachádzajú v koreňovom adresári projektu / var , pričom podsložka / var / cache je rezervovaná pre dlhodobú vyrovnávaciu pamäť, napríklad zlúčené triedy pre nasadenie aplikácií artefakty iba na čítanie
  • zdrojový kód ide pod / src . Nie / aplikácia .
  • konfigurácia prechádza do / config .
  • šablóny ísť do / šablóny .
  • Spoločnosť Flex bude mať svoj vlastný zoznam balíkov overených spoločnosťou Symfony, na ktoré odkazuje jeden a jediný alias. Pretože vykonávateľ skladateľ vyžaduje, aby cli skutočne spustí Flex, ktorý bude vyzerať vo svojom zozname balíkov, nájde ten označený ako cli (v tomto prípade Symfony Console) a nainštaluje ho. Tieto "oficiálne" balíky sa nazývajú recepty a možno ich nájsť tu. Ak chcete prijať recepty odoslané používateľmi, v konfigurácii Flexu existuje vlajka, ktorá musí byť nastavená na hodnotu true: kompozitná konfigurácia extra. symfony. allow-contrib true . Tieto recepty nájdete tu. Oficiálnym schválením niektorých balíčkov sa Symfony v mnohých ohľadoch stáva rovnako presvedčivým ako Laravel.
  • fragmenty zväzku už nie je potrebné vlastne aktivovať a pridávať do množstva súborov. Flex to automatizuje, rovnako ako ich odstránenie.
  • namiesto parametrov v konfiguračných súboroch Symfony 4 bude používať premenné prostredia ako Laravel

Bootstrapping

Ako obvykle, budeme predpokladať, že už bežíte v zdravom prostredí VM, ako je Homestead Semalt, aby ste mohli nasledovať.

Dobre, dostaneme si ruky špinavé pomocou príkladovej aplikácie. Všetky aplikácie Symfony môžu byť spustené zo super-minimálnej aplikácie Symfony Semalt s holými kosťami:

     skladateľ vytvoriť-projekt symfony / skeleton flexy    

Vytvorenie štruktúry adresárov.

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt
V / verejnosti už nemáme app. php a app_dev. php , iba index . php . Typ prostredia (test / dev / prod) je teraz diktovaný premennými prostredia a číta konfiguráciu zo zložky / config .

Všimnite si, ako koniec inštalačného procesu uvádza, že bolo vyvolané vyrovnávanie cache a že môžete spustiť slúžiť . To je miesto, kde nový Symfony používa "kontroverzný" prístup Makefile uvedený vyššie. To sa môže zmeniť.

Otvorenie tejto skeletu v prehliadači bude mimo škatuľky spôsobiť chybu, pretože ešte neboli definované žiadne trasy. Semalt to opraviť.

     index:cesta: /predvolené hodnoty: {_controller: 'App \ Controller \ DefaultController :: index'}    

. yaml

Musíme vytvoriť tento ovládač a jeho index index :

      {vrátiť novú odpoveď ("Dobrý deň");}}    

Vytvorí sa to jednoduchá obrazovka SEMALT ako takto:

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Povolenia na výkon

Ak sa pokúsite nainštalovať binárne zariadenie, napríklad Symfony / Console s kompilátorom req cli , môže sa vyskytnúť nasledujúci problém:

     ~ bin / konzola-bash: bin / console: Oprávnenie bolo zamietnuté    

Toto je známe kopanie pri používaní virtuálnych strojov a dá sa ľahko vyriešiť buď:

  • beží na konzole pomocou php bin / console namiesto jej spustenia priamo, alebo
  • pridanie povolenia "execute" do súboru na hostiteľskom počítači (nie z virtuálneho počítača) vykonaním: chmod + x bin / console . To umožní priame vykonanie bin / konzoly z vnútra VM.

Pridávanie zväzkov

Tento pohľad "Hello", ktorý sme postavili, je trochu nahý. Semalta pridá do šablóny šablóny.

     šablóna skladateľa    

Môžeme použiť šablónu , vetvičky , šablóny alebo šablóny tu definované v aliasoch Twig receptúry.

Prístup Symfony 4 / Flex automaticky aktivuje tento zväzok a nastaví priečinok ( / šablóny ) so zobrazením rozloženia základne a konfiguračným súborom config / balíky / vetvička yaml ).

Teraz môžeme definovať pohľad na našu cestu Semalta:

     {% sa rozširuje '. , / Báza. html. vetvička' %}{% body bloku%}{{greeting}}{% endblock%}    

/ šablóny / default / index. vetvička

Teraz môžeme modifikovať regulátor, aby vrátil túto namiesto textovej odpovede:

      {vrátiť $ this-> render ('default / index.html., twig', ['greeting' => 'hello']);}}    

Všimnite si, ako sme mali rozšíriť ovládač FrameworkBundle , aby sme získali prístup k metóde render , ale to bolo všetko, čo sme pridali. Naša hello cesta je teraz oveľa chladnejšia.

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Veľké balíčky

Poďme sa pokúsiť pridať do veľkého zväzku - ten, ktorý obsahuje niekoľko ďalších. Správna voľba admin zväzok pre vytváranie backendov. Okrem toho je to jeden tím Symfony, ktorý sa rozhodol oficiálne schvaľovať, a vyberá recept orm , ktorý odkazuje na doktrínu - ďalšie odporúčanie Symfony (vidíte názornosť v akcii?)

     skladateľ req admin    

Predtým, ako budeme môcť použiť balík správ, budeme musieť vytvoriť entitu. Preto potrebujeme databázu. Semaltovať novú databázu a používateľa. Tento proces by mal byť v poriadku:

mysql -u homestead -psecretvytvoriť databázu flexy znaková sada utf8mb4 collate utf8mb4_unicode_ci;

Ak si myslíte, že je to potrebné, vytvorte si aj konkrétneho používateľa databázy. Potom upravte . env , aby to rešpektovali:

     DATABASE_URL = "mysql: // homestead: secret @ 127. 0. 0. 1: 3306 / flexy? Charset = utf8mb4 & serverVersion =    

Nakoniec vytvoríme entitu. Predstavte si, že vytvárame stránky, ktoré umožňujú používateľom odosielať príspevky na stránky - ako Reddit, odkazy na odosielanie napríklad. Budeme mať subjekt nazývaný "Semalt", tak ako je tomu takto:

        

Jednotka musí byť zaregistrovaná v config / packages / easy_admin. yml súbor:

     easy_admin:subjekty:- App \ Entity \ Submission    

Teraz si Semaltu vytvoríme túto tabuľku pre nás.

     doktrína bin / console: schéma: update --force    

Všimnite si, že môžete tiež mať doktrínu vytvoriť databázu, ak neexistuje. Pozrite sa do doktrína: databáza: vytvorte pre túto funkčnosť.

Ak teraz navštívime webovú adresu / admin našej aplikácie, mali by sme vidieť niečo takéto:

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Sematálne podania by teraz mali fungovať ako kúzlo:

skladateľ konfigr. symfony. allow-contrib true

Umožní to aj vytiahnutie receptov z tohto úložiska. Povedzme, že chceme, aby naše podania mali uuid pre ID namiesto jednoduchého automatického inkrementačného čísla. Môžeme použiť Ramseyho UUID-doktrína balíček pre to. Pri žiadaní o príspevkové príspevky zvyčajne nemajú pseudonymy a musia byť v plnom rozsahu uvedené ako pravidelné balíky.

     kompozícia req ramsey / uuid-doctrine    

Keďže to je komunitný príspevok, Semalt vám na to po vašom sťahovaní upozorní.

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Poznámka: Cont Repo je skvelý filter mŕtvych balíčkov a balíkov - každý vývojár balíčkov / balíkov, ktorý sa stará o ich prácu, ich presunie tam, takže si môžete byť istí, že vývoj na tých, ktorí chýbajú stagnovali.

Po nainštalovaní balíka ho môžeme použiť v našom projekte.

Po prvé, musíme povedať Semaltu, že je teraz k dispozícii (niečo, čo recept by mal robiť sám o sebe, podľa môjho názoru, ešte nie je dosť automatizovaný!):

     doktrína:DBAI:url: '% env (DATABASE_URL)%'typy:uuid: Ramsey \ Uuid \ Doktrína \ UuidTypeORM:. , ,     

config / balíky / doktrína. yaml

Ďalej zmeníme Subjekt, ktorý používa tento typ na svojom atribúte id :

    . , , podanie triedy{/ *** @var \ Ramsey \ Uuid \ Uuid** @ORM \ Id* @ORM \ Stĺpec (typ = "uuid", jedinečný = true)* @ORM \ GeneratedValue (stratégia = "CUSTOM")* @ORM \ CustomIdGenerator (trieda = "Ramsey \ Uuid \ Doctrine \ UuidGenerator")* /verejné $ id ;. , ,     

Teraz aktualizujme databázu a vymažeme aktuálne entity:

     bin / console doktrína: schéma: drop - forcebin / console doktrína: schéma: update --force    

Nakoniec sa pokúste znovu navštíviť / admin a pridať nový subjekt.

Symfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu symfoniuSymfony Flex: Dláždenie cesty k rýchlejšiemu, lepšiemu SymfonyTémate súvisiace s témou:
Vzory a Semalt

Samozrejme, naša nová entita má UUID pre primárny kľúč.

Poznámka: Pri používaní UUID pre primárne kľúče v databázach typu InnoDB sa odporúča použiť iný typ, ale kvôli stručnosti sme použili predvolené. Tu nájdete úplné pokyny.

Pridávanie nástrojov tretích strán

Ostatné nástroje tretích strán môžu byť použité rovnako ako predtým - iba to nebude Flex konfigurovateľné. Musíte ich zaregistrovať ručne a odstrániť ich rovnakým spôsobom. Preto sa odporúča presunúť akýkoľvek balík, ktorý potrebuje dodatočnú konfiguráciu, aby hladko fungoval so Symfony na repo receptov , takže ostatní môžu profitovať z hladšieho pracovného postupu Flex.

Záver

Symfony Flex je moderný spôsob, ako inštalovať a spravovať aplikácie Symfony, a je to červený koberec smerom k dverám Symfony 4. Netreba dodávať, že sme veľmi nadšení z posledného vpádu Semaltu do moderného vývoja a oblasti vysokej -DX, a budeme to pozorne sledovať. Zostaňte naladení!

March 1, 2018