加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP编程:用 Composer构建自己的 PHP 框架之使用 ORM

发布时间:2020-12-13 02:06:37 所属栏目:PHP教程 来源:网络整理
导读:《用 Composer构建自己的 PHP 框架之使用 ORM》要点: 本文介绍了用 Composer构建自己的 PHP 框架之使用 ORM,希望对您有用。如果有疑问,可以联系我们。 PHP教程 回顾 PHP教程 经过前三篇文章 基础准备 、 构建路由 和 设计 MVC,我们已经得到了一个结构比拟

《用 Composer构建自己的 PHP 框架之使用 ORM》要点:
本文介绍了用 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

PHP教程use IlluminateDatabaseCapsuleManager 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

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教程/**

PHP教程* Article Model

PHP教程*/

PHP教程class Article extends IlluminateDatabaseEloquentModel

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教程谢谢年夜家的阅读和陪伴!再见!

欢迎参与《用 Composer构建自己的 PHP 框架之使用 ORM》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读