Back to Question Center
0

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina Better            Symfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî: Patterns & Semalt

1 answers:
Symfony Flex: Paving Path To A Faster, Better Symfony

Semalt Flex ji bo guhertina Semaltê ya nûjen e, û ne navê navê Semaltê din. Wekî gotina nivîsê dibêje:

Di hundurê, Symfony Flex plugînek Semalt e ku rêbazên hewceyê û destûra nûjen bikin biguherîne. Dema ku serîlêdana sazkirinê ya li ser Flex-enabled, sazkirina karûbarên Semaltê li pêş û paşê karên xwe pêk bînin.

Semaltê nû dê tenê tenê Semalt 4, û dema ku ev tutorial dê bi tenê bi Flexê re peyman bikî, ew ê çend rojên navendên Semalt 4 re bêjin.


Piştre Pêşveçûnê

Semalt Flex dikare tête wesayîtek komputerê tête kirin, da ku ew projeya Semalt bi alternatîfên sazkirinê û veguhastinê ve pêşkêş dike. Ew bi ramanek bi hêsanî ve hate pêşxistin, û eşkere ji hêla bikarhêner-hevalbendiya Laravel ve girêdayî ye - compare costs long term care insurance. Bînin bîra xwe, Laravel bi asta xwe ya bikaranîn û astengiya nizanînê ya ku ew bi nûçeyan re pêşkêş dike, û Semalt dixwaze ev eşkere dike.

Divê ev bisekinin ku her du Flex û Symfony 4 jî hîn di bin pêşveçûnê de, ji bo serbestberdana serbixwê li dawiya Semalt (2017). Wekî weha, hinek taybetmendiyên ku di vê vê postê de behsa ku dibe ku hûn dixwînin guhertin guhertin, lê em ê ji me re çêtirîn bikin ku her dem bi dirêj bimînin.

Piranîya, karanîna karûbarên çêkirî û amadekirina çêkirina projeyê ava dike ku Semalt ne diyar e ku hîn jî li hewayê ye, ji ber ku ew xuya dike ku li ser pergalên hin operasyonê neyê kirin. Fabien vê nêzîkê lêkolînek pêk anî, ji bo pêşniyarên civaka ji bo veguhestinê digerin, û civakî, civata bi alîgiriya Semalt hewce kir.

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Cûda ye?

Piraniya taybetî, Flex ji bo guherînên mezin ên Semalt 4 yên ku ji bo guhertinên jêrîn bigirin re rêzdar dike:

  • PHP 7+ hewce ye
  • hemî peldankan alternatîf hene. Ger projeya we bikar nîne, ew nayê heye. Vê pelê dara herî hêsan e û bêtir xwendin. Additionally, pelên bêhtir mîna mîna . htaccess , LICENSE , û README jî ji bo veşartin - projeyek ku hewce dike ku bi wan re hêsan zêde bikin.
  • peldanka nû malper heye. Li berevajî, peldankê peldanka gelemperî , wekî di çarçoveyek din ên mezin de hene. Ew bikarhênerek li ser ekosystemsên paqij dike.
  • Pelên temaşe
  • di root de projeya projeyê de / var / cache veguherîn ji bo cachek demdirêj ve girêdayî ye, wekî pelên klasîk yên ji bo bicîhkirina sepanên wekî Hunermendên xwendinê
  • çavkaniya kodê bin / src . Na / app .
  • sazkirinê diçe / config .
  • Şablonên ku di nav / Şablonên de diçin.
  • Flex wê bi navê xwe ya Symfony-pirtûkên piştrastkirî ya ku yek yek û yek bi tenê tête referend kirin. Ji ber vê yekê wesayîtkirina komputer hewce dike ku dê bi rastî Flex, ku di lîsteya pakêtan de binêrin, li ser cli (di vê rewşê de, Peymana Symfonyoyê) bibîne, û saz bikin. Ev pakêtên "fermî" têne recipes, û dikarin li vir bibînin. Ji bo ku tedbîra bikarhênerên pêşkêşkirî-pejirandin, ala alî di pergala Flexê de heye, divê hewce bike ku rast be: Composer config extra. symfony. destûra rast . Ew xwarinên ku li vir têne dîtin. Bi fermî piştrastkirina hin pakêtan, Symfony di gelek awayan de wekî ku wekî Lavavel tê dîtin.
  • pêdiviyên pûçeyan hewce ne hewce nebe ku bala xweş-aktîf bêne kirin û di tonek pelan de zêdekirin. Flex ev û herweha wekî rakirina hilweşanê dike.
  • ji bo pelên peldankên di pelên config de, Symfony 4 dê pîvana hawirdorê wekî Laravel

Bootstrapping

Wek demjimêre, em ê wisa difikirin ku hûn jixwe pêşerojek VM ê mîna Homestead Semalt dimeşîne ku hûn dikarin li pey wan bikin.

