by Devin Yang

建立於: 6年前 ( 更新: 6年前 )

我的後台一開始是自己打造的框架,一樣採用MVC架構,自己做的資料庫連線及環境設定檔等,
包含自己的樣版語法,直到我想讓自己的框架要去支援Restful時,有個想法,
別人都寫好了我何必自己去重寫同樣的功能,寫出來會比較好嗎?
所以開始改用框架,一開始採用Slim,主要因為他對於php的支援版本較低,
因為自己建立的class本身都有使用namespace,所以移植到Slim上沒什麼問題,
但嚐試了Slim的twig templates後,覺的沒有Laravel的blade template好用,
雖然當時我採用Slim的框架,不過我在Slim上選擇使用了Laravel的blade的樣版引擎:p,
那時我裝了philo/laravel-blade,寫了一陣子的slim覺的還是較喜愛Laravel的多樣的功能,
所以再進行一次Slim轉Laravel工作,這個過程極順利,不用再去修改已寫好的樣版了,
大概就是建Controller及路由,做一些拷貝貼上的工作,不到一天半,
就把我的slime框架再轉換到Laravel 5.3上了。

這次又想升級後台的Larave,主因是因為我太喜歡5.5上面新的路由功能了(在Laravel 5.5,好用的基本路由),
這對於我進行前台套版時,會方便很多,再說後台升級也不是第一次幹這種事了,對我來說沒什麼難度。
Laravel 5.3時我已做過一次升級Laravel 5.4,有點經驗,
所以今天再次進行升級,一樣30分鐘內輕鬆搞定,所以來談談我的方式。

當然還是建議去瞄一下Laravel官網的升級指引:
https://laravel.com/docs/5.5/upgrade

以下是個人經驗分享,僅供參考:

由於我的後台的程式碼及使用的Class本來就是自己獨立的Source Code了,所以升級起來超簡單,
覺的有點像是在新版的Laravel上裝了一個套件的feel。

以下是我的升級流程:
一、直接建一個新的Laravel 5.5的Project,初始化git版本控制,我想了解舊版貼到新版差異。
(這裡直接初始化一個新的Project是我不需要5.4之前git修改記錄,順便瘦身一下。)
二、修改compose.json,補上我後台使用的ow_source到app的資料夾,ow_source是我還未使用框架時殘存下來的一些Class,及一些後台需要用到的函式庫(laravel-debugbar&guzzle)。
composer.json
三、貼上我改過的.env檔,到Laravel 5.5的Project內。
四、我有獨立views叫ow的資料夾內含後台的layouts、forms、lists、views、partial全部拷貝到新的laravel下的resource/views內。
五、幾個相關檔案調整,app/Http/Kernel、自己一些獨立的Middleware、config/app.php及config/database.php及config/filesystems.php。
六、資料庫相關的檔案migration檔及seeds,我後台的基本資料表(兩個檔案)。
七、拷貝自己的package.json,resource/asset/內的js及css至新版本的Laravel,並進行安裝npm install。

不到半小時,就搞定了。然後測試,新增修刪,備份及還原,DebugBar、OAuth登入功能。
badkend

乾淨安裝,進行備份資料還原php artisan migrate:refresh及php artisan db:seed都沒問題:D。
這次更新,在進行OAuth驗證的地方,我有多補了一個login的名稱,因為登入時出錯,說找不到login這個名稱。
Route::get('/我的登入/auth','OAuthCallbackController@sso')->name('login');
restore

Tags: laravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


Laravel linux

我的行動電腦,安裝Laravel 8在Sony xperia 5 II上

這是我的第一隻Android手機,試裝Laravel完全沒問題耶,基本上我裝了vim及mariadb。 執行sshd後,可以透過8022登入哦,完全是一台行動電腦了:p。 我使用的軟體是Termux...

dlaravel

D-Laravel上的.env.example檔說明

本文說明關於D-Laravel上的.env設定 MYSQL_ROOT_PASSWORD=secret LARAVEL_INSTALLER='container' DOCKER_SERVICES='docker-compose.yml service/redis.yml'

laravel,oauth2

我最常用的Laravel passport指令

Laravel提供了相當多好用的Package,像Passport就是其中之一,當網站需要自架OAuth2驗證主機時,真的是省時省力。本站為例,因為採前後台分離機制(有兩個不同的Laravel專案),我都透過前台的WEB進行驗證。基本上,我還有很多其他不同的專案,也都靠Laravel提供的OAuth2就搞定跨域驗證。