> 백엔드 개발 > PHP 튜토리얼 > PHP 마스터 | 작곡가 스크립트로 자동화를 구축하십시오

PHP 마스터 | 작곡가 스크립트로 자동화를 구축하십시오

Lisa Kudrow
풀어 주다: 2025-02-25 20:37:19
원래의
932명이 탐색했습니다.

PHP Master | Build Automation with Composer Scripts

PHP 마스터 | 작곡가 스크립트로 자동화를 구축하십시오Alexander Cogneau의 Composer의 의존성 관리 소개에 이어 , 이제 Composer는 외부 프로젝트 종속성 및 버전 작성 제약 조건을 관리하기위한 리졸버라는 것을 알고 있습니다. 그러나 그게 다가요? 이 기사에서는 작곡가를 기본 빌드 자동화 도구로 사용하는 방법을 보여 드리겠습니다. 키 테이크 아웃

작곡가는 외부 프로젝트 종속성 관리 및 버전 관리 제약 조건을 사용하는 것 외에도 기본 빌드 자동화 도구로도 사용할 수 있습니다. 사전 를 노출시킵니다

및 post /> 실행 중에 이벤트 후크를 설치/업데이트/제거 할 수 있으며 다양한 자동화 작업에 대해 스크립트를 작성할 수 있습니다.
    작곡가 스크립트 소금 가치가있는 모든 빌드 자동화 도구는 테스트 스위트 구축, 포장 및 실행에서 준비 및 생산 시스템 배치에 이르기까지 다양한 자동화 된 작업을 스크립트 할 수 있어야합니다. 예를 들어, Phing은 개미를 기반으로하며 XML 빌드 파일에서 이러한 작업을 정의 할 수 있습니다. 작곡가는 이러한 작업이 무엇인지 또는 전혀 수행 해야하는지에 대한 가정을하지 않는다는 점에서 이와 관련하여 다릅니다. Composer가 대신 "스크립트"를 사용하여 콜백 할 수있는 실행 중에 사전 및 사전 설치/업데이트/제거 이벤트 후크를 노출시키는 것입니다. Pyrus가 Package.xml에서 사용자 정의 명령을 정의 할 수있는 기능을 제공하는 것과 거의 동일합니다. -Plugin 옵션 설치, 업그레이드 및 제거 명령을 제거하십시오. 스크립트 속성은 루트 패키지의 Composer.json의 루트 JSON 객체에 정의됩니다. 파일. 수많은 PHP 정적 메소드 (Composer의 자동 로더 메커니즘으로 자동로드 가능해야 함), 명령 줄 실행 파일 또는 둘 다의 조합을 정의 할 수 있습니다. 그런 다음이 스크립트로 정의 된 모든 사용자 정의 코드 또는 패키지 별 명령은 작곡가의 실행 프로세스 중에 호출됩니다. 경고는 루트 패키지의 Composer.json에 정의 된 스크립트 만 실행된다는 것입니다. Composer는 루트 패키지의 종속성에 지정된 스크립트를 실행하지 않습니다. 다음 이벤트는 작곡가 실행 프로세스 중에 발생합니다.
  • pre-install-cmd-설치 명령이 실행되기 전에 발생합니다 Post-Install-CMD-설치 명령이 실행 된 후에 발생합니다 pre-update-cmd-업데이트 명령이 실행되기 전에 발생합니다 post-update-cmd-업데이트 명령이 실행 된 후에 발생합니다 사전 패키지-설치-패키지가 설치되기 전에 발생합니다 패키지 후 설치-패키지가 설치된 후에 발생합니다 pre-package-update-패키지가 업데이트되기 전에 발생합니다 패키지 포스트 up-update-패키지가 업데이트 된 후에 발생합니다 사전 패키지 포장-패키지가 제거되기 전에 발생합니다 패키지 포스트 포스트 ininstall-패키지가 제거 된 후에 발생합니다
