用 Composer构建自己的 PHP 框架之使用 ORM_php实例
回顾 经过前三篇文章 基础准备 、 构建路由 和 设计 MVC ,我们已经得到了一个结构比较完整的 MVC 架构的 PHP 微框架,但是距离一个真正能够上手使用的框架还差一样东西: 数据库封装 ,本篇就将讲述如何集成一个 ORM Composer 包 。 本篇是本系列最后一篇,接下来我可能会以 让我们开了又开的 Composer 包 为系列标题分享一些体验和感悟,将主要发表在本站上。 正文 我们选择 Laravel 的 illuminate/database 作为我们的 ORM 包。我试用了几个著名的 ORM,发现还是 Laravel 的 Eloquent 好用!让我们开心的 ORM,开了又开! :-D 在本系列教程里,每一个 Composer 包都要满足以下基本要求: 原生依赖 Composer 进行管理
安装 illuminate/database 给 composer.json 增加一个 require 项: "illuminate/database": "*" 使用 Eloquent 修改 public/index.php 为: 复制代码 代码如下: use Illuminate/Database/Capsule/Manager as Capsule; // Autoload 自动载入 require '../vendor/autoload.php'; // Eloquent ORM $capsule = new Capsule; $capsule->addConnection(require '../config/database.php'); $capsule->bootEloquent(); // 路由配置 require '../config/routes.php'; 新增 config/database.php (注意替换数据库密码): 复制代码 代码如下: return [ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'mffc', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '' ]; 修改 models/Article.php : 复制代码 代码如下: /** * Article Model */ class Article extends Illuminate/Database/Eloquent/Model { public $timestamps = false; } controllers/HomeController.php 无需改动。 刷新,页面依旧: 恭喜你!Eloquent 使用成功! Eloquent 更多用法 Eloquent 异常强大 ,可以说是 Laravel 中 最特别 、 最有价值 的部分。 Eloquent 更多用法参见:Eloquent ORM 中文文档 其他著名 ORM 还有很多著名的 ORM 和 Datamapping(数据库迁移等) 包,参见: ORM and Datamapping ORM 能够大幅提高提高开发效率,Eloquent 真乃神器也! 目前建造一个丰满的可以上手使用的 PHP 框架的工作就算是基本完成了,接下来我会继续完善 MFFC 框架,让她更加丰富、好用! 以后可能会有 模板引擎、表单验证、发送邮件、权限体系管理、异步队列、视频音频处理(乱入:-D) 等内容,敬请关注还未出世的 让我们开了又开的 Composer 包 系列文章。 谢谢大家的阅读和陪伴!再见! |