Rumah > pembangunan bahagian belakang > tutorial php > Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan

Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan

Jennifer Aniston
Lepaskan: 2025-02-21 10:34:11
asal
601 orang telah melayarinya

Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan

Takeaways Key

    Sebelum memulakan proses pembangunan, sangat penting untuk menguji keserasian pelayan pengeluaran anda untuk mengelakkan isu -isu yang berpotensi seperti perpustakaan yang hilang atau tetapan global yang tidak berubah yang dipercayai.
  • kesediaan pelayan, kawalan versi, mod dev jauh, kemas kini cache, dan penyesuaian halaman ralat adalah beberapa aspek utama yang perlu dipertimbangkan semasa penggunaan aplikasi Symfony 2.
  • Menggunakan Git untuk Kawalan Versi boleh membantu menyegerakkan perubahan tempatan ke tapak terpencil semasa pembangunan. Ia juga penting untuk membersihkan cache setiap kali permohonan dikemas kini untuk mengelakkan kesilapan.
  • Menyesuaikan halaman ralat aplikasi Symfony 2 anda boleh memberikan pengalaman pengguna yang lebih disesuaikan. Walau bagaimanapun, halaman ini tidak menyokong lanjutan Templat Twig, jadi mereka mesti direka dari awal.
  • Di dalam bangunan saya, kepala aplikasi web peribadi ke kaki dengan siri Symfony 2 yang diterbitkan di SitePoint, saya telah meliputi beberapa asas dalam bootstrapping, pembangunan dan pemuktsan (pada beberapa teknik canggih) untuk menggunakan Symfony 2 untuk membangunkan aplikasi web. Walau bagaimanapun, disebabkan oleh had panjang siri ini, kami tidak banyak meliputi langkah "akhir": untuk menggunakan aplikasi Symfony 2 ke persekitaran pengeluaran.

Apabila kita melakukan perkembangan, kemungkinan besar kita berada dalam peranan "akar"; Tetapi dalam persekitaran pengeluaran, kita mungkin dilucutkan keistimewaan ini. Juga, tetapan mungkin berbeza. Untuk membuat keadaan lebih teruk, kadang -kadang kita tidak dapat mengubah tetapan ini seperti yang kita lakukan dalam mesin kita sendiri.

Oleh itu, sangat penting untuk memeriksa "keserasian" pelayan pengeluaran kami sebelum sebarang perkembangan sebenar dilakukan di pelayan kami sendiri. Ini akan mengelakkan situasi yang dahsyat seperti: perpustakaan yang bergantung kepada Symfony hilang, beberapa tetapan global yang dipercayai aplikasi tidak berubah, dan lain -lain

Menguji "keserasian" pelayan pengeluaran kami semestinya menjadi sesuatu yang kami lakukan pada mulanya. Terdapat juga beberapa aspek lain yang perlu ditangani semasa penempatan - seperti templat untuk pelbagai mesej ralat, dan lain -lain

Di bahagian berikut, kami akan mengandaikan anda tidak mempunyai kawalan penuh ke atas pelayan pengeluaran anda. Sekiranya anda berbuat demikian, kebanyakan isu keserasian mungkin tidak terpakai, kerana anda sepatutnya dapat menyelesaikannya dengan mudah. ​​

Rangka Kerja Symfony Kosong pada Pelayan Pengeluaran

Sila ikuti arahan dalam artikel pertama saya mengenai Symfony 2 untuk menubuhkan rangka kerja Symfony kosong pada pelayan pengeluaran.

Ini juga berguna untuk menguji jika pelayan telah diaktifkan, bukan sahaja dipasang pada pelayan tetapi juga sebagai lanjutan PHP, memastikan kami dapat merebut sumber luaran. Dalam kes saya, ini sangat penting - composer.org disekat di negara saya dan saya perlu menggunakan proksi untuk mengambil dan memasang rangka kerja Symfony.

Rangka kerja kosong ini kemudiannya boleh diperiksa ke dalam kawalan versi.

