每当更新我应该保持开发时我一直都会收到错误..今天因为我更新了我的sonata管理员又发现了另一个错误https://groups.google.com/forum/#!topic/sonata-users/4AGVPyBMTSI 我唯一的问题是保持dev在composer.json中的一个好习惯,因为我要安装的所有lib都在他们的文档中显示dev-master。我知道这是非常基本的,但我是作曲家和symfony2的新手...并且没有享受它有点哈哈哈
{
"name": "symfony/framework-standard-edition",
"license": "MIT",
"type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
"symfony/symfony": "~2.4",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "~1.2",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~2.3",
"sensio/framework-extra-bundle": "~3.0",
"sensio/generator-bundle": "~2.3",
"incenteev/composer-parameter-handler": "~2.0",
"friendsofsymfony/user-bundle": "1.3.*",
"sonata-project/core-bundle": "~2.2@dev",
"sonata-project/admin-bundle": "2.2.*@dev",
"sonata-project/block-bundle": "dev-master",
"sonata-project/cache": "1.*@dev",
"sonata-project/cache-bundle": "2.2.*@dev",
"sonata-project/jquery-bundle": "1.8.*@dev",
"sonata-project/easy-extends-bundle" : "dev-master",
"sonata-project/doctrine-orm-admin-bundle": "dev-master",
"sonata-project/user-bundle": "dev-master"
},
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"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": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"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"
},
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
"incenteev-parameters": {
"file": "app/config/parameters.yml"
},
"branch-alias": {
"dev-master": "2.4-dev"
}
}
}
答案 0 :(得分:0)
如果你没有积极开发其他软件并且知道那里发生了什么,你应该避免使用像dev-master
这样的命名分支。
原因如下:今天该分支可能是组件2.x版本开发的一小部分。您很高兴使用Composer进行更新,一切正常。
现在该软件决定将发布新的主要版本,并且他们开始进行向后兼容的更改。现在,只要您不再更新(或仅显式更新OTHER软件),使用dev-master
的自己的软件将指向旧的2.x提交,但从长远来看,事情将会中断:
因为您添加的其他组件可能依赖于dev-master
中的该软件,但它们意味着新的3.x开发,您的旧软件将满足该依赖关系,但不会满足与之相关的代码(请记住:向后兼容的更改也可能是前向不兼容的更改。因此,即使没有更新该特定组件,事情也可能在某些时候开始破坏。
如果你盲目地更新整个事情,如果发生这样的更新,你更有可能遇到问题。
使用依赖项中的版本号更容易。您可以声明要求任何版本2.*
,这将阻止更新到任何3.x版本,并且它允许Composer检测依赖于该3.x版本的第三个组件与旧版本2不兼容。 x仍然安装。它会导致选择仍然依赖于2.x的旧版本,或者拒绝完全安装它。这实际上是一件好事,因为它允许你手动更新并查看事情是否中断(你确实有测试,不是吗?) - 你可以修复它们。
如果您遇到自己喜欢的软件,并且维护人员还没有标记版本,请很好地问他们。要么他们用标签回复,要么你想要寻找更适合你需要的另一个图书馆。否则,期望隐含地成为他们开发团队的一员并帮助调试他们的软件(这也是一件好事 - 但要准备好花费额外的时间)。