2012-08-22 2 views
6

방금 ​​Symfony 2.1로 옮겼습니다. 이해할 수 없습니다. 어떻게 Composer에서 내 번들을 설치할 수 있습니까? 그 난 그냥 bin/vendors update 트리거 후Symfony 2.1에서 Composer로 자신의 번들을 설치하는 방법은 무엇입니까?

[MyOwnBundle] 
    [email protected]:weboshin_cms_bundle.git 
    target=/bundles/My/OwnBundle 

그게이었다

그것은 deps에서 커널 2.0.x에서 매우 쉬웠다!

하지만 이제는 deps 파일이 없기 때문에 모든 것을 Composer로 처리해야합니다. 제발 어떤 힌트라도주세요.

+0

// my_project/compose.json: { "repositories": [ { "type": "vcs", "url": "own_repository_url" } ], // ... "require": { // ... "own/bundle": "dev-master" } }, 
** 심포니 2.1로 당신은 또한 기존의 의존성 관리자를 사용할 수 있습니다! ** 당신은 당신의 의존성 어떤 작곡가를 알려주는'composer.json' 파일을 만들어야합니다. [Symfony Standard Edition의 것] (https://github.com/symfony/symfony-standard/blob/master/composer.json)을보아야합니다. 그런 다음 번들을위한 또 다른'composer.json'을 만듭니다. – Florent

+0

@Florent, 이미 Composer 도구 인'composer-php'에 대한 태그가 있음을 기억하십시오. – Charles

답변

6

나는 답을 발견했습니다.

// own_repository/own_bundle/compose.json: 
{ 
    "name": "own/bundle" 
} 
5

번들에 composer.json 파일을 추가하십시오. 예를 들어 내 번들 중 하나이 있습니다

{ 
    "name":  "cg/kint-bundle", 
    "type":  "symfony-bundle", 
    "description": "This bundle lets you use the Kint function in your Twig templates. Kint is a print_r() replacement which produces a structured, collapsible and escaped output", 
    "keywords": ["kint", "debug", "symfony", "bundle", "twig"], 
    "homepage": "http://github.com/barelon/CgKintBundle", 
    "license":  "MIT", 

    "authors": [ 
     { 
      "name": "Carlos Granados", 
      "homepage": "http://github.com/barelon" 
     }, 
     { 
      "name": "Symfony Community", 
      "homepage": "http://github.com/barelon/CgKintBundle" 
     } 
    ], 

    "require": { 
     "php":      ">=5.3.2", 
     "symfony/framework-bundle": ">=2.0.0", 
     "raveren/kint":    "dev-master" 
    }, 

    "minimum-stability": "dev", 

    "autoload": { 
     "psr-0": { 
      "Cg\\KintBundle": "" 
     } 
    }, 

    "target-dir": "Cg/KintBundle" 
} 

그런 packagist.org에 번들을 추가 할 수 있습니다. 그것은 매우 간단합니다, 기본적으로 당신은 당신의 자식 주소를 제공해야하고 그것은 나머지를 할 것입니다.

번들을 packagist에서 사용할 수있게되면 심포니 프로젝트의 composer.json 파일에 의존성으로 추가하기 만하면됩니다. 내 경우에는 내가 가진 :

"require": { 
    .... 
    "cg/kint-bundle": "*" 
}, 

그런 다음 당신의 심포니 디렉토리와 이것이 전부 "작곡가 업데이트"를 실행! autoload 파일을 업데이트 할 필요조차 없습니다. 작곡가가 대신 해줍니다. 남아있는 유일한 것은 appkernel.php에서 번들을로드하는 것입니다.

+3

"packagist에 추가"는 공개 소스 번들에만 유효합니다. https://getcomposer.org/doc/05-repositories.md#vcs 및 https://getcomposer.org/doc를 참조하십시오. /articles/handling-private-packages-with-satis.md – Seldaek

+6

누구나'symfony-bundle'이 의미하는 것을 알고 있습니까? 이 유형을 사용했을 때의 결과는 무엇입니까? – greg0ire