gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章用 Composer构建自己的 PHP 框架之使用 ORM由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

回顾 。

经过前三篇文章 基础准备 、 构建路由 和 设计 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 为:

  。

复制代码 代码如下:

<?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 (注意替换数据库密码):

  。

复制代码 代码如下:

<?php 。

  。

return [ 。

  'driver'    => 'mysql'.

  'host'      => 'localhost'.

  'database'  => 'mffc'.

  'username'  => 'root'.

  'password'  => 'password'.

  'charset'   => 'utf8'.

  'collation' => 'utf8_general_ci'.

  'prefix'    => '' 。

  ],

  。

修改 models/Article.php :

  。

复制代码 代码如下:

<?php 。

  。

/** 。

* Article Model 。

*/ 。

class Article extends Illuminate\Database\Eloquent\Model 。

{ 。

  public $timestamps = false,

} 。

   。

  。

controllers/HomeController.php 无需改动.

刷新,页面依旧:

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

恭喜你!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 包 系列文章.

谢谢大家的阅读和陪伴!再见! 。

最后此篇关于用 Composer构建自己的 PHP 框架之使用 ORM的文章就讲到这里了,如果你想了解更多关于用 Composer构建自己的 PHP 框架之使用 ORM的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com