Rumah >pembangunan bahagian belakang >tutorial php >Menggunakan phing, alat binaan php

Menggunakan phing, alat binaan php

William Shakespeare
William Shakespeareasal
2025-03-01 10:06:13327semak imbas

Menggunakan phing, alat binaan php

Takeaways Key

  • Phing adalah alat membina projek PHP berdasarkan Apache Ant yang membantu mengautomasikan tugas -tugas seperti menjalankan ujian unit, menggunakan perubahan pangkalan data, dan menggunakan kod aplikasi. Ini membantu mencegah kesilapan yang boleh berlaku dalam proses manual, terutamanya dalam aliran kerja integrasi yang berterusan.
  • Phing menggunakan fail XML untuk menentukan tugas. Tugas -tugas ini boleh dikumpulkan ke dalam sasaran, yang boleh digunakan secara individu atau bergantung pada sasaran lain. Tugas boleh terdiri daripada tindakan mudah seperti mengulangi mesej kepada tindakan yang lebih kompleks seperti penggunaan FTP. Phing juga membolehkan penciptaan tugas tersuai.
  • phing tidak terhad kepada operasi khusus PHP tetapi juga boleh mengendalikan operasi khusus kerangka. Ini menjadikannya alat yang serba boleh untuk mana -mana projek PHP. Ia juga membantu mengautomasikan proses penempatan, mengendalikan kesilapan, dan menjana dokumentasi.
Phing adalah alat membina projek PHP berdasarkan Apache Ant. Sistem binaan membantu anda melakukan sekumpulan tindakan menggunakan satu arahan. Jika anda tertanya -tanya mengapa PHP memerlukan alat binaan, pertimbangkan aliran kerja di mana anda menulis kod dan ujian unit pada mesin tempatan anda, dan jika ujian lulus anda memuat naik kod ke pelayan pementasan/pengeluaran dan membuat sebarang perubahan pada pangkalan data pengeluaran. Tanpa fail membina, anda perlu melalui setiap langkah secara manual. Jika anda melakukan integrasi berterusan, anda akan melakukan langkah yang sama berulang kali. Ia terlalu mudah untuk secara tidak sengaja menghilangkan sesuatu dalam proses dan berakhir dengan masalah serius dalam pengeluaran. Phing membantu mengatasi isu -isu tersebut dengan mengautomasikan tugas -tugas seperti menjalankan ujian unit, menggunakan perubahan pangkalan data, menggunakan kod aplikasi, dan lain -lain. Dalam artikel ini saya akan menunjukkan kepada anda beberapa asas bekerja dengan phing. Jika anda tidak memilikinya, anda boleh memasang phing menggunakan pir:
shameer@yukon:~$ sudo pear channel-discover pear.phing.info
shameer@yukon:~$ sudo pear install phing/phing
Jika anda ingin menggunakan tugas seperti phpunit atau phpdocumentor maka anda juga perlu memasang pakej bergantung.

Phing Hello World

Untuk menunjukkan kepada anda betapa mudahnya untuk membuat fail membina untuk phing, mari kita mulakan dengan fail membina "hello dunia". Mula -mula buat direktori projek anda, dan kemudian di dalamnya membuat fail bernama Build.xml dengan kandungan berikut:
<span><?xml version="1.0" encoding="UTF-8"?>
</span><span><span><span><project</span> name<span>="HelloWorld"</span> default<span>="welcome"</span> basedir<span>="."</span> description<span>="a demo project"</span>></span>
</span> <span><span><span><property</span> name<span>="message"</span> value<span>="Hello World!"</span>/></span>
</span> <span><span><span><target</span> name<span>="welcome"</span>></span>
</span>  <span><span><span><echo</span> msg<span>="${message}"</span>/></span>
</span> <span><span><span></target</span>></span>
</span><span><span><span></project</span>></span></span>
Dari baris arahan, navigasi ke dalam direktori dan jalankan phing.
shameer@yukon:~/HelloWorld$ phing
Buildfile: /home/shameer/HelloWorld/build.xml