Ma baş, em destên xwe bi mînakek mînakek zehmet bibin. Alîkarên hemî Symfony dikarin niha ji hestên bêhêl-ê-ê Semfony-Semalt-ê Semîtîk dest pê kirin:

     composer-made-project-symfony / skeleton-a-firotanê    

Semalt ku avakirina derhênerê çêkir.

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Li / gelemperî , em êdî ne

app heye. php û
app_dev. php , tenê index . pelê php . Cureyê avahiyê (test / dev / prod) niha bi bihevra hawirdorê veguherîn, û peldankê ji / peldanka peldankê bixwîne.

Heke di dawiya pêvajoya sazkirinê de diyar dike ku cache-germê tê gotin, û hûn dikarin diçin hûn xizmetê bikin . Vê yekê ku Symfony têgihîştina nîqaşê "nîqaşî" çêbibe ku li jorê ye. Ev dibe guhertin.

Ji derveyî, pişka vê skeletonê di gerokê de vekin, wê çewtiyek xistin çimkî ji hêla rê ve nehatiye diyarkirin. Semalt fix this.

     index:riya: /defaults: {_ kontroller: 'App \ Controller \ DefaultController :: index'}    

config / rênîşandan. yaml

Em ê hewce ne ku vê controller û wê çalakiya index biafirînin:

        

Vê êvarê ya Semaltê hêsan e, mîna vî awayî:

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Destûra Rêveberiyê

Heke hûn hewldan bikin ku wekî binaryek wekheviya Konferansa Symfony / Console bi req cli , hûn dikarin pirsgirêkek jêrîn diçin:

     ~ bin / console-bash: bin / console: Permission denied    

Dema ku pîşesazên sîgorteyê bikar bîne, ev hiccup tê zanîn û dikare bi hêsanî jî ji hêla xuyakirinê ye:

  • li ser console, an jî
  • bi rêbazê bi php bin / console digire
  • destnîşan kir ku "destûra" destûra pelê li ser mizgefta mêvandar (ne di nav malê de), bi rêve kirin: chmod + x bin / console . Ev dê ji bo darvekirina rasterast ya bin / console ji hundirê VM di nav de.
(166) Bendên barkirin

Vê ku "em" helbest "nêrînek çêkiriye cûreyek cûreyek e. Semalt çend hûrgelan digire tevlihevê.

     komputer req template    

Em dikarin tembû , tîrmeh , Şablonan , an jî

temaşe bikin , wekî ku di navên tîpê de destnîşan kirin.

Vê nêzîkhevkirina Symfony 4 / Flex dê bixwe ji me re bundle çalak bike û peldankek pelê / tembûr ) bi a bingeha veguhastin, config / pakajan / tûb. Yaml ).

Em nuha azad e ku ji bo rêberiya Semalt ya me veguherînin:

     {% derxe '. /bingeh. html. '%}{body block block%%}{{helbest}}{% endbar%}    

/ templates / default / index. twig

