態遵循亞歷山大·科格諾(Alexander Cogneau)與作曲家的依賴管理簡介 ,您現在知道作曲家是管理外部項目依賴和版本限制的解析器。但這就是一切嗎?在本文中,我將向您展示如何也可以將作曲家用作基本的構建自動化工具。
<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>我為預安裝CMD,後安裝後CMD和包裝後安裝事件定義了一些腳本。如您所見,我們可以定義靜態PHP方法和命令行可執行文件的任何組合。在包裝後安裝事件的情況下,它還執行一些單元測試和自定義安裝腳本。 這是我們的示例腳本的樣子:
<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>當這些事件中的每個事件都被解僱時,作曲家的內部事件處理程序將ComposersCriptevent對像作為第一個(也是唯一的)參數傳遞給每個回調。活動 對象將其他作曲家對象的以下獲取器曝光到您的回調:
>我可以使用Composer腳本進行測試嗎?您可以在Composer.json文件中定義一個運行測試的腳本。例如,您可以定義一個稱為“測試” phpunit的腳本。然後,您可以使用“ Composer Run-Script Test”命令從命令行運行測試。
是的,Composer腳本可以運行自定義PHP代碼。您可以在Composer.json文件中定義一個運行PHP文件的腳本。 PHP文件可以包含您想要的任何代碼。當您使用“ Composer Run-script”命令運行腳本時,將執行PHP代碼。
>我可以使用Composer腳本來自動化構建過程嗎?
>
我可以將Composer腳本與其他工具結合使用嗎?可以與其他工具一起使用。例如,您可以使用作曲家腳本來運行GULP任務,也可以運行Phpunit測試套件。這使您可以利用其他工具的功能,同時仍能從作曲家腳本提供的自動化中受益。>有很多資源可幫助您了解有關使用Composer腳本進行自動化的更多信息。官方的作曲家文檔是一個不錯的起點。在線提供了許多教程和博客文章,提供了使用作曲家腳本的示例和最佳實踐。
>以上是PHP主|使用作曲家腳本構建自動化的詳細內容。更多資訊請關注PHP中文網其他相關文章!