构建自己的PHP框架(ORM)
2024-08-31 21:28:11
完整项目地址:https://github.com/Evai/Aier
我们选择 Laravel 的 illuminate/database 作为我们的 ORM 包。
在本系列教程里,每一个 Composer 包都要满足以下基本要求:
- 原生依赖 Composer 进行管理
- 在好用的基础上尽量简单(比如我们那个超简单的路由包)
- 尽量新,用上 PHP 的新特性
说到 PHP 的新特性,有句题外话。 PHP5.3 引入了命名空间,这是规划在 PHP6 中的功能,所以 PHP5.3 在一定程度上其实就是 PHP6 ,PHP 的下一个版本是 PHP7 ,即将发布,主要贡献者是大名鼎鼎的 鸟哥 @Laruence 。
安装 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' => 'articles', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_general_ci', 'prefix' => '' ];
修改 models/Article.php :
<?php class Article extends Illuminate\Database\Eloquent\Model { public $timestamps = false; public $table = 'article';
}
controllers/HomeController.php 无需改动。
刷新页面依旧。
恭喜你!Eloquent 使用成功!
Eloquent 更多用法
Eloquent 异常强大 ,可以说是 Laravel 中 最特别 、 最有价值 的部分。
Eloquent 更多用法参见:Eloquent ORM 中文文档
最新文章
- 【webGL】插件的使用的,实现一个鼠标动画的盒子
- C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果)
- 读取ini配置文件
- BZOJ3325 : [Scoi2013]密码
- Uploadify上传问题
- 最大流 Dinic
- js获得浏览器页面高宽
- BZOJ 2326 数学作业(矩阵)
- C# Debug与release之间的一些小差异
- Aircrack-ng 工具箱
- pca图像识别
- MinGW 使用 msvcr90.dll
- CG之refract函数简单实现
- [git] 细说commit (git add/commit/diff/rm/reset 以及 index 的概念)
- SSM-Spring-11:Spring中使用代理工厂Bean实现aop的四种增强
- String.split()与StringUtils.split()
- 【windows核心编程】双机调试操作
- 高级定时器TIM1&;TIM8
- 添加外键式异常 1215-cannot add foreign key constranint
- 微信图片生成插件,页面截图插件 html2canvas,截图失真 问题的解决方案
热门文章
- Bluetooth---初步了解Android 蓝牙4.0
- php面试题8
- [Compose] 11. Use Task for Asynchronous Actions
- php实现二叉树遍历
- 深度学习代码注解(一)—— mnistdeepauto
- Mybatis中sql语句中的in查询,一定要判断null的情况
- 怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨
- Linux中mv重命名作用及打包war压缩文件及分配权限
- AppStoreID--安装URL--应用更新URL--应用评分URL
- Enhancing network controls in mandatory access control computing environments