3Berikutan pengenalan Alexander Cogneau kepada Pengurusan Ketergantungan dengan Komposer , anda kini tahu bahawa komposer adalah resolver untuk menguruskan kebergantungan projek luaran dan kekangan versi. Tetapi adakah itu semua? Dalam artikel ini, saya akan menunjukkan kepada anda bagaimana komposer juga boleh digunakan sebagai alat automasi membina asas.
<span>{ </span> <span>"name": "MyProject", </span> <span>"description": "An example to demonstrate the use of Composer scripts", </span> <span>"version": "1.0.0", </span> <span>"require": { </span> <span>"php": ">=5.3", </span> <span>"ext-xsl": "*", </span> <span>"ext-imap": "*", </span> <span>"ext-gd": "*" </span> <span>}, </span> <span>"autoload": { </span> <span>"psr-0": { </span> <span>"MyProject": "src/" </span> <span>} </span> <span>}, </span> <span>"scripts": { </span> <span>"pre-install-cmd": "MyProject\Installer::preInstall", </span> <span>"post-install-cmd": [ </span> <span>"MyProject\Installer::postInstall" </span> <span>], </span> <span>"post-package-install": [ </span> <span>"MyProject\Installer::postPackageInstall", </span> <span>"phpunit -c /tests", </span> <span>"./bin/install.sh" </span> <span>] </span> <span>} </span><span>}</span>
<span><span><?php </span></span><span><span>namespace MyProject; </span></span><span><span>use ComposerScriptEvent; </span></span><span> </span><span><span>class Installer </span></span><span><span>{ </span></span><span> <span>public static function preInstall(Event $event) { </span></span><span> <span>// provides access to the current ComposerIOConsoleIO </span></span><span> <span>// stream for terminal input/output </span></span><span> <span>$io = $event->getIO(); </span></span><span> <span>if ($io->askConfirmation("Are you sure you want to proceed? ", false)) { </span></span><span> <span>// ok, continue on to composer install </span></span><span> <span>return true; </span></span><span> <span>} </span></span><span> <span>// exit composer and terminate installation process </span></span><span> <span>exit; </span></span><span> <span>} </span></span><span> </span><span> <span>public static function postInstall(Event $event) { </span></span><span> <span>// provides access to the current Composer instance </span></span><span> <span>$composer = $event->getComposer(); </span></span><span> <span>// run any post install tasks here </span></span><span> <span>} </span></span><span> </span><span> <span>public static function postPackageInstall(Event $event) { </span></span><span> <span>$installedPackage = $event->getComposer()->getPackage(); </span></span><span> <span>// any tasks to run after the package is installed? </span></span><span> <span>} </span></span><span><span>}</span></span>
Skrip komposer adalah cara untuk mengautomasikan tugas dalam pembangunan PHP. Mereka ditakrifkan dalam fail komposer.json dan boleh dijalankan dari baris arahan menggunakan arahan 'komposer run-skrip'. Skrip boleh digunakan untuk mengautomasikan tugas seperti ujian, bangunan, dan penempatan. Mereka juga boleh digunakan untuk menjalankan kod PHP tersuai.
Ya, skrip komposer boleh digunakan untuk ujian. Anda boleh menentukan skrip dalam fail komposer.json anda yang menjalankan ujian anda. Sebagai contoh, anda boleh menentukan skrip yang dipanggil 'ujian' yang menjalankan phpunit. Kemudian, anda boleh menjalankan ujian anda dari baris arahan menggunakan arahan 'komposer run-script' perintah.
Bolehkah skrip komposer menjalankan kod php tersuai? kod php tersuai. Anda boleh menentukan skrip dalam fail komposer.json anda yang menjalankan fail PHP. Fail PHP boleh mengandungi sebarang kod yang anda mahukan. Apabila anda menjalankan skrip menggunakan arahan 'komposer run-skrip', kod php akan dilaksanakan. Fail .json. Setiap skrip ditakrifkan sebagai pasangan nilai utama, dengan kunci sebagai nama skrip dan nilai menjadi arahan untuk dijalankan. Anda boleh menambah, mengubah suai, atau mengeluarkan skrip dengan mengedit fail komposer.json.
Apakah faedah menggunakan skrip komposer untuk automasi? proses pembangunan anda lebih cekap. Dengan mengautomasikan tugas berulang, anda boleh menjimatkan masa dan mengurangkan risiko kesilapan. Skrip komposer juga membuat proses binaan anda lebih konsisten, kerana tugas yang sama dilakukan dengan cara yang sama setiap masa. boleh digunakan bersama dengan alat lain. Sebagai contoh, anda boleh menggunakan skrip komposer untuk menjalankan tugas Gulp, atau untuk menjalankan suite ujian phpunit. Ini membolehkan anda memanfaatkan keupayaan alat lain semasa masih mendapat manfaat daripada automasi yang disediakan oleh skrip komposer.
Atas ialah kandungan terperinci PHP Master | Bina automasi dengan skrip komposer. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!