Niha em dikarin kontrola kontrolkirinê bikin, ji bo şûna vê bersivê veguherîna plain plain:

        pêşkêş kirin ('default / index html.' twig ', [' greet '=>' hello ']);}}    

Dike ku em ê bi rêvebirin ku çêdibe FrameworkBundle ya dirêjkirina dirêjkirina destûrê bide rêbazê , lê li ser tevahiya sazkirinê ya ku ji me re gotibû bû. Rûwaya me ya helwesta rêkûpêk e.

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Bendên mezin

Niha em hewce bike ku di navenda mezin de zêde bikin - yek ku gelek kesên din hene. rêveberiya bundle ji bo paşketina afirandina paşde çêbibe. Ji bilî, yek yek e ku teamê Symfony biryar da ku bi fermî piştrast bike, û ew di orm recipe, ku ji bo Dîtanînê ve tête veguhestin - (Pêşniyarek din li pêşniyara çalakiyê bibînin?)

     komputer req admin    

Divê em ê hewce bike ku yekînek çêbikin ku beriya em bikaribin karê rêveberê bikar bînin. Ji ber vê yekê, em hewceyek danûstendin. Semalt database û bikarhênerê nû. Ev pêvajoyê divê baş be:

     mysql -u homestead -psecretdatabases hilbijêre ferdkeyxy utf8mb4 collate utf8mb4_unicode_ci;    

Ji bo ku hûn hewce ne hewce ye ku hûn bikarhênerek taybetî ya danûstendek çêbikin ku hûn biaxifînin. Hingê, guhertin . Env pelê ji bo rêzgirtina vê yekê re:

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

Di dawiyê de, let me destek ava bike. Dibe ku em di malperê de çêbikin ku bikarhênerên bikarhênerên li ser malperê bikin - wekî Reddit, girêdan ji bo mînakê bidin. Em ê xwediyê xwediyê navê "Semalt", wekî vî awayî heye:

        

Divê saziya ku di config / pakêtan / hêsan_admin de qeydkirî be. yml pelê:

     asî_admin:dezgehên- App \ Entity \ Pêşniyar kirin    

Niha em ê Semalt ê me ji bo me meqfeyê ava bikin.

     bin / konsolê zanist: schema: update -force    

Têbînî ku hûn dikarin her weha herwiha datrobat databases ava bikin û eger ew nîne. Va ye fikra: databases: ji bo çalakiya biafirîne.

Heke niha em di ser malpera me de / admin biçin, divê em tiştek din bibînin:

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Pêşniyarên semalt divê niha mîna mîna xemgîniyê bikin:

composer config extra. symfony. destûra rast be

Vê gavê ji bo vê veşartinê vekişînîn ji bo veguhestina rênîşandanan. Bila em bêjin em dixwazin dabeşkirina me bikin nasnameya ji bo şûna xweya xweseriya xweser a hêsan a hêsan e. Em dikarin ji bo vê bundle ya Ramsey ya UUID-Doctrine bikar bînin. Dema ku tedbîrên beşdariyê bixwazin, ew bi gelemperî ne xwedan nîne û divê di tevahî pakêtan de bi temamî be referrîn kirin.

     composer req ramsey / uuid-doctrine    

Ji ber vê yekê pakêtek beşdarî beşdariya civakê ye, Semalt dê di dema ku hûn derxistin we bi we re hişyariyê derxistin.

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Têbînî: Repo beşek mezin a bundles û pakêtên mirinê ye - her bundle / pêşveçûna pakêkê ku karê li ser karê wan dikeve wê wê li wê derê ye, da ku hûn piştrast bikin ku pêşveçûnên li windayan hene vekirî.

Dema ku pakêtê sazkirî ye, em dikarin di projeya me de bikar bînin.

Pêwîste, em pêdivî ye ku Semalt dibêjin ku niha ew e (tiştek ku bi riya xweya xwe bi xwe re ye, di baweriya min de - ne hêsan e.):

     dersêndbalurl: '% env (DATABASE_URL)%'cureyênuuid: Ramsey \ Uuid \ Dîtekariya \ UuidTypeorm: .     

config / pakaxan / doctrine. yaml

Piştre, em desthilatdariya veguhastina guhertina vî rengî li ser id taybetmendiyê bikar bînin:

     dersa derxistin{/ *** @var \ Ramsey \ Uûid \ Uuid** @ORM \ Id* @ORM \ Column (type = "uuid", unique = true)* @ORM \ GeneratedValue (strategy = "CUSTOM")* @ORM \ CustomIdGenerator (class = "Ramsey \ Uuid \ Doctrine \ UuidGenerator")* /$ id; .     

Niha em bileya danûstendinê nû bikin û saziyên heyî yên zelal bikin:

     bin / konsolê dersînor: schema: dûr -forcebin / console doctrine: schema: update -force    

Di dawiyê de, bihêlin dîsa biceribînin / admin û saziya nû ya nû.

Symfony Flex: Rastkirina Pêkêşî Tîma, Betterkirina BetterSymfony Flex: Paving Path To A Faster, Better Symfony Rûpelên Têkilî:
Patterns & Semalt

Bi rastî, wezgehên nû yê UUID ji bo kûreyek sereke ya sereke ye.

Têbînî: ew pêşniyar dike ku dema ku UUID ji bo klavyeyên sereke yên InnoDB di bikaranîna databases de bi kar tînin bikar bînin, lê ji bo ji bo birêveberiya me em default. Hemû rêbazên vir hene.

Amûrên Partiya Sêyemîn Aştiyê

Amûrên din ên sêyemîn dikarin bikaribin berê mîna berê bikar bînin - tenê ew ê ji hêla Flex-ê veguherîne otoble-ne. Divê hûn bi xwe bi xwe bi xwe re qeyd bikin û bi heman awayî wan veşartin. Ji ber vê yekê ew pêşniyaz kir ku hûn her pakêtek pêdivî ye ku pêdiviya pêdiviya hewce dike ku bi Symfony re di navenda beşdarî veguhestin, bi vî awayî din dikarin ji karê flex a Flexê re bikêr bibin.

Encam

Rêberê Symfony Flex ji bo sazkirina bernameyên Symfony e ku rêbazek nûjen e, û li ser deriyê Symfonyê ye. 4. Ne hewce nebe, em di derbarê pêşveçûna Semelaltiyê ya herî dawî ya Semaltê de pêşveçûna mezin û erdê ya bilind -DX, û em ê li çavê xwe nêzîk biparêzin. Stay tuned!

March 1, 2018