用 Composer构建自己的 PHP 框架之使用 ORM
经过前三篇文章的铺垫,包括基础准备、构建路由和设计MVC,我们已经搭建起了一个结构完整的PHP微框架。要想让这个框架真正能够投入使用,还需要一样东西——数据库封装。本篇将为大家讲述如何集成一个ORM Composer包,让我们的框架更上一层楼。
回顾前三篇文章,我们已经在MVC架构的PHP微框架中打下了坚实的基础。在这一篇文章中,我们将为大家介绍如何集成Laravel的illuminate/database作为我们的ORM包。在尝试了几个著名的ORM之后,我发现还是Laravel的Eloquent最好用!让我们开心地使用ORM,体验它的强大功能!
在本系列教程中,每一个推荐的Composer包都需要满足以下基本要求:
1. 原生依赖Composer进行管理,方便我们进行依赖管理和版本控制。
2. 在好用的基础上尽量简单,以方便开发者快速上手和集成。
3. 尽量使用的PHP特性,让我们的代码更加高效、易于维护。
说到PHP的新特性,不得不提一下PHP的历史发展。PHP5.3引入了命名空间,这是PHP6中的一项重要功能。而PHP的下一个版本是PHP7,即将发布,其中鸟哥Laruence是主要的贡献者之一。据前方记者报道,鸟哥正在研发PHP7 on JIT,PHP的发展历史车轮是挡不住的!
接下来,我们来安装illuminate/database包。在composer.json文件中增加一个require项,然后运行composer update等待安装完成。
安装完成后,我们可以开始使用Eloquent了。修改public/index.php文件,引入必要的类和文件。然后,新增config/database.php文件并配置数据库连接信息(注意替换数据库密码)。接着,修改models/Article.php文件,使其成为继承自Illuminate\Database\Eloquent\Model的类。controllers/HomeController.php文件无需改动。
通过这样的集成方式,我们可以轻松地实现数据库的操作和封装,让我们的PHP微框架更加完善。在接下来的文章中,我将继续分享关于Composer包的使用体验和感悟,欢迎大家持续关注。让我们共同学习、共同进步!刷新,页面依旧充满活力
恭喜您!成功使用了Eloquent模型!Eloquent是Laravel框架中一颗璀璨的明珠,它的强大功能令人叹为观止。想象一下,像HomeController中调用的Article::first(),之前需要繁琐的十几行代码来实现,而现在只需简单地继承一个类,即可轻松完成。
Eloquent的用法繁多且深入,想要更多,请查阅Eloquent ORM中文文档,那里有许多宝藏等待您去发掘。
在 ORM 的世界里,除了 Eloquent,还有许多其他著名的 Data mapping(数据库迁移等)包,如 ORM and Datamapping 便是它们的聚集地。ORM 能够显著提高开发效率,而 Eloquent 无疑是其中的佼佼者。
尽管 web 开发各语言阵营都在不断推出新的快速开发框架,它们越来越像 Rails。但 Eloquent 在表面上几乎是最像 Rails 的 ORM 了。我们不能将其与 Ruby 的超强面向对象特性相比较。Laravel 作者 Taylor Otwell 在接受采访时曾表示,Eloquent 是整个 Laravel 中最难实现的部分。我在调试的时候发现,位于 MFFC/vendor/illuminate/database/Illuminate/Database/Eloquent/Model.php 的文件竟然有 3000 多行,可见其复杂性和功能之丰富。
如今,建造一个可用的 PHP 框架的工作已近尾声。接下来,我会继续完善 MFFC 框架,增加更多功能,使其更加出色、易于使用!
未来的旅程中,我们将迎来一系列令人期待的内容,如模板引擎、表单验证、邮件发送、权限体系管理、异步队列、视频音频处理等。敬请关注我们即将推出的 Composer 包系列文章,让我们一同见证这些精彩内容的诞生。
感谢您的阅读,感谢您的陪伴!让我们期待下一次的相遇!再见!愿您的编程之路一帆风顺!
编程语言
- 用 Composer构建自己的 PHP 框架之使用 ORM
- php中使用PHPExcel读写excel(xls)文件的方法
- 在JavaScript中操作时间之getUTCDate()方法的使用
- Javascript随机标签云代码实例
- vue2.0 keep-alive最佳实践
- Angularjs中$http以post请求通过消息体传递参数的实
- JavaScript基本语法讲解
- 浅析PHP开发规范
- php模拟post提交数据的方法
- mybatis 模糊查询的实现方法
- Bootstrap轮播插件使用代码
- asp.net使用jquery实现搜索框默认提示功能
- jQuery 实现批量提交表格多行数据的方法
- sqlserver存储过程中SELECT 与 SET 对变量赋值的区别
- 博客日志摘要暨RSS技术
- Symfony2开发之控制器用法实例分析