我正在尝试运行composer来安装Laravel 5.0.14,并且还尝试使用Jenkins php-template在Jenkins中测试此代码。
每当我运行时composer update
,都会出现以下错误:
错误输出:PHP致命错误:调用 第16行上/var/lib/jenkins/jobs/Demo/workspace/bootstrap/start.php中未定义的方法 Illuminate \ Foundation \ Application :: redirectIfTrailingSlash()
如果我删除了start.php中有问题的行,则在尝试运行时出现以下错误composer update
:
错误输出:PHP可捕获的致命错误: 传递给Illuminate \ Foundation \ Application :: detectEnvironment()的参数1 必须是Closure,array diven的实例,在 / var / lib / jenkins / jobs / Demo / workspace / bootstrap / start中调用第32行的.php 并 在第402行的 / var / lib / jenkins / jobs / Demo / workspace / vendor / laravel / framework / src / Illuminate /Foundation/Application.php中定义
这是我的composer.json文件:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "5.0.14",
"phpunit/phpunit": "4.7.*@dev",
"theseer/fxsl": "1.0.*@dev",
"theseer/phpdox": "0.6.6",
"squizlabs/php_codesniffer": "1.4.6",
"phpmd/phpmd": "2.0.0",
"h4cc/phpqatools": "dev-master",
"phploc/phploc": "2.0.2",
"sebastian/phpcpd": "2.0.1",
"monolog/monolog": "1.13.0",
"patchwork/utf8": "1.2.1",
"phpdocumentor/phpdocumentor": "v2.0.1",
"mayflower/php-codebrowser": "1.1.0-beta1",
"pear/console_commandline": "dev-trunk",
"pear/log": "dev-master",
"pear/pear_exception": "1.0.0",
"phing/phing": "2.6.1"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan optimize"
],
"pre-update-cmd": [
"php artisan clear-compiled"
],
"post-update-cmd": [
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev"
}
我可以跑步composer update --no-scripts
。
我已经使用搜索了composer.php文件sudo find . -print | grep -i 'compiled.php'
。我唯一的一个是
./vendor/symfony/dependency-injection/Tests/Fixtures/php/services9_compiled.php这与其他人建议为遇到此问题的其他人删除的那个不与Compiled.php文件相对应的文件。
我认为您正在使用Laravel 4 composer.json。从Laravel 4到Laravel 5的一大变化是名称空间的使用。另外,还修改了许多路径,因此无法仅在现有的Laravel 4上安装Laravel 5。最好安装新的Laravel 5并遵循此指南:http ://laravel.com/docs/master/upgrade#upgrade-5.0
供参考,这里是我的composer.json(注意autoload部分中的psr-4)
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "5.0.*",
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"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 -r \"copy('.env.example', '.env');\"",
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句