[爆卦]laravel會員系統是什麼?優點缺點精華區懶人包

為什麼這篇laravel會員系統鄉民發文收入到精華區:因為在laravel會員系統這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者wongwt (夏河)看板PHP標題[分享] Laravel 框架新手不專業介紹時間Sun De...



   最近腦海中持續在策畫一些小型的專案,因為算是自己的興趣之作,也多了一些
 彈性來參考一些新的框架。目前看起來, CI 在版上仍然多有討論, CI 也是我個人
 接觸到的第一個框架;的確,到目前為止的 CI 開發經驗都相當不錯。我特別喜歡的
 是 CI 讓我感覺在開發上仍然與一般 PHP 程式沒有太大的區別,但 MVC 的一些概念
 算是蠻巧妙的把程式邏輯和美工設計等部份區隔開來。這是我從之前把 PHP Code 全
 嵌入在 HTML 裡的時代一路走過來,感受得最深刻的地方。此外,我個人算是頗喜歡
 那種自己刻程式的感覺,對於許多框架利用強大的指令介面直接刻出一個後台這樣的
 模式我反而是比較覺得無所適從....


 CodeIgniter is Dead?

   總體來說, CI 的表現對我來說一直都算稱職。一些更厲害的版眾可能有其他的
看法,譬如說缺少 ORM Tool 或是 CI 是否是真正的 MVC Architecture 等的論述也
 一直沒斷過。但是,對於我一個只是憑興趣開發點小程式的業餘小菜鳥,這些其實也
 並沒有這麼深刻的感覺。只要是能解決問題、開發順手的就是個好框架。

   最近無意間看到了 Shawn McCool 所寫的一篇文章,標題就如黃字那樣,有興趣
 的版眾可以看一下。此外許多外國的文章也有類似的論述,看起來國外吹起一陣出走
 潮;對照起臺灣網站 CI 一遍火熱的現象感覺也是頗有趣。不過,重點是,所有文章
 似乎都指向了同一個對象-- Laravel


 So ... What is Laravel?

   就目前看來,版上似乎還沒有相關的討論,我也沒有實際使用開發一個專案過,
 但國外網站上一面倒的好評還是讓我感到很有興趣,當個引子,分享給版眾,希望能
 有一些討論。

   Laravel 是一個新的框架,在 2011 年六月的時候釋出第一個版本,至於到目前
 的版號則是來到了 3.2+ 。看得出來目前還在緊鑼密鼓的更新中,程式碼本身還不是
 非常的穩定,或許未來還會有一些調整,但速度已經稍微放慢了。可能很快就有最新
 版要出來,可以再觀查一下。


 What does Laravel Provide?

   Laravel 跟 CI 有許多頗為類似之處,下面我就目前看過的資料,統整幾個我認
 為比較特別的部份給版眾做個參考。

   框架文件
     作者自己的部落格提到, CI 成功很大一部份是因為那份精美的文件(雖然
   最新的功能文件似乎有點走下坡的感覺)。Laravel 也有一份這樣的文件,作者
   也有保證未來一定會在文件完善之後才釋出最新版本。目前的文件,我覺得算是
   提供了一些入門的參考,但實際開發上,可能還是會有一些問題,未來可能還是
   要新增多點範例比較好上手。

   Eloquent ORM
     框架本身就內建了 Eloquent 這個工具,從文件看起來,的確在開發上可以
   比 CI 少寫一些程式。有時候只需要一個空的模型定義,然後其他相關的函式就
   憑空產生了,感覺很神奇。我自己是沒用過類似的功能,覺得挺新鮮的。也算是
   補齊了 CI 被很多版眾棄嫌的一個空洞。

   Authentication
     框架內建一組會員驗證機制,從登入、登出、註冊到會員資料表一整套解決
   方案。如果需要簡單會員系統的開發者這相當有用, CI 也是缺少了一個這樣的
   解決方案,需要靠第三方程式模組來解決。只是這個機制我看起來感覺很死板,
   如果我要以這個機制做出發點,去加上群組或是權限表這類的設計,感覺上不是
   很容易可以辦到。

   Artisan
     Laravel 提供了一個命令列程式,我前面也提到我其實不是很喜歡這樣的東
   西,畢竟有時候太強大的工具反而讓自訂的空間被限縮了,而且要在開發環境下
   裝一些套件也不太是我的調調。 Artisan 是 PHP 寫的一支程式,用來安裝一些
   模組還有產生專案的金鑰。如果完全不使用其實也可以完全忽略它的存在,但若
   能使用的話也是提高了一些便利性,可以少做很多動作。它不能幫你生出什麼很
   強大的後台,或許有些人有些失望,但對我來說,還算是洽到好處。它最強大的
   功能我想應該是 Migration ;資料庫的 Schema 可以定義在一些 PHP 檔案裡,
   多人專案的時候如果有人改動了 Schema ,只要進行 Migrate 的動作,就可以
   讓 Schema 又是同步的,不會因為刪減欄位而讓原本的程式出錯。

   Bundles
     初次看文件的時候,發現大部份都是在講 MVC 、 Routing 還有 Database
   的存取這類的東西,在 CI 上大量的元件庫看起來是一個也沒有。原來 Laravel
   是採用一個模組化的概念,讓社群去開發對應的 Bundle 來增加功能。目前看來
   有許多 CRM 、 Email 、 Authentication 這類的模組;類似的功能有很多不同
   的模組可以用,同質性稍微高了一點,搜尋介面也還不是挺好。如果社群做大的
   話應該不錯,或許有機會提供一些官方模組,動態安裝到專案裡就不用下載超大
   的元件庫,增加彈性。只是目前 CI 的元件庫還是比較吸引我一些。

   Auto Loading
     之前寫 CI 的程式的時候常常需要 $this->load... 某個 View 、 Model,
   這個在 Laravel 裡似乎是不需要這個動作,全部都是 static member 的呼叫,
   也不需要去維護 autoloading 的檔案了。

   Restful Controller
     這功能跟 Routes 有一點關係,可以用 HTTP Verbs 來分隔程式邏輯,譬如
   表單的驗證可以把表單網頁的邏輯放在一個區塊,而 POST 回自己的邏輯部份則
   是放在另一個區塊,跟一般表單驗證用 if 區隔開來的做法有蠻大的不同。


 What are the Disadvantages?

   上頭針對我目前的理解做了一點簡單的說明。我覺得這些功能都是蠻好的,但是
 版眾或許也注意到了,我多少也提出了一些我自己認為的問題,並不是全然正面的。
 希望可以跟其他大家在網路上可以找到的一面倒稱讚有些區隔;如果真的是我誤解,
 也期待可以有一些不同的討論。接下來的部份,我就再提一些以我這個小菜鳥的角度
 真的覺得不是很方便的地方跟版眾做個分享。

   資料夾架構
     在官方文件中提到為了安全的考量,核心程式要放在網站根目錄外,至於要
   對外的部份則是放在一個 public 資料夾裡。這部份官方的設計是要去修改虛擬
   主機設定,指定一個 Virtual Host 並把 DocumentRoot 指到 public 資料夾。
   先不說一些租用主機可能不允許你做這件事,這樣一來,每個專案都需要一個子
   網域,譬如 aaa.host.com 或 bbb.host.com ,如果你剛好對網域管理又沒什麼
   權限的話,真得會搞死人,還不如 CI 感覺簡單的多。我想對大部份的人來說,
   能用 http://host.com/aaa/http://host.com/bbb/ 還是比較直覺簡單些。

   網址設定
     這部份感覺跟上一個問題也是很類似,假設我就是不要設 Virtual Host ,
   而是把 laravel 目錄解在 /var/www/ 裡會怎樣呢?假設你的網域是 host.com
   好了,打 http://host.com/laravel/ 會是文件不存在,因為你唯一可以對外的
   是 public 資料夾,所以網址是 http://host.com/laravel/public 。就是那個
   小小的 public 讓人心情不太美麗,網路上也有很多人在問怎麼消除 public 這
   段網址,解法不外乎是 rewrite 、 symlink 和移動資料夾。symlink 畢竟也是
   需要一些命令列權限,移動資料夾會破壞專案架構,都不是很漂亮的解法,偏偏
   rewrite 試了網路上寫的幾組 rule 沒一組成功的,令人沮喪。

   Routing
     Routing 應該是把雙面刃,在 CI 裡面不需要設定太多,反正放對資料夾你
   的程式就可以直接動了。但在 Laravel ,每個 Controllers 都得先註冊,不然
   不能動。另外也可以針對 POST 、 GET 等不同的動作設不同的 Routing ,功能
   實在是很強大。還有一些 filter 可以在 controller 執行前後做些動作,甚至
   一些很短的 controller 還建議直接寫在 route rule 裡。這邊實在是令人有點
   大開眼界,也呈現一種完全混亂的狀態。


 Finally ....

   我想這些差不多就是我與這個新框架短暫接觸過後的心得,目前我也還在持續尋
 找一些教學或是相關的文章,希望對它能夠有更深入及正確的認識。多少因為看到了
 國外一片叫好的聲浪,我覺得對這個新的框架也還是有點信心,但也不代表 CI 就是
 真的走到了盡頭;畢竟前面也講到了一些問題,我覺得以我一個小菜鳥的角度來看,
 對新加入的開發者來說其實並沒有真的這麼友善。期待未來可以看到版上有更多相關
 的討論,大家可以一起討論、學習。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.28.134
kusoayan:關於一開始的 CI is dead 可以看看這篇 12/30 17:16
kusoayan:http://goo.gl/dAe8W 12/30 17:16
kusoayan:看看 Phil 怎麼說XD 12/30 17:17
liaosankai:文件真的很重要。像kohana3因為文件不友善而默默無名XD 12/30 18:44
glaci:有一套 php mvc framework 感覺也很好用, 叫 yii, 推薦 12/30 19:04
taikobo:推熱心分享 12/31 19:20
PTTLSboy:推! 01/01 02:29
Bambe:推~! 01/01 03:00

你可能也想看看

搜尋相關網站