2012-09-11 7 views
7

Symfony 2.1 프로젝트가 있으며, 추가 번들이 작곡가를 통해 설치됩니다. 프로덕션 서버에 배포하고 싶지만 composer.json 파일의 내용을 변경해야하는지 궁금합니다. 현재 파일 내용은 다음과 같습니다.프로덕션 환경에서 내 composer.json 파일은 어떻게 표시되어야합니까?

{ 
    "name": "symfony/framework-standard-edition", 
    "description": "The \"Symfony Standard Edition\" distribution", 
    "autoload": { 
     "psr-0": { "": "src/" } 
    }, 
    "require": { 
     "php": ">=5.3.3", 
     "symfony/symfony": "2.1.1", 
     "doctrine/orm": ">=2.2.3,<2.4-dev", 
     "doctrine/doctrine-bundle": "1.0.*", 
     "twig/extensions": "1.0.*", 
     "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.*", 

     "friendsofsymfony/user-bundle": "*", 
     "knplabs/knp-paginator-bundle": "dev-master", 
     "ornicar/gravatar-bundle": "dev-master", 
     "liip/url-auto-converter-bundle": "dev-master" 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ], 
     "post-update-cmd": [ 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", 
      "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" 
     ] 
    }, 
    "config": { 
     "bin-dir": "bin" 
    }, 
    "minimum-stability": "dev", 
    "extra": { 
     "symfony-app-dir": "app", 
     "symfony-web-dir": "web" 
    } 
} 

minimum-stability 설정을 변경해야합니까?

모든 요구 사항을 와일드 카드 또는 "dev-master"없이 단일 버전으로 수정해야합니까?

각 종속성의 마지막 안정 버전 인 http://packagist.org/을 검색하겠습니까?

답변

11

내가 가장 중요하다고 생각하는 것은 작곡가입니다. 잠금이 아니라 작곡가 .json입니다.

테스트 서버 인 php composer.phar install에 앱을 배포 한 다음 테스트를 실행하여 모든 것이 올바르게 작동하는지 확인하십시오. 실제로 괜찮 으면 composer.lock과 함께 프로덕션 서버에 배포하면됩니다.

귀하의 시험관은 귀하의 테스트 서버와 동일합니다. 이것은 프런트 서버가 여러 개인 경우에도 유용합니다. composer.lock은 모든 사람이 똑같은 코드를 사용하도록합니다.

당신은 내가 와일드 카드없이 단일 버전에 대한 모든 요구 사항을 수정, 또는 "DEV-마스터"해야

을했다?

이것은 모든 것을 "고치는"composer.lock의 역할입니다. composer.json은 종속성을 선언하고 버전 간의 비 호환성을 처리하는 데 사용됩니다. 기본적으로 개발 브랜치에서 새로운 기능이 필요하거나 아직 병합되지 않은 버그 픽스가 필요한 경우가 아니면 stable 버전을 사용해야합니다.

따라서, composer.lock의 버전을 지정하면 자동 배포가 쉬워집니다.

+0

위대한 답변이지만 "앱 배포"단계에 대해 자세히 설명해 주시겠습니까? 어떤 작곡가 파일이 필요합니까? 분명히 .phar 및 .lock 파일. 아직도 작곡가가 필요합니까? composer_installer.php는 어떻습니까? –

+1

@BenjaminBrizzi 그럼 "앱 배포"에 대해 자세히 설명 할 수는 없습니다. Composer는 응용 프로그램 자체가 아닌 종속성 만 처리합니다. 일반적으로 "앱 배포"는 '복제품'일 수 있습니다. deps리스트를 포함하고 있기 때문에 여전히'composer.json'이 필요합니다. 'composer.lock'은 당신이 설치하고 싶은 버전만을 지정합니다. 나는 composer_installer.php가 무엇인지 모르겠다. 미안하다. –