by Devin Yang

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

我的後台一開始是自己打造的框架,一樣採用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

在laravel中自訂自己的helper

在Laravel的框架中,包含了相當大量的PHP功能(php functions),稱為helper。 https://laravel.com/docs/5.6/helpers 那我們要如何在Laravel中自訂自己的helper呢,其實相當簡單呢.. 在composer.json中autoload內的files新增即可。

laravel-storage,sftp

用Laravel的Storage SFTP Drvier進行遠端檔案上傳

為何我把網站的搞前後台分離,我的想法很簡單,就是靠一套後台管控所有前台的網站資料。假設前台的網站為單純的行銷網站,那不外乎主題內容,就是上上文章那種,沒有什麼特別複雜的邏輯。所以後台的資料庫設記好連不同的前台就好了,那還剩最後一個問題,我的後台HTML編輯器如何貼圖直接貼文到前台呢?Laravel的Storage SFT Driver就是很好的解藥。

Laravel,artisan

關於Laravel的artisan中的--env的操作

本文採用Lravel 9.40.1進行操作我相信很多人都知道了--env的用法,但我還是提供一下資訊給Laravel的初學者。在artisan的指令中,我們能透過--env來指定使用不同的.env檔,這樣在不同的子域名下,我就能用不同的環境甚至是不同的資料庫。大家應該也有注意到,本站採用的是多語的環境,寫兩套嗎?當然沒有,基本上我建了多個.env在同一個Project中。