最近在做一个小项目,需要快速搭个后台管理数据,懒得写一堆SQL语句,就想着找个带ORM的PHP框架来省点事。折腾了一圈,用了几个主流的框架,感觉各有特点,顺便把安装和简单用法记下来,给有同样需求的人参考。
Laravel + Eloquent
说到带ORM的PHP框架,Laravel几乎是绕不开的选择。它的Eloquent ORM非常成熟,用起来像说话一样自然。比如查一条用户数据,代码长这样:
<?php
$user = App\Models\User::where('name', 'John')->first();
?>
安装也方便,直接用Composer:
composer create-project laravel/laravel myproject
配好数据库信息后,定义一个Model就能开始操作数据。迁移文件也能自动生成,改表结构不再靠手动执行SQL。
ThinkPHP
如果你在国内做开发,可能更熟悉ThinkPHP。它自带的ORM叫模型类,支持链式操作,对习惯写原生PHP的人来说上手快。安装命令是:
composer create-project topthink/think myapp
查数据的时候可以这么写:
<?php
$user = Db::name('user')->where('id', 1)->find();
?>
虽然不是完全的ORM风格,但新版已经支持模型定义和关联关系,日常开发够用了。
CodeIgniter + Ion Auth + CI-Model
CodeIgniter本身不带完整ORM,但可以通过CI-Model这类扩展补上。适合老项目维护或者服务器资源紧张的情况。安装还是用Composer引入扩展包:
composer require jamiesimm/ci-model
然后定义一个User_model:
<?php
class User_model extends CI_Model {
protected $table = 'users';
}
?>
之后就能用$this->User_model->get(1)这样的方式取数据了。
Slim + Eloquent 独立使用
要是你只想要个轻量级路由框架,又舍不得Eloquent,可以把Eloquent单独抽出来用在Slim里。先装Slim:
composer require slim/slim
composer require illuminate/database
然后在启动文件里初始化Eloquent的连接,接着就可以在路由中直接调用模型操作数据库。
这几个组合我都试过,Laravel最省心,ThinkPHP在国内生态好,Slim+Eloquent适合想自己搭架子的人。看你项目大小和团队习惯选就行。