《PHP編程:用 Composer構建自己的 PHP 框架之使用 ORM》要點:
本文介紹了PHP編程:用 Composer構建自己的 PHP 框架之使用 ORM,希望對您有用。如果有疑問,可以聯系我們。
PHP教程回顧
PHP教程經過前三篇文章 基礎準備 、 構建路由 和 設計 MVC ,我們已經得到了一個結構比擬完整的 MVC 架構的 PHP 微框架,但是距離一個真正能夠上手使用的框架還差一樣東西: 數據庫封裝 ,本篇就將講述如何集成一個 ORM Composer 包 .
PHP教程本篇是本系列最后一篇,接下來我可能會以 讓我們開了又開的 Composer 包 為系列標題分享一些體驗和感悟,將主要頒發在本站上.
PHP教程正文
PHP教程我們選擇 Laravel 的 illuminate/database 作為我們的 ORM 包.我試用了幾個著名的 ORM,發現還是 Laravel 的 Eloquent 好用!讓我們開心的 ORM,開了又開! :-D
PHP教程在本系列教程里,每一個 Composer 包都要滿足以下基本要求:
PHP教程原生依賴 Composer 進行管理
在好用的基礎上盡量簡單(好比我們那個超簡單的路由包)
盡量新,用上 PHP 的新特性
PHP教程
說到 PHP 的新特性,有句題外話. PHP5.3 引入了命名空間,這是規劃在 PHP6 中的功能,所以 PHP5.3 在必定程度上其實就是 PHP6 ,PHP 的下一個版本是 PHP7 ,即將發布,主要貢獻者是大名鼎鼎的 鳥哥 @Laruence .另外本臺前方記者(就是我)剛剛從微博發來報道,鳥哥正在放大招,制造傳說中 PHP7 on JIT ,我大 PHP 的歷史車輪是無法阻擋的哈哈哈!:-P
PHP教程安裝 illuminate/database
PHP教程給 composer.json 增加一個 require 項:
PHP教程"illuminate/database": "*"
運行 composer update ,等待安裝完成.
PHP教程使用 Eloquent
PHP教程修改 public/index.php 為:
PHP教程use Illuminate\Database\Capsule\Manager as Capsule;
PHP教程// Autoload 自動載入
PHP教程require '../vendor/autoload.php';
PHP教程// Eloquent ORM
PHP教程$capsule = new Capsule;
PHP教程$capsule->addConnection(require '../config/database.php');
PHP教程$capsule->bootEloquent();
PHP教程// 路由配置
PHP教程require '../config/routes.php';
PHP教程新增 config/database.php (注意替換數據庫暗碼):
PHP教程return [
PHP教程? 'driver'??? => 'mysql',
PHP教程? 'host'????? => 'localhost',
PHP教程? 'database'? => 'mffc',
PHP教程? 'username'? => 'root',
PHP教程? 'password'? => 'password',
PHP教程? 'charset'?? => 'utf8',
PHP教程? 'collation' => 'utf8_general_ci',
PHP教程? 'prefix'??? => ''
PHP教程? ];
PHP教程修改 models/Article.php :
PHP教程/**
PHP教程* Article Model
PHP教程*/
PHP教程class Article extends Illuminate\Database\Eloquent\Model
PHP教程{
PHP教程? public $timestamps = false;
PHP教程}
PHP教程controllers/HomeController.php 無需改動.
PHP教程刷新,頁面依舊:
PHP教程
PHP教程恭喜你!Eloquent 使用勝利!
PHP教程Eloquent 更多用法
PHP教程Eloquent 異常強大 ,可以說是 Laravel 中 最特別 、 最有價值 的部分.
像 HomeController 中調用的 Article::first() ,之前用了十幾行代碼,現在什么都不消干,繼承一個類就行了.
PHP教程Eloquent 更多用法參見:Eloquent ORM 中文文檔
PHP教程其他著名 ORM
PHP教程還有很多著名的 ORM 和 Datamapping(數據庫遷移等) 包,參見: ORM and Datamapping
PHP教程ORM 能夠大幅提高提高開發效率,Eloquent 真乃神器也!
雖然 web 屆各語言陣營都在不斷推出新的所謂 快速開發框架 ,終歸還是越來越像 Rails .Eloquent 在外面上幾乎是最像 Rails 的 ORM 的了,但是跟 Rails 不能比啊,Ruby 的超強面向對象特性可不是蓋的.Laravel 作者 Taylor Otwell 接受采訪時曾表示,Eloquent 是整個 Laravel 中最難實現的部分.我在調試的時候也發現, MFFC/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php 這個文件有 3000 多行......
PHP教程目前建造一個飽滿的可以上手使用的 PHP 框架的工作就算是基本完成了,接下來我會繼續完善 MFFC 框架,讓她更加豐富、好用!
PHP教程以后可能會有 模板引擎、表單驗證、發送郵件、權限體系管理、異隊伍列、視頻音頻處理(亂入:-D) 等內容,敬請關注還未出世的 讓我們開了又開的 Composer 包 系列文章.
PHP教程謝謝年夜家的閱讀和陪伴!再見!
歡迎參與《PHP編程:用 Composer構建自己的 PHP 框架之使用 ORM》討論,分享您的想法,維易PHP學院為您提供專業教程。