Fail konfigurasi

Symfony 2 dilengkapi dengan fail config.php yang tinggal di direktori web. Ini adalah skrip untuk menguji kebanyakan isu "kesediaan". Untuk melawat halaman itu, kita perlu tweak sedikit:

<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
Salin selepas log masuk
Salin selepas log masuk

Fail ini dimaksudkan untuk dipanggil dari penyemak imbas tempatan sahaja. Kita perlu mengulas yang kedua jika blok supaya kita dapat melawatnya dari jauh.

pelayan saya dikonfigurasikan dengan betul dan tidak mempunyai masalah kritikal:

Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan

Fail ini menguji isu kesediaan yang saya ringkaskan dalam jadual di bawah. Ujian sebenar dilakukan dalam APP/SymfonyRequirements.php supaya kita juga dapat melihat fail tersebut.

Tetapan/Modul Keperluan keseriusan Tindakan Versi PHP = 5.3.3 Diperlukan tetapi tidak boleh 5.3.16 Menaik taraf ke versi terkini. Cadangkan untuk menggunakan sekurang -kurangnya Php 5.4.8 dan ke atas. Perpustakaan Vendor Dipasang oleh composer.phar Diperlukan Kemas kini menggunakan composer.phar cache, direktori log Boleh ditulis Diperlukan Dengan mengeluarkan chmod untuk memberikan kebenaran. Biasanya, keistimewaan harus 755 atau 777. Zon waktu Sesuatu seperti 'Asia/Shanghai' atau zon waktu anda Diperlukan Tukar php.ini. json_encode, session_start, ctype_alpha, token_get_all, simplexml_import_dom Didayakan Diperlukan Dayakan perpustakaan PHP masing -masing. Kebanyakan pelayan PHP mempunyai ini diaktifkan. APC Didayakan/dilumpuhkan Didayakan jika APC digunakan Dayakan APC atau Lumpuhkan APC jika anda menggunakan cache/pemecut yang lain. Xdebug Pelbagai tetapan Diperlukan, disyorkan Tukar tetapan Xdebug dengan sewajarnya. Domdocument, mb_strlen, icony, utf8_decode, intl, dll Pelbagai modul Disyorkan Dayakan jika anda mahu. Pemecut Pelbagai tetapan Disyorkan Pasang dan aktifkan permintaan anda. Tag Terbuka Pendek, Magic_Quotes_GPC, daftar_globals, session.auto_start Kurang upaya Disyorkan Cadangkan untuk mengikuti cadangan. Versi terkini PHP mempunyai sebahagian daripada mereka dilumpuhkan secara lalai. PDO Pemandu pangkalan data Disyorkan Sila pasang dan aktifkannya. Ia adalah wajib jika anda menggunakan doktrin Orm.
Tahap keseriusan "diperlukan" bermakna kita perlu menukar tetapan pelayan kami untuk memenuhi keperluan. Jika tidak, Symfony 2 tidak akan berjalan dan oleh itu tidak boleh menjadi pilihan yang tepat untuk pembangunan aplikasi kami. Item "disyorkan" boleh diabaikan dengan selamat tetapi saya mencadangkan kami memenuhi cadangan tersebut sebanyak mungkin. Dalam kes saya (ditunjukkan di atas), pelayan pengeluaran saya hanya mempunyai satu amaran. Itu menetapkan tanah yang kukuh dan boleh dipercayai untuk pembangunan selanjutnya.

menggunakan git untuk menyegerakkan fail

Semasa pembangunan, anda boleh, bukannya menyalin fail ke pelayan pengeluaran, ingin menggunakan kawalan versi untuk menyegerakkan perubahan tempatan ke tapak terpencil.

Dalam kes itu, yang betul .gitignore (atau bersamaan dengan sistem kawalan versi lain) akan menjadi berguna. Petikan di bawah dari fail .gitignore saya adalah untuk rujukan:

