Php Laravel框架升级4.0-->;4.1

Php Laravel框架升级4.0-->;4.1,php,laravel-4,Php,Laravel 4,我决定在网站的数据库中使用变形关系,我需要至少Laravel4.1版本。(现在我有4.0.11) 但我自己无法做到这一点: 1) 首先,我遵循以下指示(官方文件) (对git的引用有一半是死的) 但是没有通过,因为它说Applicationi的u构造应该获得请求对象(而不是字符串) 2) 我在这里通过创建update命令找到了另一种方法 在键入“php artisan upgrade 4.1”(没有选项时,它会注意到4.0是我的最后一个版本)之后,更新似乎已经成功完成。然而,它指出了同样的问题:

我决定在网站的数据库中使用变形关系,我需要至少Laravel4.1版本。(现在我有4.0.11) 但我自己无法做到这一点: 1) 首先,我遵循以下指示(官方文件) (对git的引用有一半是死的) 但是没有通过,因为它说Applicationi的u构造应该获得请求对象(而不是字符串)

2) 我在这里通过创建update命令找到了另一种方法

在键入“php artisan upgrade 4.1”(没有选项时,它会注意到4.0是我的最后一个版本)之后,更新似乎已经成功完成。然而,它指出了同样的问题:

PHP Catchable fatal error:  Argument 1 passed to Illuminate\Foundation\Application::__construct() must be an instance of Illuminate\Http\Request, string given, called in /home/roman/cblog/bootstrap/app.php on line 14 and defined in /home/roman/cblog/vendor/laravel/framework/src/Illuminate/Foundation/Application.php on line 99
我确实认识到,由于在app.php中创建应用程序istance,引发了异常问题:

$app = new Illuminate\Foundation\Application(realpath(__DIR__.'/../'));
作为接收字符串而不是请求。如果我们在Application.php中看到:

public function __construct(Request $request = null)
    {
        $this['request'] = $this->createRequest($request);
        $this->registerBaseServiceProviders();
    }
这里的版本仍然很旧:

/**
     * The Laravel framework version.     
     * @var string
       */
    const VERSION = '4.0.11';

也许有人能给我一个提示,我在升级时错过了什么。或者我最好升级到新版本?

首先我尝试升级到L5。这似乎是连续的配置地狱。为此,我使用了两篇大文章:一篇是官方文章,另一篇来自博客。这两篇文章都是无用的:从控制器的名称空间开始,有太多的事情需要更改,去掉过滤器,更改路由器文件(隐式使用控制器类)最后是版本5的一些错误,这些错误应该通过谷歌搜索一个一个地修复。在我尝试更新到L5的过程中,我决定在不通过任何中间版本的情况下逐个更新版本。并使用composer安装了一个全新的laravel 4.1项目。唯一要做的事情是:-更改composer(将packeges添加到4.0 project composer中的“require”部分)。运行“编写器更新”;-根据前一个项目中的文件更改app.php、database.php文件;-从旧的4.0项目复制控制器、模型和视图文件夹;-从旧项目复制公用文件夹(保持相同的权限);-在我的特殊情况下,我必须复制app\includes文件夹,因为我有一些额外的php脚本(如果您在4.0项目中有特定的内容,您可能必须复制lang、tests、command文件夹)…就是这样。看起来比查看许多框架引擎的文件要简单得多。我相信该说明也适用于其他版本的更新。