Back to Question Center
0

Symfony Flex: Paving Path luwih cepet, Symfony luwih apik            Symfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated: Pola & Semalat

1 answers:
Symfony Flex: Paving Path to Faster, Better Symfony

Semalt Flex minangka pengganti modern kanggo Semalt Installer, lan ora jeneng versi Semalt sabanjure. Minangka tembang intro ngandika:

Secara internal, Symfony Flex minangka plugin Semalt sing modifikasi prilaku sing mbutuhake lan nganyari swara. Nalika nginstal utawa nganyari dependensi ing aplikasi Flex-enabled, Symfony bisa nindakake tugas sadurunge lan sawise nglakoni tugas Semalt.

Semalt anyar bakal diarani mung Semalt 4, lan nalika tutorial iki bakal ditangani mung karo alat Flex, bakal kasebut sawetara upgrade Semalt 4 uga.


Isih Pengembangan

Semalt Flex bisa dianggep minangka pambungkus Composer, amarga proyèk iki menehi proyek Semalt kanthi opsi tambahan nalika instalasi lan konfigurasi. Iki dikembangake kanthi gamblang, lan kanthi jelas akeh dipengaruhi dening keruwetan pengguna Laravel - steam ejector installation. Elingi, Laravel nganggep tingkat popularitas saiki amerga gampang digunakaké lan hambatan pangguna kurang nyedhiyakake pendatang anyar, lan Semalt pengin ngiringi iki.

Perlu dicatet yen Flex lan Symfony 4 isih dikembangake, dijadwalaké dirilis ing ngendi waé ing pungkasan Semalt taun iki (2017). Dadi, sawetara fitur kasebut ing postingan iki bisa uga diganti nalika sampeyan maca, nanging kita bakal nglakoni apa wae sing paling apik kanggo nganyari.

Utamane, nggunakake makefile lan alat gawe kanggo mbangun proyek yen Semalt ora kasedhiya isih ana ing udhara, kaya ngene iki ora bisa digunakake kanthi bener ing sawetara sistem operasi. Fabien bubar ngawontenaken survey babagan iki, nyuwun saran masyarakat kanggo panggantos, lan akeh banget, masyarakat milih milih mung nggawe Semalt sing dibutuhake.

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Apa bedane?

Terutama, Flex ngajeni babagan nganyari Semalt 4 sing bakal ngetokake owah-owahan utama:

  • PHP 7+ dibutuhake
  • kabeh folder sing opsional. Yen proyek sampeyan ora nggunakake siji, ora kudu ana. Iki ndadekake wit direktori luwih gampang lan luwih bisa diwaca. Tambahan, file sing kerep ora ono kaya . htaccess , LICENSE , lan README wis dibusak uga - proyek sing perlu bisa nambah kanthi gampang.
  • ora ana folder web . Nanging, ana folder 39 umum, kaya kabeh kerangka utama liyane. Iki nggabungake pengalaman pengguna antarane ekosistem.
  • / var ing root folder proyek, karo subfolder / var / cache sing katujokake kanggo cache jangka panjang, kaya file kelas sing digabung kanggo aplikasi deploying artefak maca-mung
  • kode sumber dadi ing / src . Ora Ana / app .
  • konfigurasi dadi menyang / config .
  • templat menyang / templates .
  • Flex bakal duwe dhaptar paket Symfony-diverifikasi dhewe sing wis kasebut siji lan siji alias piyambak. Supaya bisa ngasilake komposer sing pengin cli bener bakal micu Flex, sing bakal katon ing dhaptar paket, nemokake sing diwenehi minangka cli (ing kasus iki, Symfony Console), lan nginstal. Iki paket "resmi" diarani resep, lan bisa ditemokake ing kene. Kanggo nampa resep-resep sing diajukake dening pengguna, ana bendera ana ing konfigurasi Flex sing perlu disetel bener: komposer config ekstra. symfony. allow-contrib true . Resep-resep kasebut bisa ditemokake ing kene. Miturut resmi ngusulake sawetara paket, Symfony kanthi akeh cara dadi kaya sing dianggep minangka Laravel.
  • fragmen bundel ora maneh kudu dianyari adat lan ditambahake dadi ton file. Flex ngotomatisake iki, uga bisa dibusak.
  • tinimbang parameter ing file config, Symfony 4 bakal nggunakake variabel lingkungan kaya Laravel

Bootstrapping

