Php Laravel 5.1到5.2升级错误
当我试图使用官方指南将我们现有的项目从Laravel5.1更新到Laravel5.2时,我在composer更新后得到了一个错误 php artisan clear已编译 他跑了。这里是错误 类\Foundation\Composer不存在 有没有人有过类似的问题?当我在并没有脚本标志的情况下运行composer update时,它会定期更新,所以在clear compiled上会出现问题 下面是我的服务提供商和composer.json文件 服务提供者Php Laravel 5.1到5.2升级错误,php,laravel,composer-php,laravel-5.1,laravel-5.2,Php,Laravel,Composer Php,Laravel 5.1,Laravel 5.2,当我试图使用官方指南将我们现有的项目从Laravel5.1更新到Laravel5.2时,我在composer更新后得到了一个错误 php artisan clear已编译 他跑了。这里是错误 类\Foundation\Composer不存在 有没有人有过类似的问题?当我在并没有脚本标志的情况下运行composer update时,它会定期更新,所以在clear compiled上会出现问题 下面是我的服务提供商和composer.json文件 服务提供者 Illuminate\Auth\
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
// Illuminate\Redis\RedisServiceProvider::class,
Vetruvet\PhpRedis\PhpRedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Torann\GeoIP\GeoIPServiceProvider::class,
Jenssegers\Agent\AgentServiceProvider::class,
Barryvdh\Debugbar\ServiceProvider::class,
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"fzaninotto/faker": "^1.6@dev",
"laravelcollective/html": "5.2.*",
"laravelcollective/remote": "~5.2",
"kriswallsmith/assetic": "^1.3@dev",
"pda/pheanstalk": "^3.0@dev",
"aws/aws-sdk-php-laravel": "~3.0",
"illuminate/http": "~5.2",
"illuminate/session": "~5.2",
"illuminate/support": "~5.2",
"nesbot/carbon": "~1.18",
"guzzlehttp/guzzle": "~5.3|~6.0",
"vetruvet/laravel-phpredis": "dev-master",
"predis/predis": "^1.1@dev",
"laravel/socialite": "^3.0@dev",
"intervention/image": "^2.3@dev",
"brightcove/api": "^1.0@dev",
"torann/geoip": "dev-master",
"graham-campbell/throttle": "~5.1",
"jenssegers/agent": "^3.0@dev"
},
"require-dev": {
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0",
"barryvdh/laravel-debugbar": "^2.0@dev",
"laracasts/generators": "dev-master"
},
"repositories": [
{
"type": "git",
"url": "https://github.com/nardev/laravel-vzaar.git"
}
],
"autoload": {
"classmap": [
"database",
"app/Models",
"app/Footgoll"
],
"files": [
"app/helpers.php"
],
"psr-4": {
"Myapp\\": "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-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev",
"prefer-stable": true
}
当我跑的时候
grep-nH-d递归'Composer'引导/app/config/
这是返回的内容:
bootstrap/autoload.php:7:|注册Composer自动加载程序
bootstrap/autoload.php:10:| Composer提供了一个方便的、自动生成的类加载器
bootstrap/autoload.php:42:|在本地工作时。但是,我们需要加载作曲家
以下是autoload.php文件的外观:
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Composer Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/../vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Include The Compiled Class File
|--------------------------------------------------------------------------
|
| To dramatically increase your application's performance, you may use a
| compiled class file which contains all of the classes commonly used
| by a request. The Artisan "optimize" is used to create this file.
|
*/
$compiledPath = __DIR__.'/cache/compiled.php';
if (file_exists($compiledPath)) {
require $compiledPath;
}
/*
|--------------------------------------------------------------------------
| Register The Workbench Loaders
|--------------------------------------------------------------------------
|
| The Laravel workbench provides a convenient place to develop packages
| when working locally. However we will need to load in the Composer
| auto-load files for the packages so that these can be used here.
|
*/
if (is_dir($workbench = __DIR__.'/../workbench'))
{
Xtwoend\Workbench\Starter::start($workbench);
}
试试看
如果错误仍然存在,请删除vendor/compiled.php,然后运行上面的命令
这将重新创建vendor/compiled.php类
上面的命令删除两个文件
bootstrap/compiled.php文件。此文件是在您创建时创建的
优化类。app/storage/meta/services.json文件。这个文件
是在Laravel尝试优化服务加载时创建的
应用程序使用的提供者
当我运行clear compiled时,它删除了我项目中的vendor/compiled.php
因为您根本没有编译过的类,所以不能删除它。这一定是你遇到问题的原因。不要费心清理编译过的类
我还将一个巨大的应用程序从4.2升级到5.0。问题……) 此处正在识别和讨论该缺陷:
可能是社交服务提供者,也可能是其他人
我昨晚升级时遇到了这个问题,很多服务提供商也必须将代码升级到5.2
AdamWathan\EloquentOAuthL5\安装似乎直接使用Composer类,删除此服务提供商,您可以继续升级。Welp,我刚刚用5.2制作了一个新的laravel应用程序,并再次添加了所有代码和依赖项,现在似乎正常工作。您遇到的错误与您使用的软件包有关。由于Composer类的位置已更改,因此无法找到它
从升级说明中:
illumb\Foundation\Support\Composer
类已移动到
照明\Support\Composer
等待拉取请求被接受,例如laracasts/generators
包(包含在composer.json
文件中)是与Laravel 5.2不兼容的包之一
因此,发生此错误的最常用软件包之一是cviebrock/elountit slaggable
您只能等待拉取请求被接受,或者编辑供应商文件,这不是一个很酷的选择。尝试以下方法:
composer更新--无脚本
它让我看到了composer更新失败原因的详细解释。对我来说,我当时正在更新到Laravel5.2,但忘了同时更新“laravelcollective/html”:“5.1.*”
到“laravelcollective/html”:“5.2.*”
在这里找到我遇到了同样的问题,也在寻找解决方案。不,自动加载不相关。这些只是评论。grep说没有对Composer
类的引用。老实说,我认为删除compiled.php
文件修复了它,您可能只需要再次运行composer就可以了。您可以。只要尝试运行它。我的artisan命令实际上不可用,当我运行php artisan时,同样的错误会不断出现。@Deveram请再次检查我的答案。我的供应商目录中根本没有compiled.php。下面的链接似乎解决了类似的问题。我宁愿去看看。FWIW,从3.1.4版本开始,我的Sluggable包现在应该是5.2友好的。
php artisan optimize --force