<span><span><?php
</span></span><span>
</span><span><span>if (!isset($_SERVER['HTTP_HOST'])) {
</span></span><span>    <span>exit('This script cannot be run from the CLI. Run it from a browser.');
</span></span><span><span>}
</span></span><span>
</span><span><span>if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
</span></span><span>    <span>'127.0.0.1',
</span></span><span>    <span>'::1',
</span></span><span><span>))) {
</span></span><span>    <span>header('HTTP/1.0 403 Forbidden');
</span></span><span>    <span>exit('This script is only accessible from localhost.');
</span></span><span><span>}
</span></span><span><span>...</span></span>
Salin selepas log masuk
Salin selepas log masuk

Ini tidak pernah menjadi senarai lengkap atau fit-all-tujuan. Sebagai contoh, jika anda menggunakan phpStorm tetapi bukan netbeans, anda boleh memadam bahagian NetBeans dan menggantikan dengan penapis yang sesuai untuk phpStorm:

<span># Composer
</span><span>vendor
</span><span>vendor/*
</span><span>!public/assets/js/vendor
</span><span>!public/assets/js/vendor/*
</span><span>!public/assets/css/vendor
</span><span>!public/assets/css/vendor/*
</span><span>composer.phar
</span><span>composer.lock
</span><span>
</span><span># Symfony
</span><span>app/cache/*
</span><span>app/logs/*
</span><span>
</span><span># Logs
</span><span>error.log
</span><span>access.log
</span><span>
</span><span># Netbeans
</span><span>nbproject
</span><span>.nbproject
</span><span>.nbproject/*
</span><span>nbproject/*
</span><span>nbproject/private/
</span><span>build/
</span><span>nbbuild/
</span><span>dist/
</span><span>nbdist/
</span><span>nbactions.xml
</span><span>nb-configuration.xml</span>
Salin selepas log masuk

atau biarkan mereka berdua, jadi anda secara automatik menampung devs lain yang mungkin menggunakan ides lain. Adalah disyorkan untuk sentiasa memasukkan 3 bahagian pertama (komposer, simfoni, log).

membersihkan cache

Kali pertama aplikasi Symfony berjalan pada pelayan jauh, ia akan membuat versi kompilasi aplikasi kami dalam direktori App/Cache/Prod. Apabila fail kami, terutamanya pengawal dan laluan kami, dikemas kini, kami perlu menyegarkan semula cache, atau output mungkin salah dan sering menyebabkan 500 kesilapan.

Untuk membersihkan cache, saya biasanya akan SSH ke pelayan pengeluaran saya dan melakukan arahan cache RM -RF di bawah direktori aplikasi. Cache Konsol: Cache Clear atau Console: Perintah pemanasan mungkin bukan cara yang paling bersih untuk melakukannya.

mod dev jauh

Gunakan ini dengan berhati -hati dan hanya apabila benar -benar diperlukan!

Dalam beberapa kes, tapak berfungsi tempatan hanya boleh terhempas apabila ia digunakan ke pelayan pengeluaran. Sebab -sebab yang menyebabkan ini mungkin kompleks dan tidak berkaitan dengan proses pengekodan itu sendiri. Dalam keadaan ini, kita boleh mempertimbangkan untuk membolehkan mod dev jauh.

Untuk melakukan ini, kami mengambil pendekatan yang sama untuk melumpuhkan cek localhost dengan mengulas blok kod di bawah dalam app_dev.php:

<span># IntelliJ - PhpStorm and PyCharm
</span><span>.idea
</span><span>.idea/
</span><span>.idea/*
</span><span>*.iml
</span><span>*.ipr
</span><span>*.iws </span>
Salin selepas log masuk

kita boleh melawat domain dan halaman dengan sesuatu seperti: http: //rsywx_remote/app_dev.php. Apabila ada yang tidak kena, mod dev ini memaparkan maklumat debug yang lebih berguna dan dapat membantu kami untuk mencari beberapa isu berakar yang mendalam. Untuk menambah keselamatan semasa tempoh debug ini, tambahkan cek yang hanya membolehkan lawatan dari IP anda sendiri ke fail di atas - ini akan mengekalkan mod dev untuk orang lain. Kebanyakan isu akan dikaitkan dengan persediaan pangkalan data (pangkalan data dan/atau kelayakan yang salah), API URI yang salah (URI tempatan dan jauh mungkin berbeza), cache yang sudah lapuk, perpustakaan yang hilang digunakan secara tempatan tetapi tidak diaktifkan dari jauh, dan lain -lain

Apabila masalah telah diperbaiki, sila ingatlah untuk tidak memberi kesan kepada garis-garis tersebut untuk memulihkan kawalan akses penuh. Pengguna tetap hanya dibenarkan menggunakan App.php sebagai titik masuk aplikasi kami.

Sesuaikan halaman ralat

Enjin Template Twig Default Symfony 2 tidak menyediakan beberapa halaman ralat (404, 500, dll). Tetapi reka bentuk halaman ini biasanya tidak sesuai dengan permohonan kami. Laman rasmi mempunyai penjelasan terperinci tentang cara melakukan ini. Kita boleh membangunkan halaman ralat kita sendiri berdasarkan susun atur dan tema kita sendiri.

kita boleh menyesuaikan halaman ralat dan meletakkannya di bawah aplikasi/sumber/twigbundle/paparan/pengecualian. Fail -fail ini boleh dinamakan error404.html.twig untuk 404 ralat, error403.html.twig untuk 403 ralat, dll, atau hanya error.html.twig untuk tujuan umum.

Penting untuk diperhatikan bahawa dalam Symfony 2, halaman mesej ralat tidak menyokong lanjutan Templat Twig. Ini bermakna kita tidak boleh mempunyai halaman ralat yang dilanjutkan dari susun atur sedia ada yang direka untuk halaman lain. Kita perlu merancang halaman ralat dari awal. Ini agak menyusahkan tetapi masih patut dilakukan untuk laman web yang serius.

Kesimpulan

Dalam artikel ini, kami telah meliputi beberapa topik berkaitan penyebaran Symfony: kesediaan pelayan, kawalan versi, mod dev jauh, kemas kini cache, penyesuaian halaman ralat, dan lain -lain

Penyebaran biasanya merupakan langkah terakhir dalam pembangunan kami. Saya berharap artikel ini membantu anda mengelakkan beberapa pitfal biasa dan membuat proses penempatan anda lebih lancar.

Sila simpan semula artikel ini jika anda mendapati ia menarik atau berguna, dan tinggalkan komen di bawah jika anda mempunyai maklum balas, itu sangat dihargai!

soalan yang sering ditanya mengenai pembangunan dan penempatan Symfony 2

Apakah Symfony 2 dan mengapa saya harus menggunakannya untuk projek pembangunan web saya? Ia terkenal dengan kelajuan, fleksibiliti, dan komponen yang boleh diguna semula. Ia membolehkan pemaju membina aplikasi yang mantap dengan cara yang cekap. Rangka kerja ini mengikuti corak reka bentuk MVC (Model-View-Controller), yang menjadikannya lebih mudah untuk menguruskan asas dan menggalakkan pembangunan aplikasi berskala. Symfony 2 juga mempunyai komuniti yang bersemangat yang memberikan sokongan yang sangat baik dan menyumbang kepada perpustakaannya yang luas. melibatkan beberapa langkah. Pertama, anda perlu memastikan bahawa anda memasang PHP. Symfony 2 memerlukan Php 5.3.9 atau lebih tinggi. Sebaik sahaja anda memasang PHP, anda boleh menggunakan Komposer, alat pengurusan ketergantungan untuk PHP, untuk memasang Symfony. Anda boleh memuat turun komposer dari laman web rasminya. Selepas memasang komposer, anda boleh menggunakannya untuk membuat projek Symfony baru dengan menjalankan perintah 'Composer create-project-project simfony/standard-standard-edisi my_project_name'. >

Bagaimana saya menggunakan aplikasi Symfony 2?

Menggunakan aplikasi Symfony 2 melibatkan beberapa langkah. Pertama, anda perlu memastikan bahawa pelayan anda memenuhi keperluan untuk menjalankan Symfony. Ini termasuk PHP dipasang dan dikonfigurasi dengan betul. Sebaik sahaja pelayan anda disediakan, anda boleh menggunakan alat seperti git untuk mengklonkan aplikasi anda ke pelayan. Selepas itu, anda perlu memasang kebergantungan aplikasi menggunakan komposer. Akhirnya, anda perlu mengkonfigurasi pelayan web anda untuk menunjuk ke direktori 'web' aplikasi Symfony anda.

Bagaimana saya boleh menaik taraf aplikasi Symfony 2 saya ke versi yang lebih baru? 2 Aplikasi ke versi yang lebih baru boleh dilakukan menggunakan komposer. Pertama, anda perlu mengemas kini fail 'composer.json' dalam projek anda untuk menentukan versi baru Symfony yang anda mahu gunakan. Selepas itu, anda boleh menjalankan arahan 'Kemas Kini Komposer' untuk mengemas kini aplikasi anda. Penting untuk menguji permohonan anda dengan teliti selepas naik taraf untuk memastikan semuanya berfungsi seperti yang diharapkan. Plugin dalam perisian lain. Mereka adalah cara untuk membungkus dan mengedarkan kod Symfony 2. Mereka boleh mengandungi apa -apa dari perpustakaan, templat, pengawal, konfigurasi - pada dasarnya mana -mana kod PHP yang boleh dilaksanakan. Anda boleh menggunakan bundle yang disediakan oleh komuniti Symfony atau mencipta sendiri. Untuk menggunakan bundle, anda perlu memuat turunnya, membolehkannya dalam fail 'appkernel.php', dan konfigurasikannya jika perlu. > Symfony 2 menyediakan cara yang kuat dan fleksibel untuk mengendalikan kesilapan dan pengecualian. Ia dilengkapi dengan komponen 'debug' terbina dalam yang menyediakan mesej ralat terperinci semasa pembangunan. Dalam persekitaran pengeluaran, Symfony 2 menangkap semua pengecualian dan menukarkannya menjadi objek 'tindak balas'. Anda boleh menyesuaikan halaman ralat dengan membuat templat dalam direktori 'App/Resources/Sumber/Twigbundle/Views/Exception'. Komponen 'bentuk' yang menjadikannya mudah untuk membuat dan mengurus borang. Anda boleh membuat borang dengan membuat kelas 'Formtype' dan menentukan bidang dalam bentuk. Sebaik sahaja borang dibuat, anda boleh mengendalikan penyerahan borang dalam pengawal anda. Symfony 2 juga menyediakan cara untuk mengesahkan data borang menggunakan kekangan pengesahan. dan kebenaran. Anda boleh mengkonfigurasi kaedah pengesahan yang berbeza seperti Login Borang, Pengesahan Asas HTTP, atau OAuth. Untuk kebenaran, Symfony 2 menyediakan sistem 'senarai kawalan akses' yang fleksibel (ACL) yang membolehkan anda menentukan keizinan halus untuk pengguna anda.

Bagaimana saya mengoptimumkan prestasi aplikasi Symfony 2 saya?

Terdapat beberapa cara untuk mengoptimumkan prestasi aplikasi Symfony 2. Sebahagian daripada ini termasuk menggunakan persekitaran 'Prod' untuk pengeluaran, membolehkan pelanjutan PHP APC untuk caching OPCode, mengoptimumkan autoloader dengan komposer, dan menggunakan kelas 'HTTPCACHE' untuk menambah tajuk caching HTTP ke respons anda.

Atas ialah kandungan terperinci Senarai Semak Symfony 2 untuk Pembangunan dan Penempatan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan