2015年6月

[原创] Yaf 使用 Eloquent ORM 做数据层

Yaf 默认是不提供数据层处理功能的, 需要自行扩展.

Eloquent ORMLaravel 的内置 ORM 功能非常强大, 而且已经独立成组建, 任何项目都可以选择使用它.

目前最新版是5.0.28, 主要版本是跟随 Laravel 更新的, 下一个版本是 5.1 LTS 版, 非常棒.

在进行集成前, 需要开启 Yaf 的 namespace, 确保 php.ini 有如下配置:

yaf.use_namespace=1

为了方便管理, 建议使用 Composer 管理扩展, 以下示例均使用 Composer.

安装 Eloquent ORM, 在项目根目录创建 composer.json, 内容如下:

{
    "require": {
        "illuminate/database": "5.0.*",
        "illuminate/events": "5.0.*",
        "symfony/debug": "2.6.*",
        "symfony/var-dumper": "2.6.*"
    }
}

然后运行 composer update 下载代码, 并在 index.php 引入 vendor 目录下的 autoload.php 速度不理想可尝试我共享的镜像 http://composer.fengqi.me.

<?php

// 程序启动时间
define('APP_START_TIME', microtime(true));

// 程序跟目录
define('ROOT_PATH', realpath(__DIR__.'/../'));

// 加载 Composer
require ROOT_PATH.'/vendor/autoload.php';

// 启动程序
$app  = new Yaf\Application(ROOT_PATH."/config/application.ini");
$app->bootstrap()->run();

配置数据库信息, application.ini 增加以下内容:

; database
database.driver     = mysql
database.host       = 127.0.0.1
database.database   = yaf
database.username   = root
database.password   = 123456
database.port       = 3306
database.charset    = utf8
database.collation  = utf8_unicode_ci
database.prefix     = ""

这里使用 MySQL 作为示例, Eloquent 支持 MySQL, Postgres, SQL Server, SQLite.

- 阅读剩余部分 -