摘要:引入了命名空间,这是规划在中的功能,所以在一定程度上其实就是,的下一个版本是,即将发布,主要贡献者是大名鼎鼎的鸟哥。使用修改为自动载入路由配置新增注意替换数据库密码修改无需改动。作者接受采访时曾表示,是整个中最难实现的部分。
原文发表在我的个人网站:利用 Composer 一步一步构建自己的 PHP 框架(四)——使用 ORM
本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer
经过前三篇文章 基础准备、构建路由 和 设计 MVC,我们已经得到了一个结构比较完整的 MVC 架构的 PHP 微框架,但是距离一个真正能够上手使用的框架还差一样东西:数据库封装,本篇就将讲述如何集成一个 ORM Composer 包。
本篇是本系列最后一篇,接下来我可能会以 让我们开了又开的 Composer 包 为系列标题分享一些体验和感悟,将主要发表在我的个人网站 岁寒 上。
我们选择 Laravel 的 illuminate/database 作为我们的 ORM 包。我试用了几个著名的 ORM,发现还是 Laravel 的 Eloquent 好用!让我们开心的 ORM,开了又开! :-D
在本系列教程里,每一个 Composer 包都要满足以下基本要求:
原生依赖 Composer 进行管理
在好用的基础上尽量简单(比如我们那个超简单的路由包)
尽量新,用上 PHP 的新特性
说到 PHP 的新特性,有句题外话。PHP5.3 引入了命名空间,这是规划在 PHP6 中的功能,所以 PHP5.3 在一定程度上其实就是 PHP6,PHP 的下一个版本是 PHP7,即将发布,主要贡献者是大名鼎鼎的 鸟哥 @Laruence。另外本台前方记者(就是我)刚刚从微博发来报道,鸟哥正在放大招,制造传说中 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(注意替换数据库密码):
"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(),之前用了十几行代码,现在什么都不用干,继承一个类就行了。
Eloquent 更多用法参见:Eloquent ORM 中文文档
其他著名 ORM还有很多著名的 ORM 和 Datamapping(数据库迁移等) 包,参见: ORM and Datamapping
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 框架的工作就算是基本完成了,接下来我会继续完善 MFFC 框架,让她更加丰富、好用!
以后可能会有 模板引擎、表单验证、发送邮件、权限体系管理、异步队列、视频音频处理(乱入:-D) 等内容,敬请关注还未出世的 让我们开了又开的 Composer 包 系列文章。
谢谢大家的阅读和陪伴!再见!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/20858.html
摘要:原文发表在我的个人网站利用一步一步构建自己的框架一基础准备一统天下的时代已经到来白岩松一个时代结束了另一个时代开始了。框架可互用性小组,简称,成立于年。 原文发表在我的个人网站 利用 Composer 一步一步构建自己的 PHP 框架(一)——基础准备 『Composer 一统天下的时代已经到来!』 ——白岩松 一个时代结束了,另一个时代开始了。 Framework ...
摘要:所以接下来我们要做的事情就是让框架更加规范,更加丰满。正式开始规划文件夹新建文件夹,在中创建三个文件夹,开始正式开始踏上的征程。调用视图修改为将包含查询结果的数组返回。下一步利用一步一步构建自己的框架四使用 终于可以 一次编写,到处发布 了,泪流满面! 今天凌晨我从一点多开始搞了四个小时到 5:20,终于搞出了个 Emlog 的 MarkDown 插件!欢迎 Emloger ...
摘要:我们先从目前用着最不爽的地方视图装载下手。实现装载器完成基础准备以后我们正式开始制造视图装载器。下一步利用完善自己的框架二发送邮件 原文发表在我的个人网站:利用 Composer 完善自己的 PHP 框架(一)——视图装载 本教程示例代码见 https://github.com/johnlui/My-First-Framework-based-on-Composer 回顾 经...
摘要:原文发表在我的个人网站利用一步一步构建自己的框架二构建路由本教程示例代码见上一篇中我们已经建立了一个空的项目,本篇将讲述如何构建路由。从使用框架是为了提高开发效率的角度来看,框架的本质就是路由。下一步利用一步一步构建自己的框架三设计 原文发表在我的个人网站 利用 Composer 一步一步构建自己的 PHP 框架(二)——构建路由 本教程示例代码见 https://github.c...
摘要:原文发表在我的个人网站系列入门教程一最适合中国人的教程本教程示例代码见大家在任何地方卡住,最快捷的解决方式就是去看我的示例代码。在此我推荐一个全量中国镜像。 原文发表在我的个人网站:Laravel 5 系列入门教程(一)【最适合中国人的 Laravel 教程】 本教程示例代码见:https://github.com/johnlui/Learn-Laravel-5 大...
阅读 3468·2021-09-02 09:53
阅读 1791·2021-08-26 14:13
阅读 2750·2019-08-30 15:44
阅读 1313·2019-08-30 14:03
阅读 1961·2019-08-26 13:42
阅读 3013·2019-08-26 12:21
阅读 1302·2019-08-26 11:54
阅读 1899·2019-08-26 10:46