Cho*_*per 7 php git symfony composer-php
我使用Composer安装了Symfony 2(遵循'主'指南),并创建了这个.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/*
Run Code Online (Sandbox Code Playgroud)
我不想干扰Composer在这里所做的事情,因为我不知道它是如何工作的,我希望将来能够更新供应商.
那么如何为'myapp'添加我自己的存储库并提交/推送呢?我通常会'git remote add origin ...'并且只能使用它,但现在文件中有两个存储库,加上我需要添加的存储库.
UPDATE
我用这个命令安装了Symfony2:
$ php composer.phar create-project symfony/framework-standard-edition myapp
Run Code Online (Sandbox Code Playgroud)
这创建了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"
}
}
Run Code Online (Sandbox Code Playgroud)
大师指南
您可以安全地删除.git文件夹并运行git init来初始化您自己的repo,就像@ m2mdas建议的那样.
Composer在这里没有做任何特别的事情.它只是克隆symfony标准项目,然后安装它的依赖项.
Composer克隆了存储库,但它不需要.git文件夹.实际上我认为默认情况下不应该克隆项目.他们可能会在未来版本中修复它.
Composer使用composer.json文件,您应该使用这个文件管理所有依赖项.您可以安全地编辑它以添加或删除包.
然后,要更新包,只需运行:
php composer.phar update
Run Code Online (Sandbox Code Playgroud)
从composer.json中删除的所有包都将被删除,您添加的包将被安装.现有包将更新为最新版本.
您应该将生成的composer.lock文件存储在repo中,以确保在运行时始终获得相同版本的依赖项:
php composer.phar install
Run Code Online (Sandbox Code Playgroud)
第一次运行install时,每次更新命令时都会更新composer.lock.