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,dotenv,seo

我如何依子域名動態載入Laravel不同的dotenv檔

開始前先來抱怨一下,本來我的網站可以依使用者的瀏覽器自動顯示不同的語系的。這有何不可,但Google的SEO似乎不喜歡這麼搞,他建議每種語言使用不同的網址,不要用cookie或瀏覽器設定來調整網頁內容,好吧那我只能乖乖就範了。他的建議作法,第一種方案:依國家區分,像是example.tw或example.de這真的天方夜譚怎麼可能,要嘛收購被註冊的域名,要不然取個全球沒人會取的怪域名還比較有機會。第二種方案:用子域名區分,這正式我準備要做的,等等來說明在Laravel中怎麼弄。第三種方案:example.com/tw/ 之類的,Apple好像就這麼弄的。第四種方案:site.com?loc=tw之類,不建議使用,確實我也覺的這個不是一個好主意。

docker laravel

閒聊D-Laravel的console指令

D-Laravel的console指令讓我們快速的了解他執行了什麼。如果使用docker-compose是怎麼執行的呢? 我們來看看吧。

docker,dlaravel

D-Laravel 1.5.5變更說明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 並且所以我可以指定了fpm的預設的owner是dlaravel,   --with-fpm-user=USER    Set the user for php-fpm to run as. (default: nobody)   --with-fpm-group=GRP    Set the group for php-fpm to run as.