HelloWorld > welcome:

     [echo] Hello World!

BUILD FINISHED

Total time: 0.2275 seconds
Elemen adalah elemen akar fail binaan. Default atribut diperlukan dan menentukan sasaran lalai untuk memohon jika seseorang tidak dibekalkan pada baris arahan. Selain itu, anda juga boleh menentukan nama projek, direktori asas projek, dan keterangan untuk membantu menjaga perkara yang teratur. The Elemen mewakili kumpulan tugas yang boleh dilakukan. Sebagai contoh, sasaran yang berbeza mungkin ditakrifkan untuk melakukan sandaran atau untuk mengemas kini pangkalan data. Sasaran juga boleh bergantung kepada sasaran lain yang mesti dilakukan sebelum melaksanakan. Elemen adalah tugas, satu tindakan yang boleh dilakukan. Terdapat bilangan tugas teras dalam phing yang terdiri daripada tugas mudah seperti membuat direktori kepada tugas yang lebih kompleks seperti melakukan transformasi XSLT. Anda tidak terhad kepada tugas Phing yang disediakan, walaupun; Anda juga boleh membuat tugas tersuai. Unsur mentakrifkan nilai bernama yang boleh digunakan kemudian di seluruh fail binaan. Untuk merujuk nilai harta, nyatakan nama itu antara "$ {" dan "}". Perlu diingat nama harta adalah kes sensitif dalam phing. Ia tidak wajib bahawa anda menamakan fail binaan anda binaan.xml, tetapi phing akan mencari nama ini secara lalai. Jika anda menggunakan nama lain maka anda perlu menentukan fail binaan sebagai hujah kepada arahan phing, sebagai contoh:
shameer@yukon:~$ sudo pear channel-discover pear.phing.info
shameer@yukon:~$ sudo pear install phing/phing
Anda juga boleh memanggil sasaran selain daripada lalai dengan menyediakan satu atau lebih nama sasaran dalam baris arahan:
<span><?xml version="1.0" encoding="UTF-8"?>
</span><span><span><span><project</span> name<span>="HelloWorld"</span> default<span>="welcome"</span> basedir<span>="."</span> description<span>="a demo project"</span>></span>
</span> <span><span><span><property</span> name<span>="message"</span> value<span>="Hello World!"</span>/></span>
</span> <span><span><span><target</span> name<span>="welcome"</span>></span>
</span>  <span><span><span><echo</span> msg<span>="${message}"</span>/></span>
</span> <span><span><span></target</span>></span>
</span><span><span><span></project</span>></span></span>

Pelbagai sasaran

Mari kita meminda skrip binaan dan tambahkan sasaran tambahan. Demi contoh, saya akan menganggap struktur direktori berikut disediakan untuk projek itu:

Menggunakan phing, alat binaan php Kemas kini Build.xml Jadi sekarang kelihatan seperti ini:

Dua sasaran telah ditambah, menguji dan membina, dan sasaran lalai telah diubah untuk dibina. Sekarang apabila anda menjalankan phing dari direktori projek, ia akan memanggil sasaran binaan dan, kerana sasaran ini bergantung pada sasaran ujian, Phing akan menjalankan sasaran ujian terlebih dahulu. Tugas memanggil phpunit. Kerana proses binaan tidak boleh diteruskan jika mana -mana ujian unit gagal, atribut Haltonfailure telah ditetapkan. Mendapat fail dimasukkan dari mana -mana bilangan elemen bersarang. Selepas ujian unit dijalankan dengan jayanya, fail sasaran sasaran membina fail yang ditentukan dalam ke direktori destinasi menggunakan . Perhatikan bahawa bukannya memberikan nama fail di sini refid digunakan. Ini merujuk kepada yang diisytiharkan sebelum ini dengan srcfiles ID. Ia berguna untuk menentukan set fail dan merujuknya seperti ini apabila anda mempunyai ungkapan biasa yang kompleks atau perlu merujuk kepada fail yang sama di beberapa tempat. Tugas menghubungkan ke pelayan jauh menggunakan FTP dengan kelayakan yang diberikan dan memindahkan fail yang ditentukan oleh set fail.
shameer@yukon:~/HelloWorld$ phing
Buildfile: /home/shameer/HelloWorld/build.xml