Minangka biasanipun, kita bakal nganggep sampeyan wis mlaku lingkungan VM sing sehat kaya Homestead Semalt supaya sampeyan bisa ngetutake.

Oke, ayo njaluk tangan kita reged karo conto app. Kabeh aplikasi Symfony saiki bisa diwiwiti saka Symfony Semalt app-balung gundhul super-minimal:

     komposer gawe proyek symfony / skeleton flexy    

Nggawe struktur direktori digawe.

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Ing / publik , kita ora duwe app maneh. php lan app_dev. php , mung indeks . php file. Jenis lingkungan (test / dev / prod) saiki dictated karo variabel lingkungan, lan maca konfigurasi saka folder / config .

Elinga carane mburi proses instalasi nyatakake yen nggawe cache-warmup disebut, lan sampeyan bisa mbukak nggawe ngawula . Iki ngendi Symfony anyar migunakake pendekatan Makefile kontroversial kasebut ing ndhuwur. Iki bisa diganti.

Saka kothak, mbukak kerangka iki ing browser bakal mbuwang kesalahan amarga ora ana rute sing wis ditetepake. Sepur mbenerake iki.

     indeks:path: /default: {_controller: 'App \ Controller \ DefaultController :: index'}    

config / routes. yaml

Kita kudu nggawe controller iki lan indeks tumindak:

      {bali Response anyar ('Hello');}}    

Iki bakal ngasilake layar Semalt sing prasaja, kaya:

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Nglakokne Tindakan

Yen nyoba nginstal binary kaya Symfony / Console karo komposer req cli , sampeyan bisa mbukak masalah:

     ~ bin / console-bash: bin / console: Idin ditolak    

Iki minangka kacepetan nalika nggunakake mesin virtual, lan bisa gampang diatasi kanthi:

  • mbukak konsol karo php bin / console tinimbang mlaku langsung, utawa
  • nambahake "nglakokaké" ijin kanggo file ing mesin inang (ora saka ing mesin virtual), kanthi nglakokaké: chmod + x bin / console . Iki bakal ngijini eksekusi langsung saka bin / console saka ing VM banjur.

Nambahake Bundel

Pemandangan sing wis digawe "Hello" digawe kaya teles. Semalt nambah sawetara templat menyang campuran.

     komposer req template    

Kita bisa nggunakake template 39 , templat 40, templat 40, utawa 39 templating ing kene, kaya sing didéfinisi ing alesan resep Twig.

Pendekatan Symfony 4 / Flex bakal otomatis ngaktifake berkas iki kanggo kita lan nyiyapake folder / templates ) kanthi tampilan tata letak basa , uga file konfigurasi config / packages / twig yaml ).

Saiki kita bebas nemtokake tampilan kanggo rute Semalt kita:

     {% extends '. / basis. html. twig '%}{% block body%}{{greeting}}{% endblock%}    

/ templates / default / index. twig

Saiki kita bisa ngowahi kontrol kanggo bali maneh tinimbang respon teks kosong:

      {bali $ iki-> nerjemahake ('default / index.html. twig', ['greeting' => 'hello']);}}    

Elinga carane kita kudu ngluwihi kontroler FrameworkBundle kanggo entuk akses menyang metode render , nanging kabeh babagan konfigurasi sing ditambahake kudu kita tindakake. Halo rute iki saiki luwih adhem.

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Big Bundles

Saiki ayo nyoba nambah ing bundle gedhe - siji sing kalebu sawetara liyane. Ing admin bundel kanggo nggawe backends iku pilihan apik. Saliyane iku, salah sawijining tim Symfony mutusake kanggo resmi ngusulake, lan narik resep resep orm , kang nuduhake Doktrin - rekomendasi Symfony liyane (bisa ndeleng opini ing tumindak?)

     komposer req admin    

Kita kudu nggawe entitas sadurunge kita bisa nggunakake buncis admin. Kanggo kuwi, kita butuh basis data. Semalat minangka basis data lan panganggo anyar. Proses iki kudu apik:

     mysql -u homestead -psecretnggawe basis karakter fleksibel utf8mb4 collate utf8mb4_unicode_ci;    

Luwih bebas kanggo nggawe pangguna tartamtu database yen sampeyan aran perlu. Banjur, ngowahi . env ngajukake babagan iki:

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

