我正在使用laravel 4.2
今天我不得不重新安装我的一个插件,现在我的所有项目都被销毁了
这是我的composer.json文件:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "4.2.*",
"barryvdh/laravel-debugbar": "~1.8",
"mews/captcha": "dev-master",
"prologue/alerts": "dev-master",
"yangqi/htmldom": "dev-master",
"scalia/sphinxsearch": "dev-master"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/libraries",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}
我想做的就是用其他东西改变mews / captcha插件。
在实施我的新验证码插件后,我尝试使用“作曲家更新”来更新作曲家项目。
然后我意识到序幕/警报不再支持laravel 4.2了,根据github和作曲家的错误。
Problem 1
- Conclusion: don't install laravel/framework 4.2.x-dev
- Conclusion: don't install laravel/framework v4.2.17
- Conclusion: don't install laravel/framework v4.2.16
- Conclusion: don't install laravel/framework v4.2.15
- Conclusion: don't install laravel/framework v4.2.14
- Conclusion: don't install laravel/framework v4.2.13
- Conclusion: don't install laravel/framework v4.2.12
- Conclusion: don't install laravel/framework v4.2.11
- Conclusion: don't install laravel/framework v4.2.10
- Conclusion: don't install laravel/framework v4.2.9
- Conclusion: don't install laravel/framework v4.2.8
- Conclusion: don't install laravel/framework v4.2.7
- Conclusion: don't install laravel/framework v4.2.6
- Conclusion: don't install laravel/framework v4.2.5
- Conclusion: don't install laravel/framework v4.2.4
- Conclusion: don't install laravel/framework v4.2.3
- Conclusion: don't install laravel/framework v4.2.2
- Installation request for prologue/alerts dev-master -> satisfiable by prologue/alerts[dev-master].
- Conclusion: don't install laravel/framework v4.2.1
- Conclusion: don't install laravel/framework v4.2.0
- prologue/alerts dev-master requires illuminate/session ~5 -> satisfiable by laravel/framework[5.0.x-dev], illuminate/session[5.0.x-dev, 5.1.x-dev, v5.0.0, v5.0.22, v5.0.25, v5.0.26, v5.0.28, v5.0.4].
- Can only install one of: laravel/framework[v4.2.0-BETA1, 5.0.x-dev].
- don't install illuminate/session 5.0.x-dev|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session 5.1.x-dev|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.0|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.22|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.25|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.26|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.28|don't install laravel/framework v4.2.0-BETA1
- don't install illuminate/session v5.0.4|don't install laravel/framework v4.2.0-BETA1
- Installation request for laravel/framework 4.2.* -> satisfiable by laravel/framework[4.2.x-dev, v4.2.0, v4.2.0-BETA1, v4.2.1, v4.2.10, v4.2.11, v4.2.12, v4.2.13, v4.2.14, v4.2.15, v4.2.16, v4.2.17, v4.2.2, v4.2.3, v4.2.4, v4.2.5, v4.2.6, v4.2.7, v4.2.8, v4.2.9].
我无法删除prologue / alerts插件。我想要的只是恢复我的项目,我有旧的提交/备份文件。但作曲家不允许我这样做。
另外,尝试从composer.json中移除序言/警报,以及app.php中的其他属性,但作曲家仍然无法帮助我。
错误是“类'Prologue \ Alerts \ AlertsServiceProvider'找不到“,这意味着作曲家试图安装较新版本的序幕/警报?
提前致谢。
答案 0 :(得分:3)
嗯,你可以查看prologuephp/alerts releases的列表。如果您查看composer.json
从 v0.3.0 到 0.4.0-beta.1 ,您会看到依赖项从以下变化:< / p>
"illuminate/config": "~4",
"illuminate/session": "~4",
"illuminate/support": "~4",
要:
"illuminate/config": "~5",
"illuminate/session": "~5",
"illuminate/support": "~5"
因此,如果您的项目使用的是Laravel 4,则只需使用正确的版本即可。在composer.json
,而不是"prologue/alerts": "dev-master",
使用 "prologue/alerts": "0.3.0"
。
答案 1 :(得分:2)
您的一般问题是您使用的是分支而不是版本。分支机构有两个主要问题:
@milz的答案指向了正确的方向,但您应该全力以赴:对于您使用的每个包,请将每个引用替换为具有发行版本或版本范围的分支。
mews/captcha - 发布的版本1.0.1,2.0.0和2.0.1 - 只有1.0.1与Laravel 4兼容。您可能希望使用1.0.*
来修复错误,即使它们不太可能发生。
prologue/alerts - 发布版本0.1.0,0.1.1,0.2.0,0.3.0和0.4.0。版本0.1和0.2要求Laravel 4.0,0.3.0允许任何4.x和0.4.0跳转到任何Laravel 5.0版本。选择0.3.*
。
yangqi/htmldom - 没有发布的版本。尽管很难:只要维护者没有标记发布版本,就应该避免使用这个包。它也没有正确地说明它的依赖性 - 它依赖于Laravel服务提供者。要求维护人员标记版本,或切换到其他包。这个包可能会重复你现在经历的痛苦。
scalia/sphinxsearch - 版本0.1,0.1.1和0.2都与Laravel 4兼容 - 选择0.2.*
。
请注意,对于所有版本,您可能还会考虑不仅接受错误修正,还考虑兼容更新。这会将版本要求从x.y.*
更改为~x.y
。我推荐这个。
另请注意,根据您使用的主分支版本,通过切换到标记版本,您可能会返回某些提交。这可能会恢复已提交给master的错误修复,但从未标记为发布。如果您发现正在使用的软件包有未发布的错误修正,您还应该要求维护人员发布这些错误修复程序。
根据他们的反应速度和请求的解决程度,您可能会决定继续使用该程序包,或切换到其他程序。
答案 2 :(得分:0)
这是我到目前为止所做的事情:
这可能不是一个很好的解决方案,但我设法在没有不受支持的插件的情况下恢复我的项目。