yaf框架学习(9)添加ORM支持

PHP有很多ORM框架,人气最高的当属LaravelEloquent ORMThinkPHP是国内最受欢迎的PHP框架,也可以安装它的ORM框架。本文介绍两种ORM框架的安装,实际任选其一安装即可。

Eloquent ORM

安装Eloquent ORM

命令行进入项目根目录,输入命令:

composer require illuminate/database

添加数据库配置信息

打开conf/app.ini,添加如下数据库配置信息:

database.database_type = "mysql"
database.database_name = "yaf"
database.server = "localhost"
database.username = "root"
database.password = "secret"
database.charset = "utf8"
database.port = 3306

配置EloquentORM

打开app/Bootstrap.php文件,添加如下方法:

/**
 * 初始化db
 */
public function _initDatabase(Yaf\Dispatcher $dispatcher) {
    $config = Yaf\Registry::get('config');

    //初始化Eloquent ORM
    $dbconfig = [
        'driver'    => $config['database']->database_type, // 数据库类型
        'host'      => $config['database']->server, // 主机地址
        'database'  => $config['database']->database_name, // 数据库名
        'username'  => $config['database']->username, // 用户名
        'password'  => $config['database']->password, //密码
        'charset'   => $config['database']->charset,// 数据库编码
        'collation' => 'utf8_general_ci',
        'prefix'    => '',  // 数据库表前缀
    ];
    $capsule = new Capsule();
    $capsule->addConnection($dbconfig);
    $capsule->setAsGlobal();
    $capsule->bootEloquent();

}

使用Eloquent ORM

app/models文件夹下新建projects.php,内容如下:

<?php
use Illuminate\Database\Eloquent\Model;

class ProjectsModel extends Model {
    protected $primaryKey = 'id';
    protected $table = 'projects';
}

在控制器中使用:

<?php
public function indexAction()
{
    $project = ProjectsModel::where('id', '1')->first();
    var_dump($project);
}

ThinkORM

安装ThinkORM

命令行进入项目根目录,输入命令:

composer require topthink/think-orm

添加数据库配置信息

打开conf/app.ini,添加如下数据库配置信息:

database.database_type = "mysql"
database.database_name = "yaf"
database.server = "localhost"
database.username = "root"
database.password = "secret"
database.charset = "utf8"
database.port = 3306

配置ThinkORM

打开app/Bootstrap.php文件,添加如下方法:

/**
 * 初始化db
 */
public function _initDatabase(Yaf\Dispatcher $dispatcher) {
    $config = Yaf\Registry::get('config');

    //初始化thinkORM
    $dbconfig = [
        // 默认数据连接标识
        'default'     => 'mysql',
        // 数据库连接信息
        'connections' => [
            'mysql' => [
                'type'     => $config['database']->database_type, // 数据库类型
                'hostname' => $config['database']->server, // 主机地址
                'username' => $config['database']->username, // 用户名
                'password' => $config['database']->password, //密码
                'port'     => $config['database']->port,   //端口
                'database' => $config['database']->database_name, // 数据库名
                'charset'  => $config['database']->charset, // 数据库编码
                'prefix'   => '', // 数据库表前缀
                'debug'    => true, // 数据库调试模式
            ],
        ]
    ];

}

使用ThinkORM

app/models文件夹下新建projects.php,内容如下:

<?php
use think\Model;

class ProjectsModel extends Model {
    protected $pk = 'id';            //主键
    protected $table = 'projects';   //表名
}

在控制器中使用:

<?php
public function indexAction()
{
    $project = ProjectsModel::where('id', '1')->find();
    var_dump($project);
}

更多用法可以查看ThinkORM的官方文档:
https://www.kancloud.cn/manual/think-orm/

提示Yaf\Loader::autoload()警告

配置好后,会提示如下错误:

Warning: Yaf\Loader::autoload(): Failed opening script ...: No such file or directory in...

只需在入口文件添加即可:

ini_set('yaf.use_spl_autoload','on');

《yaf框架学习(9)添加ORM支持》上有4条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注