7

私はSymfony2.1プロジェクトを持っており、composerを介して追加のバンドルがインストールされています。実稼働サーバーにデプロイしたいのですが、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/で検索することになっていますか?

4

1 に答える 1

11

最も重要なのはcomposer.lockであり、composer.jsonではないと思います。

アプリをテストサーバーにデプロイしてからphp composer.phar install、テストを実行してすべてに問題がないことを確認します。本当に問題がない場合は、composer.lockとともに本番サーバーにデプロイするだけです。

このように、あなたのdepsはあなたのテストサーバーと同じようにexacltyになります。これは、複数のフロントサーバーがある場合にも役立ちます。composer.lockは、全員がまったく同じコードを使用することを保証します。

あなたが言った

すべての要件を、ワイルドカードまたは「dev-master」を使用せずに単一のバージョンに修正する必要がありますか?

これは、すべてを「修正」するためのcomposer.lockの役割です。composer.jsonは、依存関係を宣言し、バージョン間で発生する可能性のある非互換性を処理することを目的としています。デフォルトでは、開発ブランチにいくつかの凝った新機能が必要な場合や、バグ修正がまだマージされていない場合を除いて、安定したバージョンを使用する必要があります。

したがって、composer.lockをバージョン管理する必要があります。これにより、自動デプロイが簡単になります。

于 2012-09-11T13:32:11.000 に答える