Artikel ini dikutip dari buku baru -baru ini yang diterbitkan "Jump Start PHP Alam Sekitar", yang boleh didapati secara percuma oleh ahli SitePoint Premium. Versi kertas dan e-buku boleh didapati di kedai buku utama di seluruh dunia, dan anda juga boleh memesannya di sini. Semoga anda menikmati petikan ini dan mendapati ia berguna.
Kami akan memberi tumpuan kepada persekitaran aplikasi. Kami juga akan membincangkan *Bundle amp seperti XAMPP dan mengapa mereka adalah pilihan yang tidak baik;
mata utama
Persekitaran Pengeluaran
kita akan bermula dengan persekitaran yang paling mudah: persekitaran pengeluaran.
pengeluaran
ataumenggunakan
3 Persekitaran pengeluaran adalah destinasi utama untuk aplikasi anda dan tujuan kod anda. Dalam kitaran hayat aplikasi, persekitaran pengeluaran adalah pelayan masa nyata-komputer pelayan yang tetapannya membolehkan orang lain menyambung kepadanya dan melihat laman web anda. Pelayan langsung ini akan dikonfigurasikan untuk menyediakan aplikasi anda dengan cekap yang mungkin. Semua fail tambahan yang anda gunakan semasa proses pembangunan akan dikeluarkan dari aplikasi melalui proses yang dipanggil kompilasi atau binaan, yang akan dijelaskan lebih lanjut kemudian.
Dalam persekitaran pengeluaran, laman web anda dianggap sebagai masa nyata (atau digunakan) dan boleh diakses melalui nama domainnya sendiri; >. Ini bersamaan dengan masakan chef di restoran dan menyampaikan makanan kepada pelanggan yang mengarahkannya.
Persekitaran Pembangunan
Dalam persekitaran pembangunan, anda boleh menggunakan pelbagai alat -dari IDE (lihat Bab 2) ke perpustakaan ujian unit dan pembetulan standard, penyusun dan pembina, monitor fail, dan banyak lagi -apa sahaja yang anda perlukan untuk menyelesaikan sesuatu untuk berfungsi di tangan. Jika kita membandingkan aplikasi kami ke telefon pintar, kilang pemasangan yang menjadikannya persekitaran pembangunan. Persekitaran ini mengandungi semua komponen yang diperlukan -skrin, perumahan, bateri, pelbagai LED -dan setiap komponen diuji secara berasingan sebelum digunakan untuk membina unit telefon pintar. Ini dipanggil ujian unit - memastikan setiap unit berfungsi.
Untuk contoh ujian unit dalam pembangunan aplikasi, lihat bahagian bertajuk "Bagi mereka yang mahukan lebih banyak" pada akhir bab ini.Untuk menggambarkan lebih lanjut metafora pemasangan telefon pintar, bateri yang diuji mungkin memerlukan aksesori pengecas yang berasingan, atau mungkin memerlukan lengan robot dengan jari sintetik untuk menguji skrin untuk memastikan kepekaan sentuhan skrin berfungsi dengan baik.
Semua tambahan ini wujud hanya semasa pembangunan. Tambahan ini dikeluarkan apabila anda menukar dari persekitaran pembangunan ke persekitaran pengeluaran (juga dikenali sebagai
penyebaran). Untuk permohonan kami, ini bermakna kompilasi/membina langkah -langkah yang disebutkan di atas: pelbagai fail CSS dan JavaScript digabungkan dan dikurangkan untuk mengurangkan saiz laman web dan menjadikannya kelihatan lebih cepat apabila orang melawat; Dan pelbagai pengoptimuman lain berlaku (diperkenalkan kemudian dalam bab ini) - semua untuk memaksimumkan rayuan dan potensi produk akhir apabila diisytiharkan siap.
tuan rumah dan tuan rumah maya
URL tidak boleh diakses apabila anda sedang membangun pada komputer anda sendiri https://www.php.cn/link/2C70BF4DF3F4BFE23222222222222222222.
seperti yang anda lihat, ini hampir sama dengan proses permintaan biasa untuk laman web secara langsung. Tetapi apa yang membuat penyemak imbas meminta nama domain mysite.com ke program pelayan komputer kita sendiri dan bukannya mencarinya di pelayan nama internet? Fail tuan rumah.
Fail host adalah fail khas yang wujud pada setiap sistem operasi. Kami secara ringkas menyebutnya dalam seksyen 1 bertajuk "Bagi mereka yang mahukan lebih banyak". Ia mengandungi senarai nama domain dan alamat IP yang sepadan supaya mana -mana pelayar di komputer anda boleh membacanya dan pergi terus ke alamat IP tanpa perlu berkomunikasi dengan DNS untuk memeriksa di mana anda mahu pergi. Pada Windows, fail itu terletak di C: WindowsSystem32DriveVersetchosts, pada mesin Linux dan Mac, ia terletak di /etc /hosts. Jika anda meletakkan pasangan IP-nama ke dalam fail ini, komputer akan mematuhinya. Kita boleh mencubanya sekarang. Jangan takut - tidak ada yang salah. Bersedia?
Pada Windows, masukkan medan carian, taipkan "Notepad", dan apabila ia muncul, klik kanan dan pilih "Run As Administrator". Anda kemudian akan diminta untuk mengesahkan. Dalam tetingkap yang dibuka, pilih "Fail" & gt; Di sudut kanan bawah tetingkap Notepad, anda mungkin mahu memilih "semua fail" untuk memaparkan fail hos. Klik dua kali untuk membukanya.
Pada mesin Linux/Mac, buka terminal dengan mencari.Pada Linux , buka editor teks lalai sebagai pentadbir dengan menaip sudo gedit di terminal. Anda akan diminta memasukkan kata laluan pentadbir. pada OS X, masukkan sudo /applications/textedit.app/contents/macos/textedit, yang akan melaksanakan tugas yang sama. Dalam salah satu daripada kedua -dua editor ini, pergi ke "Fail" -> "Buka" dan masukkan direktori /etc untuk mencari fail tuan rumah. Klik dua kali untuk membukanya. Selepas membuka fail, perhatikan beberapa baris pertama: mereka semua bermula dengan simbol hash (#). Ini bermakna mereka adalah komen dan tidak mempunyai kesan ke atas fail. Ini digunakan untuk menerangkan fail kepada pengguna dan mereka juga hadir dalam PHP.
Sekarang, di bawah semua baris komen ini, tambahkan baris berikut:
Simpan fail dan buka http://bing.com dalam penyemak imbas anda. Anda baru sahaja berjaya mengalihkan semua permintaan ke Microsoft Search Engine Bing ke Google! Sudah tentu, kami tidak mahu menyimpan perubahan ini; Anda sepatutnya dapat melawat http://bing.com sekali lagi seperti biasa.
<code>208.117.229.217 bing.com</code>
Menggunakan kaedah ini, kami kemudian mengalihkan semua permintaan penyemak imbas ke http://mysite.com (yang akan menjadi nama domain sampel aplikasi kami) ke pelayan komputer kami sendiri. Ini akan membolehkan kami dengan mudah menguji versi pembangunan laman web kami tanpa menggunakannya ke persekitaran masa nyata.
Persekitaran pra-pelepasan adalah pelayan berasingan (atau pelayan berganda) yang mengandungi salinan persekitaran pengeluaran (juga dikenali sebagai cermin). Dalam syarikat kecil atau projek, persekitaran pra-pelepasan biasanya dilangkau. Ia direka untuk menjadi serupa dengan persekitaran pengeluaran yang mungkin, dengan pencocokan versi perisian yang dipasang, nilai konfigurasi adalah sama, dan sebagainya. Pra-pelepasan digunakan untuk melakukan ujian akhir; Lihat. Sekiranya semuanya berjalan lancar, penggunaan akhir dari pra-pelepasan kepada pengeluaran akan berlaku.
Pra-pelepasan adalah di luar skop buku ini, tetapi ia sentiasa baik untuk mengetahui. Dalam usia mesin maya dan projek satu kali kecil, pra-siaran boleh menjadi berlebihan dan hanya akan berfungsi dalam aplikasi web jangka panjang yang lebih besar.
Dalam konteks ini, kita juga harus memperkenalkan mod penyelenggaraan . Ia adalah mod , bukan persekitaran kerana persekitaran di sekitar aplikasi tidak akan berubah - hanya keadaan permohonan yang akan berubah. Ia biasanya hanya suis pada pelayan pengeluaran yang memberitahu orang yang cuba melawat laman web ini seperti "kembali sekarang, menyesuaikan diri!"
Apabila memulakan pembangunan PHP, sangat menggoda untuk memuat turun dan memasang pakej seperti Xampp, WAMP, MAMP atau EasyPhp. Amp dalam nama -nama ini bermaksud "Apache, MySQL, dan PHP". XAMPP menambah lagi p pada akhir untuk bahasa perl. Surat pertama merujuk kepada sistem operasi: Windows, Linux, Mac OS X, atau dalam kes XAMPP, Cross-Platform (bermakna ia boleh dijalankan pada mana-mana sistem operasi).
Bundle ini mengandungi semua perisian yang anda perlukan untuk menjalankan aplikasi PHP dengan cepat dan mudah pada komputer anda. Dengan hanya satu klik, anda boleh memasang semua yang anda perlukan untuk menulis skrip PHP pertama anda. Jadi, apakah kelemahannya?
mari kita selesaikan masalah ini satu demi satu.
Setiap kali anda memasang perisian seperti *stack amp pada komputer anda, sebahagian daripada komputer anda akan rosak. Walaupun anda memadam perisian kemudian, ia biasanya meninggalkan jejak yang tidak selesa -biasanya dalam bentuk kunci pendaftaran di Windows atau sisa fail di Linux. Malah, ini amat ketara pada Linux. Walaupun aplikasi Windows dan OS X dipasang dalam satu folder aplikasi, semua fail yang berkaitan dimasukkan, pada Linux, memasang perisian adalah seperti menembak istana yang dibina dengan senapang patah. Dengan satu klik, mereka berada di mana -mana. dari masa ke masa, anda akan memasang perpustakaan lain, pakej lain, alat lain. Semasa anda membangunkan aplikasi anda, anda akan terus menambah perisian tambahan, mungkin menambah projek yang sama sekali berbeza, kerana anda telah mula mengerjakan projek baru selari. Mungkin App1 memerlukan pelanjutan PHP untuk mengedit imej, sementara App2 memerlukan lanjutan PHP untuk membolehkannya membungkus kod ke dalam arkib sumber tertutup supaya kod anda tersembunyi dari pesaing. Dari masa ke masa, anda akan mempunyai beratus -ratus megabait perisian pembangunan pada mesin anda, tetapi tidak tahu sama ada anda masih memerlukannya. Mesin anda akan melambatkan, aplikasi anda akan menjadi kurang boleh digunakan, dan mesin pembangunan anda - komputer yang anda gunakan - akan sangat berbeza dari pelayan pengeluaran di mana anda akhirnya merancang untuk menggunakan aplikasi anda, yang anda menang ' T dapat mengendalikan perbezaan ini dengan anggun. Anda akan bertempur dengan kesilapan di laman web secara langsung dan mengganggu pelawat anda. Dengan bergantung pada pakej prebuilt ini, anda juga akan melucutkan diri anda dari Pengurusan Sistem Pembelajaran (OPS untuk pendek). Di syarikat yang lebih besar, OPS adalah pasukan atau orang yang bertanggungjawab terhadap isu -isu pelayan -sama ada ia menetapkan kesilapan, memasang perisian baru, menaik taraf perisian sedia ada, dan banyak lagi. Pengurusan Sistem Asas adalah kemahiran yang mesti dimiliki apabila bekerja pada pasukan yang lebih kecil atau bersendirian untuk pelanggan. Walaupun sangat mudah untuk dapat memasang semua yang anda perlukan pada komputer anda dengan satu klik, tidak ada antara muka pengguna pada pelayan dan oleh itu tidak boleh diklik; perisian supaya ia dapat menjalankan aplikasi PHP anda. Jika tidak, anda ditakdirkan untuk menyewa pentadbir pelayan untuk membantu anda, atau lebih teruk, menggunakan hosting bersama (cerita seram yang dijelaskan dalam Bab 6). dengan enggan bergantung pada bundle *amp ini, anda akan dipaksa untuk memasang pelayan secara manual dan perisian lain, yang akan memaksa anda untuk mengatasi lengkung pembelajaran - jika anda mengambil jalan kerjaya ini dengan serius, pengetahuan ini akan digunakan untuk anda Dalam banyak cara membantu. Juga, ia tidak semestinya sukar untuk menguasai asas -asas, seperti yang anda lihat kemudian dalam buku ini. Katakan app1 dan Pembelajaran adalah kemajuan, atau bagaimana Zon Keselesaan terlalu banyak dipandang
ujian
Kami boleh mengemas kini PHP ke versi yang lebih baru dan semak jika App1 masih sah, tetapi bagaimana kita boleh terus membangunkan App2 tanpa menggunakan kod yang tidak disangka -sangka yang tidak tersedia dalam PHP 5.3 Bagaimana dengan
? Sekali lagi, kita boleh menaik taraf MySQL ke 5.1 dan periksa sama ada ia masih berfungsi, tetapi bagaimana kita tahu jika MySQL membuang beberapa ciri lama dalam versi 5, yang akan memecahkan APP2 walaupun kita menetapkan APP1 untuk dijalankan pada 5.1? Lagipun, APP2 masih perlu dijalankan pada 4.0, kerana ia masih boleh digunakan pada pelayan pengeluaran sedemikian. Malangnya, bagaimana kita berurusan dengan Apache vs nginx? Adakah kami memasang dua pelayan web di komputer kami dan mengujinya secara berasingan? Bagaimana kita menukarnya? Bagaimanakah kami memastikan kami ingat untuk menguji laman web kami pada masa runtime?Ini hanya untuk dua aplikasi. Sekarang bayangkan jika anda perlu berurusan dengan sedozen aplikasi dari sepuluh pelanggan yang berbeza, masing -masing dengan keperluan yang berbeza. Semuanya cepat menjadi kurang menyeronokkan.
Masalah pemisahan versi perisian yang berbeza dapat diselesaikan dengan mudah melalui mesin maya, yang akan kita bincangkan dalam Bab 4.
Akhir sekali, bagaimana jika kita cuba memasang versi baru PHP tetapi ada masalah? Keadaan ini sangat biasa di OS X dan Linux - versi PHP yang dipasang pada mesin kami kini tidak berfungsi, dan ternyata mustahil untuk mendapatkan satu tapak untuk dijalankan. Apa kekacauan! Daripada dapat dengan mudah memulihkan ke keadaan berjalan sebelumnya, kami terpaksa menghabiskan sehari menyahpepijat sistem kami sendiri dan cuba untuk mendapatkannya - tidak semestinya versi yang tepat, tetapi hanya run
.Bukankah lebih baik jika kita hanya perlu memasuki perintah untuk mendapatkan kembali apa yang kita 10 minit yang lalu? Ok, kita boleh! Ini juga akan ditunjukkan dalam Bab 4.
Ini kedengaran pernyataan rumit sebenarnya sangat mudah - kita sebenarnya telah membicarakannya secara tidak langsung sebelum ini. Konsistensi pengeluaran/pembangunan bermaksud menjadikan persekitaran pengeluaran dan pembangunan sama seperti yang mungkin, sebaiknya sama, supaya apa yang anda usahakan akan dijalankan secara automatik dalam persekitaran pengeluaran tanpa sebarang konfigurasi tambahan atau debugging atau penalaan.
Mencapai konsistensi sangat penting untuk aliran kerja kerana penjimatan masa yang signifikan. Elakkan perlu melakukan apa-apa kerja tambahan untuk permohonan anda untuk dijalankan dalam persekitaran pengeluaran, yang bermaksud anda bebas untuk memfokuskan masa dan tenaga anda pada isu-isu logik yang berkaitan dengan perniagaan yang benar-benar memberi manfaat kepada konteks aplikasi dan bukannya sentiasa mengejar. Membuat perubahan dalam pembangunan, dan kemudian perlu membuat dua perubahan dalam pengeluaran untuk membuat perubahan muncul, membosankan paling baik dan paling teruk ia dapat menyakiti kesihatan projek. Anda tidak pernah tahu siapa yang akan membuat kesilapan, menyebabkan aplikasi menunjukkan skrin ralat kepada pengguna.
Cara terbaik untuk mencapai konsistensi adalah untuk menjalankan perisian yang sama dalam persekitaran pembangunan anda seperti dalam persekitaran pengeluaran anda. Sebagai contoh, jika anda berhasrat untuk menggunakan aplikasi anda ke persekitaran pengeluaran pada pelayan yang menjalankan sistem operasi Ubuntu Linux 14.04, lebih baik untuk membangunkan sistem operasi ini juga. Tetapi bagaimana jika kita menjalankan Windows kerana kita suka menggunakan kandungan multimedia canggih seperti permainan, atau kita memerlukan beberapa perisian imej dan pemprosesan video yang kuat yang tidak wujud sama sekali pada sistem operasi Linux? Sekiranya kita meninggalkan semua kepentingan kita yang lain, memasang Linux pada Windows, dan bekerja dengan konsistensi dan bukannya apa -apa lagi? Atau haruskah kita melepaskan konsistensi dan mengambil risiko sambil menjaga komputer kita kuat, cantik dan stabil, melekat pada sistem operasi pilihan kita?
bernasib baik, ada cara ketiga untuk mendapatkan yang terbaik dari kedua -dua dunia pada masa yang sama: mesin maya (diperkenalkan dalam Bab 4).
Beberapa aspek terakhir persekitaran aplikasi yang perlu diperkenalkan adalah memastikan aplikasi itu cepat (prestasi) dan bebas ralat (debug). Bahagian ini benar -benar teori;
Prestasi dicapai melalui pelbagai kaedah pengoptimuman. Bertentangan dengan makna perkataan, dalam pembangunan aplikasi, pengoptimuman biasanya mempunyai pelbagai tahap, dan beberapa perubahan segera membawa kepada penyelesaian yang sempurna. Prestasi termasuk tetapi tidak terhad kepada aspek berikut:
Amaran: Perhatikan pengoptimuman mikro
Ringkasan
Jika semua ini kelihatan terlalu rumit, jangan digalakkan. Ini semata -mata kerana setakat ini kita telah menangani hampir hanya teori - teori yang diperlukan untuk berani memasuki alam amalan. Dalam bab seterusnya, kami akan menggunakan beberapa mesin maya untuk mengendalikannya sendiri.
bagi mereka yang mahukan lebih banyak
Sebagai contoh, sebahagian daripada permohonan anda mungkin mempunyai keupayaan untuk menghapuskan simbol tempatan dari setiap nama dan menukarnya kepada huruf mesra Amerika. Oleh itu, nama belakang saya "ŠKVorc" akan ditukar kepada "Skvorc". Menukar ŠKVorc ke Skvorc adalah sekeping kod kecil, atau satu unit. Unit ini boleh diuji; Saya kemudian boleh menulis ujian unit, yang merupakan fail yang mentakrifkan input dan output yang diperlukan, dan apabila saya menjalankannya, ia menguji jika fungsi ini masih sah. Jika dua bulan kemudian saya menukar sesuatu dalam aplikasinya, saya dapat dengan mudah menjalankan ujian ini (masih wujud) dan periksa sama ada penukaran ini masih sah. Aliran kerja ini memastikan bahawa anda boleh menaik taraf permohonan anda kemudian tanpa bimbang tentang memecahkan apa yang telah anda bina dan dilupakan sebelum ini. Dalam metafora kami mengenai telefon pintar pada permulaan bab ini, unit yang boleh diuji berasingan boleh menjadi skrin sentuh atau bateri.
Soalan Lazim Mengenai Persekitaran Aplikasi PHP (Soalan Lazim)
Bagaimana perbezaan antara persekitaran aplikasi PHP dan persekitaran pengaturcaraan lain?
Apakah komponen utama persekitaran aplikasi PHP?
Bagaimana untuk menyediakan persekitaran aplikasi PHP?
Amalan terbaik untuk menguruskan persekitaran aplikasi PHP termasuk menjaga persekitaran sehingga kini, menyokong data secara teratur, dan memantau prestasi alam sekitar. Ia juga penting untuk mengikuti amalan terbaik keselamatan, seperti menggunakan sambungan selamat, melindungi data sensitif, dan kerap memeriksa kelemahan. Di samping itu, menggunakan sistem kawalan versi boleh membantu menguruskan perubahan dan menjejaki versi yang berbeza dari aplikasi anda.
Persekitaran Aplikasi PHP menyediakan pelbagai pelaporan ralat dan keupayaan pembalakan. Ciri -ciri ini boleh dikonfigurasikan untuk memberikan maklumat terperinci mengenai kesilapan yang berlaku semasa pelaksanaan skrip PHP. Maklumat ini tidak ternilai untuk menyahpepijat dan penyelesaian masalah. Di samping itu, persekitaran PHP boleh ditetapkan untuk mengendalikan kesilapan dengan cara yang tidak mengganggu pengalaman pengguna, contohnya dengan memaparkan halaman ralat tersuai.
Ya, persekitaran aplikasi PHP boleh digunakan untuk pembangunan aplikasi mudah alih. PHP adalah bahasa skrip sisi pelayan, yang bermaksud ia boleh digunakan untuk membuat backend untuk aplikasi mudah alih. Backend ini boleh mengendalikan tugas seperti pemprosesan data, berinteraksi dengan pangkalan data, dan menguruskan sesi pengguna. Walau bagaimanapun, untuk hujung depan aplikasi mudah alih, anda biasanya menggunakan teknologi yang berbeza seperti HTML, CSS, dan JavaScript.
Terdapat banyak kelebihan untuk menggunakan persekitaran aplikasi PHP. Ia menyediakan persekitaran yang terkawal dan boleh diramal untuk membangun, menguji, dan menggunakan aplikasi PHP. Ia menyokong pelbagai pangkalan data dan serasi dengan pelbagai sistem operasi. Ia juga menawarkan pelbagai pelaporan ralat dan keupayaan pembalakan, yang boleh membantu dalam debug dan penyelesaian masalah. Di samping itu, persekitaran PHP biasanya mudah ditubuhkan dan dikendalikan.
Melindungi persekitaran aplikasi PHP melibatkan pelbagai langkah. Ini termasuk menggunakan sambungan yang selamat, melindungi data sensitif, mengemas kini persekitaran, dan memeriksa kelemahan. Ia juga penting untuk mengikuti amalan terbaik untuk pengekodan PHP, seperti mengesahkan dan membersihkan input pengguna, menggunakan penyataan pra -proses untuk pertanyaan pangkalan data, dan mengelakkan fungsi yang tidak ditetapkan.
Ya, persekitaran aplikasi PHP boleh disesuaikan untuk memenuhi keperluan khusus projek. Ini mungkin termasuk mengkonfigurasi tetapan PHP, menyediakan sambungan pangkalan data, dan menyesuaikan pelayan web. Di samping itu, terdapat banyak alat dan perpustakaan yang boleh memanjangkan fungsi persekitaran PHP, seperti rangka kerja untuk pembangunan aplikasi pesat, alat ujian, dan perpustakaan untuk mengendalikan tugas seperti pemprosesan imej, parsing XML, dan lain -lain.
Atas ialah kandungan terperinci Persekitaran aplikasi php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!