franzliedke/studio는 php 패키지를 개발할 때 로컬에 있는 패키지를 참조할 수 있도록 도와주는 composer 확장 도구다.
물론 composer에서도 composer.json
의 repositories
설정을 추가하는 것으로 로컬에 있는 패키지를 참조할 수 있다. 하지만 패키지를 배포할 때마다 이 부분을 다시 정리해야 하는 불편이 있다. 만약 경로가 포함된 상태로 배포가 된다면 해당 리포지터리를 참조할 수 없다고 아예 의존성 설치가 불가능해진다. studio는 이런 문제를 해결한다.
이 도구도 내부적으로는 repositories의 path 타입을 추가하는 방식으로 동작하지만 composer.json
파일은 직접 변경하지는 않으며 studio.json
이라는 별도 파일을 생성한다.
설치
다음처럼 전역에 설치할 수 있지만 PATH에 ~/.composer/vendor/bin
경로가 추가되어 있어야 한다.
$ composer global require franzl/studio
또는 지역적으로 설치해서 vendor/bin/studio
로 사용하는 것도 가능하다.
$ composer require --dev franzl/studio
사용
사용하려는 다른 패키지를 먼저 studio에 등록한다.
$ studio load path/to/some-package
사용하려는 패키지가 한 폴더 내에 모두 있는 경우에는 와일드카드 사용도 가능하다. packages
폴더에 모두 있다면 다음처럼 불러온다. (대신 따옴표를 잘 사용해야 한다.)
$ studio load 'path/to/packages/*'
이미 패키지가 추가되어 있는 경우에는 업데이트를 하면 된다. 패키지명이 my/some-package
라고 한다면,
$ composer update my/some-package
새로 설치하는 경우라면 require를 사용한다. @dev
는 가장 마지막 커밋을 참조하도록 dev-master
를 사용하는 것과 동일한데 더 자세한 내용은 composer 문서를 참고하자.
$ composer require my/some-package @dev
더 이상 로컬 패키지를 사용하지 않으려면 경로를 지운다.
$ studio unload path/to/some-package