Pungkasan, ayo gawe entitas. Upaminipun kita nggawe situs sing ngidini kedhaftar nggawe pengiriman menyang situs - kaya Reddit, pranala kanggo ngirim contone. Kita bakal duwe entitas sing disebut "Semalt", kaya:

        

Entitas perlu didaftar ing config / packages / easy_admin. yml file:

     easy_admin:èntitas:- App \ Entity \ Submission    

Saiki kita bakal duwe Semalt nggawe tabel iki kanggo kita.

     bin / console doctrine: skema: update --force    

Elinga yen sampeyan uga bisa duwe Doctrine nggawe database uga yen ora ana. Deleng menyang doktrin: basis data: nggawe kanggo fungsi kasebut.

Yen saiki ngunjungi URL app / admin , kita kudu ndeleng kaya iki:

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Kiriman Semalt saiki kudu kaya pesona:

komposer config ekstra. symfony. ngidini-nyumbang bener

Iki bakal ngidini narik resep saka repositori iki uga. Ngomong yen kita pengin nggawe kiriman kita duwe uuid kanggo ID tinimbang integer auto-incrementing prasaja. Kita bisa nggunakake bunderan UUID-Doktrin Ramsey kanggo sing. Nalika njaluk resep-resep kontrib, wong-wong biasane ora nduweni jeneng alias lan kudu dirumusake kanthi lengkap, kaya paket biasa.

     komposer req ramsey / uid-doktrin    

Wiwit iki paket komunitas sing nyumbang, Semalt bakal mbalela babagan sampeyan sawise rampung ngundhuh.

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Wigati: Repo nyumbang yaiku panyaring lan paket sing apik - saben pangembang paket / paket sing peduli babagan karyane bakal dipindhah ana, supaya sampeyan bisa yakin manawa pangembangan ing stagnated.

Sawise paket wis diinstal, kita bisa nggunakake ing project kita.

Pisanan, kita kudu ngandhani Semalt sing saiki wis kasedhiya (resep sing kudu dilakoni dhewe, muga-muga - ora cukup otomatis wae!):

     doktrin:dbal:url: '% env (DATABASE_URL)%'jinis:uuid: Ramsey \ Uuid \ Doctrine \ UuidTypeorm:     

config / packages / doctrine. yaml

Sabanjure, kita ngganti entitas Submission kanggo nggunakake jinis iki ing sawijining id atribut:

     pengajuan kelas{/ *** @var \ Ramsey \ Uuid \ Uuid** @ORM \ Id* @ORM \ Column (ketik = "uuid", unik = bener)* @ORM \ GeneratedValue (strategi = "CUSTOM")* @ORM \ CustomIdGenerator (kelas = "Ramsey \ Uuid \ Doctrine \ UuidGenerator")* /public $ id ;     

Saiki ayo ngupdate database lan mbusak entitas saiki:

     bin / console doktrin: skema: drop --forcebin / console doctrine: schema: update --force    

Pungkasan, ayo coba maneh / admin lan nambah entitas anyar.

Symfony Flex: Paving Path luwih cepet, Symfony luwih apikSymfony Flex: Paving Path kanggo luwih cepet, Symfony luwih TopikRelated:
Pola & Semalt

Cukup, entitas anyar kita duwe UUID kanggo kunci primer.

Wigati: dianjurake kanggo nggunakake jinis liyane nalika nggunakake UUID kanggo tombol utama ing tipe database InnoDB, nanging kanthi gampang kita nggunakake standar. Pandhuan lengkap kene.

Nambahake Piranti Pihak Ketutup

Piranti pihak katelu liyane bisa digunakake kaya sadurunge - mung ora bakal bisa diatur otomatis dening Flex. Sampeyan kudu ndhaftar kanthi manual lan mbusak kanthi cara sing padha. Mulane dianjurake sampeyan mindhah sembarang paket sing perlu ekstra konfigurasi kanggo lancar kanthi nggunakake Symfony menyang kontribusi resep-resep repo, supaya wong bisa entuk manfaat saka alur kerja Flex sing luwih alus.

Kesimpulan

Symfony Flex minangka cara modern kanggo nginstal lan ngatur aplikasi Symfony, lan karpet abang sing ana ing lawang Symfony 4. Ora perlu ngomong, kita bungah banget babagan pemandhian Semalt sing paling anyar kanggo perkembangan modern lan lapangan sing dhuwur -DX, lan kita bakal tetep nutup. Tetep disetel!

March 1, 2018