我正在进行我的第一个laravel项目,使用laravel 5.1.28,宅基地和postgres。
最近我在一段时间内第一次更新了composer.json(并且在一段时间内第一次更新了composer),现在沙盒中的一切看起来都不错,但我的构建在heroku中失败,出现以下错误:
生成优化的自动加载文件
php artisan clear-compiled PHP致命错误:未捕获ReflectionException:类日志不存在于/tmp/build_4b890192877bdbf1f605fbefdc7b2f34/dianekaplan-Family-laravel-e49374e/vendor/laravel/framework/src/Illuminate/Container/Container.php:741
我已经阅读了大约5个线程来解决这个错误,并尝试了各种解决方案来解决其他人导致此错误的不同问题,但它们似乎都不是我的。
这是一个不同的问题:我如何从作曲家的角度回到过去? composer.lock是否与git一起骑行,所以我理论上可以回到那一点,能够再次成功构建,然后有一天当我有一个伙伴和时间来完成余波时,再次进行作曲家更新? (我是一个新手,所以这样的问题很严重)
什么方法可以让我回到原来的状态?
根据我尝试的评论中的反馈: - 在构建仍然成功的时候替换我的composer.lock与版本(谢谢你,git!),然后进行作曲家安装(而不是更新,所以它会尊重那些旧的版本号) - 但之后构建仍然失败了同样的错误 - 作曲家转储,作曲家更新 - 无脚本和作曲家更新(按此顺序),但之后构建仍然失败,上面的错误相同
:(:(:(
这就是我的composer.json中的内容:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"doctrine/dbal": "^2.5",
"illuminate/html": "^5.0",
"laracasts/flash": "^1.3",
"cloudinary/cloudinary_php": "dev-master",
"jrm2k6/cloudder": "0.2.*",
"Illuminate/Support": "^5.1"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"laracasts/generators": "^1.1"
},
"autoload": {
"classmap": [
"database",
"app/mailers"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
答案 0 :(得分:0)
我已经使用您的composer.json在5.1应用上尝试了composer update
,并没有遇到任何问题 - 所以错误可能来自您应用中的某个地方的代码 - 看起来很可能是你的使用Log
外观来记录某些内容,例如。 Log::error('message')
,但您已将其写为log::error('message')
。找到后,您在更新时可能仍会遇到相同的错误,在这种情况下,在运行composer update
之前暂时从composer.json中删除以下内容:
"pre-update-cmd": [
"php artisan clear-compiled"
],
另外,在您的依赖项中还有其他一些问题:
illuminate/html
已弃用/弃用,请改为使用laravelcollective/html
替换。illuminate/support
是laravel/framework
的一部分,因此不需要,可以删除。