7

Composerを使用してSymfony2をインストールし(「マスター」ガイドに従って)、次の.git/configファイルを作成しました。

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/symfony/symfony-standard
    pushurl = git@github.com:symfony/symfony-standard.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "composer"]
    url = git://github.com/symfony/symfony-standard
    fetch = +refs/heads/*:refs/remotes/composer/*

Composerがどのように機能するかわからないので、Composerがここで行ったことを妨害したくありません。また、将来的にベンダーを更新できるようにしたいと思います。

では、「myapp」用の独自のリポジトリを追加して、それにコミット/プッシュするにはどうすればよいですか?私は通常「gitremoteaddorigin ...」を実行し、それでのみ機能しますが、ファイルには2つのリポジトリと、追加する必要のあるリポジトリがあります。

アップデート

このコマンドでSymfony2をインストールしました:

$ php composer.phar create-project symfony/framework-standard-edition myapp

これによりmyapp/が作成され、Symfony2+の依存関係がインストールされました。しかし、composer.jsonは私のプロジェクトで使用する準備ができていないように見えます。私のプロジェクトはSymfony2自体であるように見えます(私は思います):

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
    "psr-0": { "": "src/" }
    },
    "require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.1.*",
    "doctrine/orm": "2.2.*",
    "doctrine/doctrine-bundle": "dev-master",
    "twig/extensions": "dev-master",
    "symfony/assetic-bundle": "dev-master",
    "symfony/swiftmailer-bundle": "dev-master",
    "symfony/monolog-bundle": "dev-master",
    "sensio/distribution-bundle": "dev-master",
    "sensio/framework-extra-bundle": "dev-master",
    "sensio/generator-bundle": "dev-master",
    "jms/security-extra-bundle": "1.1.*",
    "jms/di-extra-bundle": "1.0.*"
    },
    "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"
    }
}

マスターガイド

4

1 に答える 1

8

@ m2mdasが提案するように、 .gitフォルダーを安全に削除し、gitinitを実行して独自のリポジトリを初期化できます。

Composerはここでは特別なことは何もしていません。symfony-standardプロジェクトのクローンを作成し、その依存関係をインストールするだけです。

Composerはリポジトリのクローンを作成しますが、動作するために.gitフォルダーは必要ありません。実際、デフォルトでプロジェクトのクローンを作成するべきではないと思います。彼らは将来のバージョンでそれを修正するかもしれません。

Composerはcomposer.jsonファイルを使用するため、この1つのファイルですべての依存関係を管理する必要があります。安全に編集して、パッケージを追加または削除できます。

次に、パッケージを更新するには、次のコマンドを実行します。

php composer.phar update

composer.jsonから削除されたすべてのパッケージが削除され、追加したパッケージがインストールされます。既存のパッケージは最新バージョンに更新されます。

生成されたcomposer.lockファイルをリポジトリに保存して、実行時に常に同じバージョンの依存関係を取得できるようにする必要があります。

php composer.phar install

composer.lockは、最初にinstallを実行したとき、およびすべての更新コマンドで更新されます。

于 2012-07-19T21:54:49.460 に答える