摘要:引入了命名空間,這是規(guī)劃在中的功能,所以在一定程度上其實就是,的下一個版本是,即將發(fā)布,主要貢獻者是大名鼎鼎的鳥哥。使用修改為自動載入路由配置新增注意替換數(shù)據(jù)庫密碼修改無需改動。作者接受采訪時曾表示,是整個中最難實現(xiàn)的部分。
原文發(fā)表在我的個人網站:利用 Composer 一步一步構建自己的 PHP 框架(四)——使用 ORM
本教程示例代碼見 https://github.com/johnlui/My-First-Framework-based-on-Composer
經過前三篇文章 基礎準備、構建路由 和 設計 MVC,我們已經得到了一個結構比較完整的 MVC 架構的 PHP 微框架,但是距離一個真正能夠上手使用的框架還差一樣東西:數(shù)據(jù)庫封裝,本篇就將講述如何集成一個 ORM Composer 包。
本篇是本系列最后一篇,接下來我可能會以 讓我們開了又開的 Composer 包 為系列標題分享一些體驗和感悟,將主要發(fā)表在我的個人網站 歲寒 上。
我們選擇 Laravel 的 illuminate/database 作為我們的 ORM 包。我試用了幾個著名的 ORM,發(fā)現(xiàn)還是 Laravel 的 Eloquent 好用!讓我們開心的 ORM,開了又開! :-D
在本系列教程里,每一個 Composer 包都要滿足以下基本要求:
原生依賴 Composer 進行管理
在好用的基礎上盡量簡單(比如我們那個超簡單的路由包)
盡量新,用上 PHP 的新特性
說到 PHP 的新特性,有句題外話。PHP5.3 引入了命名空間,這是規(guī)劃在 PHP6 中的功能,所以 PHP5.3 在一定程度上其實就是 PHP6,PHP 的下一個版本是 PHP7,即將發(fā)布,主要貢獻者是大名鼎鼎的 鳥哥 @Laruence。另外本臺前方記者(就是我)剛剛從微博發(fā)來報道,鳥哥正在放大招,制造傳說中 PHP7 on JIT,我大 PHP 的歷史車輪是無法阻擋的哈哈哈!:-P
安裝 illuminate/database給 composer.json 增加一個 require 項:
"illuminate/database": "*"
運行 composer update,等待安裝完成。
使用 Eloquent修改 public/index.php 為:
addConnection(require "../config/database.php"); $capsule->bootEloquent(); // 路由配置 require "../config/routes.php";
新增 config/database.php(注意替換數(shù)據(jù)庫密碼):
"mysql", "host" => "localhost", "database" => "mffc", "username" => "root", "password" => "password", "charset" => "utf8", "collation" => "utf8_general_ci", "prefix" => "" ];
修改 models/Article.php:
controllers/HomeController.php 無需改動。
刷新,頁面依舊:
恭喜你!Eloquent 使用成功!
Eloquent 更多用法Eloquent 異常強大,可以說是 Laravel 中 最特別、最有價值 的部分。
像 HomeController 中調用的 Article::first(),之前用了十幾行代碼,現(xiàn)在什么都不用干,繼承一個類就行了。
Eloquent 更多用法參見:Eloquent ORM 中文文檔
其他著名 ORM還有很多著名的 ORM 和 Datamapping(數(shù)據(jù)庫遷移等) 包,參見: ORM and Datamapping
ORM 能夠大幅提高提高開發(fā)效率,Eloquent 真乃神器也!
雖然 web 屆各語言陣營都在不斷推出新的所謂 快速開發(fā)框架,終歸還是越來越像 Rails。Eloquent 在表面上幾乎是最像 Rails 的 ORM 的了,但是跟 Rails 不能比啊,Ruby 的超強面向對象特性可不是蓋的。Laravel 作者 Taylor Otwell 接受采訪時曾表示,Eloquent 是整個 Laravel 中最難實現(xiàn)的部分。我在調試的時候也發(fā)現(xiàn),MFFC/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php 這個文件有 3000 多行......
目前建造一個豐滿的可以上手使用的 PHP 框架的工作就算是基本完成了,接下來我會繼續(xù)完善 MFFC 框架,讓她更加豐富、好用!
以后可能會有 模板引擎、表單驗證、發(fā)送郵件、權限體系管理、異步隊列、視頻音頻處理(亂入:-D) 等內容,敬請關注還未出世的 讓我們開了又開的 Composer 包 系列文章。
謝謝大家的閱讀和陪伴!再見!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://www.ezyhdfw.cn/yun/20858.html
摘要:原文發(fā)表在我的個人網站利用一步一步構建自己的框架一基礎準備一統(tǒng)天下的時代已經到來白巖松一個時代結束了另一個時代開始了??蚣芸苫ビ眯孕〗M,簡稱,成立于年。 原文發(fā)表在我的個人網站 利用 Composer 一步一步構建自己的 PHP 框架(一)——基礎準備 『Composer 一統(tǒng)天下的時代已經到來!』 ——白巖松 一個時代結束了,另一個時代開始了。 Framework ...
摘要:所以接下來我們要做的事情就是讓框架更加規(guī)范,更加豐滿。正式開始規(guī)劃文件夾新建文件夾,在中創(chuàng)建三個文件夾,開始正式開始踏上的征程。調用視圖修改為將包含查詢結果的數(shù)組返回。下一步利用一步一步構建自己的框架四使用 終于可以 一次編寫,到處發(fā)布 了,淚流滿面! 今天凌晨我從一點多開始搞了四個小時到 5:20,終于搞出了個 Emlog 的 MarkDown 插件!歡迎 Emloger ...
摘要:我們先從目前用著最不爽的地方視圖裝載下手。實現(xiàn)裝載器完成基礎準備以后我們正式開始制造視圖裝載器。下一步利用完善自己的框架二發(fā)送郵件 原文發(fā)表在我的個人網站:利用 Composer 完善自己的 PHP 框架(一)——視圖裝載 本教程示例代碼見 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顧 經...
摘要:原文發(fā)表在我的個人網站利用一步一步構建自己的框架二構建路由本教程示例代碼見上一篇中我們已經建立了一個空的項目,本篇將講述如何構建路由。從使用框架是為了提高開發(fā)效率的角度來看,框架的本質就是路由。下一步利用一步一步構建自己的框架三設計 原文發(fā)表在我的個人網站 利用 Composer 一步一步構建自己的 PHP 框架(二)——構建路由 本教程示例代碼見 https://github.c...
摘要:原文發(fā)表在我的個人網站系列入門教程一最適合中國人的教程本教程示例代碼見大家在任何地方卡住,最快捷的解決方式就是去看我的示例代碼。在此我推薦一個全量中國鏡像。 原文發(fā)表在我的個人網站:Laravel 5 系列入門教程(一)【最適合中國人的 Laravel 教程】 本教程示例代碼見:https://github.com/johnlui/Learn-Laravel-5 大...
閱讀 3536·2021-09-02 09:53
閱讀 1877·2021-08-26 14:13
閱讀 2821·2019-08-30 15:44
閱讀 1402·2019-08-30 14:03
閱讀 2048·2019-08-26 13:42
閱讀 3076·2019-08-26 12:21
閱讀 1351·2019-08-26 11:54
閱讀 1956·2019-08-26 10:46