HelloWorld > welcome:

     [echo] Hello World!

BUILD FINISHED

Total time: 0.2275 seconds
Ringkasan Dalam artikel ini saya memperkenalkan anda kepada PHP Build Tool Phing. Terdapat lebih banyak lagi phing daripada apa yang saya bincangkan di sini, contohnya anda boleh menggunakannya untuk membantu dengan migrasi pangkalan data. Saya cadangkan membaca dokumentasi yang sangat baik untuk melihat semua alat yang berkuasa ini boleh dilakukan.

imej melalui dino o / shutterstock

Soalan Lazim (Soalan Lazim) Mengenai Menggunakan Phing

Apakah struktur asas fail membina phing?

Fail membina phing adalah fail XML yang mentakrifkan tugas yang akan dilaksanakan. Ia bermula dengan tag

yang merangkumi atribut seperti nama, lalai, dan berasaskan. Tag

mentakrifkan satu siri tugas yang boleh dilaksanakan bersama. Setiap tugas diwakili oleh tag XML tertentu seperti , , dan lain -lain. Tugas -tugas yang dilaksanakan mengikut urutan yang mereka tunjukkan dalam sasaran.

Bagaimana saya boleh menggunakan phing untuk integrasi berterusan?

phing boleh digunakan dalam integrasi berterusan untuk mengautomasikan proses binaan dan penempatan. Anda boleh menentukan tugas untuk kod linting, ujian unit, menjana dokumentasi, membungkus kod, dan menggunakannya ke pelayan. Tugas -tugas ini boleh dicetuskan secara automatik apabila terdapat perubahan dalam repositori kod.

Bagaimana saya boleh melanjutkan dengan tugas -tugas tersuai? Anda perlu melaksanakan kaedah utama () di mana anda menentukan tingkah laku tugas. Sebaik sahaja kelas tugas tersuai dibuat, anda boleh menggunakan tag

dalam fail binaan untuk mendaftarkan tugas. Phing menggunakan XML untuk fail membina seperti ANT, tetapi ia mempunyai tugas terbina dalam operasi khusus PHP seperti menjalankan ujian phpunit atau menghasilkan dokumentasi phpdocumentor. Sebaliknya, Maven menggunakan pendekatan konvensyen-overfiguration dan mempunyai kitaran hayat yang lebih kompleks. Anda boleh menggunakan tugas

untuk menghentikan proses membina jika keadaan tertentu dipenuhi. Anda juga boleh menggunakan tugas untuk menangkap pengecualian dan mengendalikannya dengan sewajarnya. Di samping itu, anda boleh mengkonfigurasi tahap pembalakan untuk mengawal jumlah maklumat yang dipaparkan apabila ralat berlaku. Anda boleh menentukan tugas untuk mengendalikan operasi khusus kerangka seperti menjalankan migrasi atau membenamkan pangkalan data. Walau bagaimanapun, anda boleh mencapai ini dengan menggunakan tugas

untuk menjalankan proses phing berasingan di latar belakang. Anda boleh menentukan tugas untuk membungkus aplikasi, memuat naiknya ke pelayan, dan melaksanakan sebarang tugas persediaan yang diperlukan. Pembolehubah boleh ditetapkan dari fail sifat, dari baris arahan, atau dari persekitaran. Anda boleh mengkonfigurasi proses penjanaan dokumentasi dengan menentukan direktori sumber dan destinasi, format output, dan pilihan lain.

Atas ialah kandungan terperinci Menggunakan phing, alat binaan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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