Php 如果该composer.json中包含dev master,那么该composer.json是否正确
无论何时更新,我都会不断出错。。今天当我更新的时候,我发现了另一个关于sonata admin的错误 我唯一的问题是,将dev保存在composer.json中是一种很好的做法,因为我要安装的所有lib都在它们的文档中显示dev master。我知道这是非常基本的,但我对作曲家和交响乐团都是新手。。一点也不喜欢,哈哈哈Php 如果该composer.json中包含dev master,那么该composer.json是否正确,php,symfony,composer-php,sonata-admin,Php,Symfony,Composer Php,Sonata Admin,无论何时更新,我都会不断出错。。今天当我更新的时候,我发现了另一个关于sonata admin的错误 我唯一的问题是,将dev保存在composer.json中是一种很好的做法,因为我要安装的所有lib都在它们的文档中显示dev master。我知道这是非常基本的,但我对作曲家和交响乐团都是新手。。一点也不喜欢,哈哈哈 { "name": "symfony/framework-standard-edition", "license": "MIT", "type": "pr
{
"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"
}
}
}
如果您不积极开发其他软件,并且不知道那里发生了什么,那么应该避免使用命名分支,如
devmaster
原因如下:今天,该分支可能是组件2.x版本开发的尖端。您很高兴使用Composer进行更新,一切正常
现在,软件决定发布一个新的主要版本,他们开始进行向后不兼容的更改。现在,只要您不再更新(或只显式更新其他软件),使用dev master
的您自己的软件将指向2.x的旧提交,但从长远来看,情况会发生变化:
因为您添加的其他组件可能依赖于dev master
中的该软件,但它们意味着新的3.x开发,所以您的旧软件将满足该依赖性,而不是与之连接的代码(请记住:向后不兼容的更改也可能是向前不兼容的更改)。因此,即使不更新特定组件,事情也可能在某个时候开始崩溃
如果你盲目地更新整件事,如果发生这样的更新,你更可能遇到问题
在依赖项中使用版本号要容易得多。您可以声明需要任何版本的2.*
,这将阻止对任何3.x版本的更新,并允许Composer检测依赖于该3.x版本的第三个组件是否与仍然安装的旧2.x不兼容。它要么导致选择仍然依赖于2.x的旧版本,要么完全拒绝安装。这实际上是一件好事,因为它允许您手动更新并查看是否出现问题(您确实有测试,不是吗?)-然后您可以修复它们
如果您遇到您喜欢的软件,并且维护人员尚未标记版本,请友好地要求他们这样做。要么他们用标签来回应,要么你会想到去搜索另一个更适合你需要的库。否则的话,就要暗地里成为他们开发团队的一员,帮助调试他们的软件(这也可能是件好事——但要准备好花费额外的时间)。
应该避免开发大师
;您是否查看过packagist.org以了解它有哪些版本?例如,easy extends bundle
有一个您可以使用的版本2.1.6
。