2012-12-20 4 views
7

나는 작곡가를 사용하여 새로운 프로젝트와 Symfony 2 의존성에 대한 피클에 빠져있다.작곡가, 최소한의 안정성과 의존성 의존성

처음에는 작곡가를 사용하여 symfony/framework-standard-edition v2.1.5를 설치합니다. 이렇게하면 최소 요구 사항이 있고 최소 안정성 노드가없는 작성자 파일이 생성됩니다.

"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.0.*", 
    "twig/extensions": "1.0.*@dev", 
    "symfony/assetic-bundle": "2.1.*", 
    "symfony/swiftmailer-bundle": "2.1.*", 
    "symfony/monolog-bundle": "2.1.*", 
    "sensio/distribution-bundle": "2.1.*", 
    "sensio/framework-extra-bundle": "2.1.*", 
    "sensio/generator-bundle": "2.1.*", 
    "jms/security-extra-bundle": "1.2.*", 
    "jms/di-extra-bundle": "1.1.*", 
    "kriswallsmith/assetic": "1.1.*@dev" 
}, 

정상적으로 작동합니다. 정상적으로 모든 최신 안정 버전을 설치합니다.

다음으로, 나는 번들을 추가 ->https://packagist.org/packages/kunstmaan/admin-bundle이 번들은 "DEV-마스터"(https://packagist.org/packages/doctrine/doctrine-fixtures-bundle)

에서 "교리/교리 비품 - 번들"에 따라

"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    "doctrine/orm": ">=2.2.3,<2.4-dev", 
    "doctrine/doctrine-bundle": "1.0.*", 
    "twig/extensions": "1.0.*@dev", 
    "symfony/assetic-bundle": "2.1.*", 
    "symfony/swiftmailer-bundle": "2.1.*", 
    "symfony/monolog-bundle": "2.1.*", 
    "sensio/distribution-bundle": "2.1.*", 
    "sensio/framework-extra-bundle": "2.1.*", 
    "sensio/generator-bundle": "2.1.*", 
    "jms/security-extra-bundle": "1.2.*", 
    "jms/di-extra-bundle": "1.1.*", 
    "kriswallsmith/assetic": "1.1.*@dev", 
    "kunstmaan/admin-bundle": "dev-master" 
}, 

그리고 그 번들 따라 * (https://packagist.org/packages/doctrine/data-fixtures)

프로젝트에서 작곡가 업데이트를 실행하면 doctrine/data-fixtures 종속성을 만족시킬만한 것이 없다고 알려줍니다. 이름의 오타 또는 최소 안정성이 안정되어 기본값으로 사용 가능한 "안정적인"버전이 없습니다.

"dev"안정성을 doctrine-fixtures-bundle에 설치하려고합니다. dev-master를 넣으면이 종속성이 "dev"안정성에 자동으로 적용되기 때문입니다. 그러나 이것은이 dep의 deps를 위해 아무것도하지 않으며, 저것은 나의 최소한 안정성이기 때문에 안정되어있는대로 설치하고 싶습니다.

이 시점에서 doctrine/data-fixtures : dev-master 또는 @dev를 프로젝트의 내 composer.json에 추가하여이 문제를 해결할 수 있습니다.

하지만 이것은 (knpmenubundle, fosuserbundle 등) 하나의 예일 뿐이므로 수동으로 이동하여 자신의 작곡가 파일에 설치하지 않는 deps를 모두 추가해야합니다.

또 다른 해결책은 내 프로젝트의 최소 안정성을 개발자에게 떨어 뜨리는 것이지만 그 당시 Symfony2와 같은 안정적인 개발자를 포함하여 모든 내 deps는 개발자가 아닌 개발자 버전을 설치합니다.

답변

13

좋은 방법은 하나뿐입니다. 많은 사람들이 태그를 추가하도록 태그를 지정하십시오. 불안정한 물건으로 작업해야하는 경우 "@dev"이 필요합니다. 안정성보다 불안정한 경우에는 항상 @stable을 태그하고 최소 안정성을 dev로 설정할 수 있습니다. 대부분의 경우 엉덩이를 저장하는 잠금 파일이 여전히 있습니다.)