2

我正在使用尚未发布的 Laravel 5 进行实验性项目。似乎最近的提交有效地破坏了事情,但与其等待问题得到解决,我宁愿继续使用我知道的开发版本在监视提交日志的同时工作。我当前的composer.json文件如下所示(相关片段):

  "name": "laravel/laravel",   
  "description": "The Laravel Framework.",
  "keywords": ["framework", "laravel"],
  "license": "MIT",
  "type": "project",
  "require": {
    "laravel/framework": "~5.0",    
    "illuminate/html": "~5.0"
  },

我正在尝试这样做:

  "name": "laravel/laravel",   
  "description": "The Laravel Framework.",
  "keywords": ["framework", "laravel"],
  "license": "MIT",
  "type": "project",
  "require": {
    "laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",    
    "illuminate/html": "~5.0"
  },

根据文档Composer 支持绑定到特定 SHA 的能力,但是当我运行时composer update我收到消息:

[UnexpectedValueException]                                 

Could not parse version constraint ~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c: 
Invalid version string "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c"

当然,我尝试了各种变体(5.0#...,5#...等),但是都产生了相同的错误消息。输入赞赏!

4

4 回答 4

1

您必须改用分支别名。你应该使用5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c作为版本:

"name": "laravel/laravel",   
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
  "laravel/framework": "5.0-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",    
  "illuminate/html": "~5.0"
},
于 2014-09-30T18:31:13.407 回答
0

您可以尝试:

"laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",

代替:

"laravel/framework": "~5.0#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",

并使用以下方法安装它:

composer install --prefer-source

我的确切composer.json文件是:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",    
    "require": {
      "laravel/framework": "5.0.x-dev#cd37f40bba5dced6b1c30d313df2e46c5c33a62c",
      "illuminate/html": "~5.0"
    },
    "config": {
        "preferred-install": "dist"
    },
    "minimum-stability": "dev"
}

但是您需要注意,在安装过程中会显示以下消息:

Installing laravel/framework (dev-master cd37f40)
    Cloning cd37f40bba5dced6b1c30d313df2e46c5c33a62c
    cd37f40bba5dced6b1c30d313df2e46c5c33a62c is gone (history was rewritten?), recovered by checking out 5300b9eb19b5aeac8746835558419d274ee21621

所以看起来这个提交不可用,但我不是作曲家专家,所以我可能错了。

编辑

我已经尝试了许多其他设置,但每次要么失败,要么得到另一个提交,而不是你想要的那个。

于 2014-09-30T18:55:17.390 回答
0

这是类似的问题,其答案对我有所帮助:

作曲家 | laravel 5 - 更新依赖但框架本身

"require": {
"laravel/framework": "dev-master#49e3c77b518547bb661b1de4fda64a3ae0c5c505",
...
}
于 2014-10-16T11:20:16.717 回答
-1

叹了口气,答案像闪电一样击中了我。https://github.com/laravel/laravel/commits/develop显然是 laravel/laravel 提交,而不是laravel/framework 提交。

即使解决了我荒谬的疏忽,我仍然不清楚如何暂时锁定到特定版本的 laravel/laravel。有一些解决方法可以确定,但如果存在这样的解决方案,我正在寻找正确的方法。

抱歉,@Wouter 和 @Marcin 的轮子在旋转,感谢您的帮助。

于 2014-10-01T16:37:16.337 回答