<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # # 升級說明 ## 從 5.6 升級到 5.7 #### 預計升級時間:10-15分鐘 >[success] 注:我們試圖記錄每一個可能發生的變化。因為大部分破壞性的變化在框架的內部,這些更改僅有一部分的更改可能影響你的應用。 ### 更新依賴 在`composer.json`文件中更新`laravel/framework`依賴到`5.7.*`。 當然,不要忘記檢查應用所使用的第三方擴展包是否支持 Laravel 5.7。 ### 應用 #### `register`方法 **影響的可能性:非常低** `Illuminate\Foundation\Application`類`register`方法中,未使用的參數`options`已經被移出,如果你重寫了這個方法,需要更新方法的簽名: ~~~php /** * 使用應用程序注冊服務提供者。 * * @param \Illuminate\Support\ServiceProvider|string $provider * @param bool $force * @return \Illuminate\Support\ServiceProvider */ public function register($provider, $force = false); ~~~ ### Artisan #### 調度任務鏈接 & 隊列 **影響的可能性:低** >[warning]在作業類中,如果一個連接 / 任務沒有明確地傳遞給`job`方法的話,`$schedule->job`方法現在將識別任務類上設置`queue`和`connection`屬性。 一般來說,這應該被認為是一個 bug 修復,然而,它被列為一個破壞性的改變。「[如果你遇到任何關于這個變化的問題,請告訴我們](https://github.com/laravel/framework/pull/25216)」。 ### 認證 #### `Authenticate`中間件 **影響的可能性:低** >[warning]`Illuminate\Auth\Middleware\Authenticate`中間件的`authenticate`方法會被更新為將`$request`作為第一個參數,如果你在自己的`Authenticate`中間件中重寫了這個方法,需要更新中間件方法的簽名: ~~~php /** * 確認用戶是否登錄到任何給定的警衛。 * * @param \Illuminate\Http\Request $request * @param array $guards * @return void * * @throws \Illuminate\Auth\AuthenticationException */ protected function authenticate($request, array $guards) ~~~ #### `ResetsPasswords`Trait **影響的可能性:低** >[warning]`ResetsPasswords`trait 中受保護的方法`sendResetResponse`現在接收`Illuminate\Http\Request`作為第一個參數。如果你覆蓋了這個方法,你需要修改方法的簽名: ~~~php /** * 獲取重置密碼成功的響應。 * * @param \Illuminate\Http\Request $request * @param string $response * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ protected function sendResetResponse(Request $request, $response) ~~~ #### `SendsPasswordResetEmails`Trait **影響的可能性:低** >[warning]`SendsPasswordResetEmails`trait 中受保護的方法`sendResetLinkResponse`現在接收`Illuminate\Http\Request`作為第一個參數。如果你覆蓋了這個方法,你需要修改方法的簽名: ~~~php /** * 獲取重置密碼成功鏈接的響應。 * * @param \Illuminate\Http\Request $request * @param string $response * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ protected function sendResetLinkResponse(Request $request, $response) ~~~ ### 授權 #### The`Gate`契約 **影響的可能性:非常低** >[warning]`raw`方法的可見性從`protected`變成`public`。此外,[它也被添加到了`Illuminate/Contracts/Auth/Access/Gate`契約中](https://github.com/laravel/framework/pull/25143): ~~~php /** * 獲取授權回調的結果。 * * @param string $ability * @param array|mixed $arguments * @return mixed */ public function raw($ability, $arguments = []); ~~~ 如果你要實現這個接口,你需要把這個方法添加到實現中。 ### Blade #### The`or`操作符 **影響的可能性:高** >[warning]Blade 的「or」操作符被移除了,可以使用 PHP 內置的`??`操作符替代: ~~~php // Laravel 5.6... {{ $foo or 'default' }} // Laravel 5.7... {{ $foo ?? 'default' }} ~~~ ### Carbon **影響的可能性:非常低** >[warning]Carbon「macros」不再由 Laravel 的擴展庫處理,而是直接通過 Carbon 庫處理。我們希望這些變化沒有對你的代碼造成影響,但是如果有問題的話你可以[聯系我們](https://github.com/laravel/framework/pull/23938)。 ### Collections #### `split`函數 **影響可能性: 低** >[warning]`split`函數[已經更新為一直返回請求數量分塊的個數](https://github.com/laravel/framework/pull/24088),除非原始集合的總數小于請求分塊的個數.。準確來說, 這是一個之前bug的修復; 但是,這是一個謹慎的改變。 ### Cookie #### `Factory`契約方法的參數 **影響可能性: 非常低** >[warning]`Illuminate/Contracts/Cookie/Factory`接口的`make`和`forever`方法的參數默認值[有變動](https://github.com/laravel/framework/pull/23200). 如果你實現了這個接口的話,你應該更新你的實現方法。 ### 數據庫 #### `softDeletesTz`遷移方法 **影響可能性: 低** >[warning]表結構生成器的`softDeletesTz`方法現在接收列名作為第一個參數,而`$precision`字段已經移動到了第二個參數的位置: ~~~php /** * 在表中添加一個 "deleted at" 的時間戳. * * @param string $column * @param int $precision * @return \Illuminate\Support\Fluent */ public function softDeletesTz($column = 'deleted_at', $precision = 0) ~~~ #### `ConnectionInterface`契約 **影響可能性: 非常低** >[warning]`Illuminate\Contracts\Database\ConnectionInterface`契約的`select`和`selectOne`函數參數更新為提供新的`$useReadPdo`參數: ~~~php /** * 執行select語句并返回一條結果. * * @param string $query * @param array $bindings * @param bool $useReadPdo * @return mixed */ public function selectOne($query, $bindings = [], $useReadPdo = true); /** * 在數據庫執行select語句. * * @param string $query * @param array $bindings * @param bool $useReadPdo * @return array */ public function select($query, $bindings = [], $useReadPdo = true); ~~~ 同時, 將`cursor`方法添加到當前契約中: ~~~php /** * 通過數據庫執行select語句并返回一個生成器. * * @param string $query * @param array $bindings * @param bool $useReadPdo * @return \Generator */ public function cursor($query, $bindings = [], $useReadPdo = true); ~~~ 如果你實現了此接口的話,請將此方法添加到您的實現中。 #### SQL Server驅動優先級 **影響可能性: 低** >[warning]在 Laravel 5.7之前,`PDO_DBLIB`驅動是默認的SQL Server PDO 驅動。 這個驅動是被微軟反對的. 在Laravel 5.7中,如果`PDO_SQLSRV`驅動可用的話,`PDO_SQLSRV`將作為默認的驅動. 或者你可以選擇使用`PDO_ODBC`驅動: ~~~php 'sqlsrv' => [ // ... 'odbc' => true, 'odbc_datasource_name' => 'your-odbc-dsn', ], ~~~ 如果這些驅動都不可用, Laravel 將使用`PDO_DBLIB`驅動。 ### Debug #### Dumper 類 **影響可能性: 非常低** >[warning]為了支持Symfony原生的方法dumpers:`Symfony\Component\VarDumper\VarDumper`和`Symfony\Component\VarDumper\Dumper\HtmlDumper`, `Illuminate\Support\Debug\Dumper`和`Illuminate\Support\Debug\HtmlDumper`方法已被移除。 ### Eloquent #### `latest`/`oldest`方法 **影響可能性: 低** >[warning]Eloquent查詢構造器的`latest`和`oldest`方法更新,現在允許通過自定義的"創建時間"的數據庫字段對查詢的模型鏡像排序。 準確來說, 這是一個之前bug的修復; 但是,這是一個謹慎的改變。 #### `wasChanged`方法 **影響可能性: 非常低** >[warning]Eloquent更改`wasChanged`方法將在`updated`模型事件**之前**調用,這一改變現在可用了。準確來說, 這是一個之前bug的修復; 但是,這是一個謹慎的改變。[如果你對此更新有任何疑問,請聯系我們](https://github.com/laravel/framework/pull/25026)。 #### PostgreSQL 特殊浮點值 **影響的可能性:低** >[warning]PostgreSQL 支持`Infinity`,`-Infinity`和`NaN`浮點值,在Laravel 5.7 之前的版本,當 Eloquent 模型實例中要轉換數據類型的列為`float`、`double`或`real`時,會被轉換成`0`。 而在Laravel 5.7中,這些值會被轉換成相應的 PHP 常量`INF`、`-INF`和`NAN`。 ### Email 認證 **影響的可能性:可選** >[warning]如果你選擇使用 Laravel 的[Email 認證服務](https://laravel-china.org/docs/laravel/5.7/verification),需要向你的應用中增加一些手腳架。 >[]首先,增加`VerificationController`到你的應用:[App\\Http\\Controllers\\Auth\\VerificationController](https://github.com/laravel/laravel/blob/develop/app/Http/Controllers/Auth/VerificationController.php)。 其次,增加認證視圖文件,文件位置在`resources/views/auth/verify.blade.php`,視圖內容可以從[GitHub](https://github.com/laravel/framework/blob/5.7/src/Illuminate/Auth/Console/stubs/make/views/auth/verify.stub)中獲取。 最后,在調用`Auth::routes`方法時傳遞`verify`選項: ~~~php Auth::routes(['verify' => true]); ~~~ ### 文件系統 #### `Filesystem`契約方法 **影響的可能性:低** >[warning][`Illuminate\Contracts\Filesystem\Filesystem`](https://github.com/laravel/framework/pull/23755)契約中增加了`readStream`和`writeStream`方法,如果你正在實現這個接口,請增加這些方法。 ### Mail #### 郵件動態傳參轉換 **影響的可能性:中** >[warning]向郵件視圖中動態傳遞的變量[現在會自動轉換為"駝峰命名"](https://github.com/laravel/framework/pull/24232),這使郵件動態變量行為和動態視圖變量保持一致。因為動態郵件變量非 Laravel 文檔特性,所以對你的應用產生影響的可能性很小。 ### 路由 #### `Route::redirect`方法 **影響的可能性:高** >[warning]`Route::redirect`方法現在返回 HTTP 狀態碼為`302`的重定向,新增`permanentRedirect`方法實現`301`重定向。 ~~~php // 返回302重定向... Route::redirect('/foo', '/bar'); // 返回301重定向... Route::redirect('/foo', '/bar', 301); // 返回301重定向... Route::permanentRedirect('/foo', '/bar'); ~~~ #### `addRoute`方法 **影響的可能性:低** >[warning]`Illuminate\Routing\Router`類的`addRoute`方法的可見性從`protected`改為`public`。 ### 表單驗證 #### 嵌套驗證數據 **影響的可能性:中** >[warning]在以前版本的 Laravel 中,`validate`方法對嵌套驗證規則返回的結果不正確,在 Laravel 5.7中已修復: ~~~php $data = Validator::make([ 'person' => [ 'name' => 'Taylor', 'job' => 'Developer' ] ], ['person.name' => 'required'])->validate(); dump($data); // 舊的結果... ['person' => ['name' => 'Taylor', 'job' => 'Developer']] // 新的結果... ['person' => ['name' => 'Taylor']] ~~~ #### `Validator`Contract **影響的可能性:非常低** >[warning][`Illuminate/Contracts/Validation/Validator`契約新增](https://github.com/laravel/framework/pull/25128)`validate`方法: ~~~php /** * 根據數據運行表單驗證規則。 * * @return array */ public function validate(); ~~~ 如果你正實現這個接口,請新增此方法。 >[danger] 建議參考 `laravel/laravel`[GitHub 倉庫](https://github.com/laravel/laravel)中的修改記錄
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看