이것들은 상당히 자기 설명 적이며, 나는 당신이 아름다움이 단순함에 있다는 것에 동의 할 것이라고 생각합니다. 그러나 설명하기 위해 다음은 Root Package Composer.json 예입니다.
<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>
로그인 후 복사
이러한 각 이벤트가 발사되면 Composer의 내부 이벤트 핸들러는 ComposerScriptevent 객체를 각 콜백에 대한 첫 번째 (및 유일한) 인수로 전달합니다. 이벤트 개체는 다른 작곡가 객체에 대한 다음 getters를 콜백에 노출시킵니다.
    getComposer () - ComposerComposer의 현재 인스턴스를 반환합니다 getName () - 해고중인 이벤트의 이름을 반환합니다
  • getio () - 콘솔에 대한 읽기/쓰기를위한 composerioioininterface를 구현하는 현재 입력/출력 스트림을 반환합니다.
  • 각 메소드 서명 및 이러한 각 객체가 노출시키는 다른 메소드, 특히 Composer Instance 및 IO 인터페이스에 대해 Composer API 문서를 참조 할 수 있습니다. 이 겉보기에 기초적인 구현은 푸딩 정의와 같이 "강력한"것으로 보이지 않을 수 있지만, 단순성은 놀라운 유연성에 달려 있습니다. PHP에 대한 기존 지식 투자를 활용하며, 약간의 창의성과 상상력으로 Composer의 종속성 리졸버 및 기본 PHP 스크립팅을 사용하여 상당히 복잡한 빌드 및 테이크 다운 작업을 만들 수 있습니다. 지속적인 통합을 위해 이것을 Jenkins에 통합 할 수도 있습니다.
  • 요약 이 기사에서는 작곡가 스크립트를 사용하여 빌드 자동화를 수행하는 방법에 대한 기본적인 예를 소개했습니다. 이러한 작업은 PHP에 대한 기존 지식 투자를 활용하기 때문에 필요한만큼 간단하거나 복잡 할 수 있습니다. 바라건대,이 기사는 단순한 종속성 관리 이상의 작곡가를 사용하도록 영감을 줄 것입니다. 작곡가 스크립트 사용 방법에 대한 자세한 내용은 getComposer.org/doc/articles/scripts.md를 참조하십시오. Fotolia를 통한 이미지 Composer Scripts를 사용하여 빌드 자동화에 대한 자주 묻는 질문 (FAQ) PHP 개발에서 작곡가의 주요 기능은 무엇입니까?
  • 작곡가는 PHP의 종속성 관리 도구입니다. 그것은 당신이 당신의 프로젝트에 의존하는 라이브러리를 선언 할 수 있으며, 당신을 위해 프로젝트를 관리 (설치/업데이트)합니다. 작곡가는 Yum 또는 Apt와 같은 의미의 패키지 관리자가 아닙니다. 예,“패키지”또는 라이브러리를 다루지 만 프로젝트 내에서 디렉토리 (예 : 공급 업체)에 설치하여 프로젝트별로 설치합니다. Composer 스크립트를 사용하여 작업을 자동화하려면 어떻게해야합니까?

    작곡가 스크립트는 PHP 개발의 작업을 자동화하는 방법입니다. composer.json 파일에 정의되어 있으며 'Composer Run-Script'명령을 사용하여 명령 줄에서 실행할 수 있습니다. 스크립트를 사용하여 테스트, 빌딩 및 배포와 같은 작업을 자동화 할 수 있습니다. 또한 사용자 정의 PHP 코드를 실행하는 데 사용될 수 있습니다.

    테스트에 작곡가 스크립트를 사용할 수 있습니까?

    예, 작곡가 스크립트를 테스트하는 데 사용할 수 있습니다. 테스트를 실행하는 Composer.json 파일에서 스크립트를 정의 할 수 있습니다. 예를 들어, PhPUnit을 실행하는 '테스트'라는 스크립트를 정의 할 수 있습니다. 그런 다음 'Composer Run-Script Test'명령을 사용하여 명령 줄에서 테스트를 실행할 수 있습니다.

    배포에 작곡가 스크립트를 사용하는 방법은 무엇입니까?

    Composer 스크립트를 배포에 사용할 수 있습니다. Composer.json 파일에서 스크립트를 정의하여 응용 프로그램을 배포하는 데 필요한 단계를 수행합니다. 자산 컴파일, 코드 최적화 및 서버에 파일 업로드와 같은 작업이 포함될 수 있습니다. 스크립트가 정의되면 'Composer Run-Script'명령을 사용하여 명령 줄에서 실행할 수 있습니다.

    Composer 스크립트가 사용자 정의 PHP 코드를 실행할 수 있습니까?

    예, 작곡가 스크립트가 실행될 수 있습니다. 사용자 정의 PHP 코드. php 파일을 실행하는 composer.json 파일에서 스크립트를 정의 할 수 있습니다. PHP 파일에는 원하는 코드가 포함될 수 있습니다. 'Composer Run-Script'명령을 사용하여 스크립트를 실행하면 PHP 코드가 실행됩니다.

    작곡가에서 스크립트를 관리 할 수 ​​있습니까?

    작곡가의 스크립트는 작곡가에서 관리됩니다. .json 파일. 각 스크립트는 키 값 쌍으로 정의되며 키는 스크립트의 이름이고 값은 실행되는 명령입니다. composer.json 파일을 편집하여 스크립트를 추가, 수정 또는 제거 할 수 있습니다.

    작곡가 스크립트를 사용하여 빌드 프로세스를 자동화 할 수 있습니까?

    예, 작곡가 스크립트를 사용하여 빌드 프로세스를 자동화 할 수 있습니다. . Composer.json 파일에서 스크립트를 정의하면 컴파일 코드, 자산 최소화 및 문서 생성과 같은 작업을 자동화 할 수 있습니다. 그런 다음이 스크립트는 'Composer Run-Script'명령을 사용하여 명령 줄에서 실행할 수 있습니다.

    자동화에 작곡가 스크립트를 사용하면 이점은 무엇입니까?

    자동화를 위해 작곡가 스크립트를 사용하여 만들 수 있습니다. 개발 프로세스가 더 효율적입니다. 반복적 인 작업을 자동화하면 시간을 절약하고 오류의 위험을 줄일 수 있습니다. 작곡가 스크립트는 또한 매번 같은 방식으로 동일한 방식으로 수행되므로 빌드 프로세스를보다 일관성있게 만듭니다.

    다른 도구와 함께 작곡가 스크립트를 사용할 수 있습니까? 다른 도구와 함께 사용할 수 있습니다. 예를 들어, 작곡가 스크립트를 사용하여 GULP 작업을 실행하거나 PHPUnit 테스트 스위트를 실행할 수 있습니다. 이를 통해 다른 도구의 기능을 활용하면서 작곡가 스크립트가 제공하는 자동화의 혜택을 누릴 수 있습니다. 자동화에 작곡가 스크립트 사용에 대해 더 많이 배울 수 있습니까?

    자동화에 작곡가 스크립트 사용에 대해 더 많이 배우는 데 도움이되는 많은 리소스가 있습니다. 공식 작곡가 문서는 시작하기에 좋은 곳입니다. 온라인으로 제공되는 많은 튜토리얼과 블로그 게시물도 작곡가 스크립트 사용을위한 예제 및 모범 사례를 제공합니다.

위 내용은 PHP 마스터 | 작곡가 스크립트로 자동화를 구축하십시오의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