2012-06-19 3 views
3

src-dir (Symfony/src)에 직접 설치하려면 composer.json을 어떻게 수정해야합니까?/src 디렉토리에 어떻게 작성자 패키지를 설치할 수 있습니까?

{ 
"name": "acme/example-bundle", 
"type": "symfony-bundle", 
"license": "MIT", 
"require": { 
    "php": ">=5.3.2", 
    "symfony/framework-bundle": "2.1.*" 
}, 
"suggest": { 
    "doctrine/doctrine-bundle": "*" 
}, 
"autoload": { 
    "psr-0": { "Acme": "src/" } 
}, 
"target-dir": "../../src/Acme/ExampleBundle" 

}

+1

나는 받아 들인 대답에 총체적으로 동의한다. 그러나 선택의 여지가없는 상황이 있습니다. 'vendor '대신'src'에 의존성을 설치하려면 어떤 옵션이 필요합니까? – BetaRide

+1

혹시이 문제가 해결 되었습니까? 나는 같은 문제가 있고 src/디렉토리에 번들을 넣을 수있는 해결책을 찾았는지 알고 싶다. –

답변

6

실제로는 공급 업체의 패키지를 편집 할 수 없습니다해야하며 src 디렉토리는 개발 과정에서 편집 코드를 의미하기 때문에의 src 디렉토리에 공급 업체 패키지를 설치하는 것은 좋은 생각이 아니다.

내 마음에 오는 한 가지 이유는이 패키지를 수정하기를 원한다는 것입니다. 이것이 중요하다면, 작곡가는 오직 한 방향의 흐름만을 가지기 때문에 git submodules을 사용하지 않는 것이 좋습니다. 변경 사항은 공급 업체 패키지의 소스에서만 올 수 있으며 소스에 대한 업스트림이 없음을 의미합니다.

내 프로젝트에서 프로젝트 전용이 아니므로 자체 git 저장소에 있지만 프로젝트 중에 적극적으로 개발 된 묶음에는 자식 서브 모듈을 사용합니다.

+0

좋아, 이걸로 실제로 네가 맞아. 조언 주셔서 감사합니다! # – bodokaiser

+6

이것은 실제로 잘못되었습니다. --prefer-source를 지정하면 composer는 벤더의 git 저장소와 체크 아웃 svn 저장소를 복제하려고 시도 할 것이므로이 저장소에서 개발하고 커밋 할 수 있습니다. – naderman

+0

오 ... 그걸 몰랐어. sf 2.0의 오래된 벤더 스크립트에 문제가있어서, 리포지토리가 읽기 전용으로 체크 아웃되고 커밋/푸시가 불가능합니다. 내가 밀어 넣을 수 있도록 github 저장소를 어떻게 포함 할 수 있는지에 대한 예제를 게시 할 수 있습니까? 고맙습니다 – room13

5

PHP/Symfony 프로젝트의 src 디렉토리는 일반적으로 해당 프로젝트의 코드에서만 사용됩니다. 종속성으로 설치 한 코드는 공급 업체 디렉토리로 이동합니다.

이렇게하면 프로젝트의 일부인 코드와 별도의 리포지토리에서 관리되는 코드를 쉽게 추적 할 수 있습니다.

그런 이유로 별도 저장소에서 src 디렉토리로 번들을 설치하지 마십시오. Symfony의 번들은 핵심 프레임 워크 번들과 마찬가지로 벤더 디렉토리에 있으면 잘 작동합니다.

관련 문제