alexantr/fluentpdo-service-provider

此包已被弃用,不再维护。未建议替换包。

FluentPDO的Pimple服务提供者

dev-master / 1.0.x-dev 2016-08-10 15:05 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:46:43 UTC


README

FluentPDO的Pimple服务提供者FluentPDO

安装

通过Composer安装提供者

composer require alexantr/fluentpdo-service-provider "~1.0@dev"

注册和配置

$app->register(new \Alexantr\Pimple\Provider\FluentPdoServiceProvider(), array(
    'fpdo.pdo_options' => array(
        'dsn' => 'mysql:dbname=blog;host=localhost;charset=UTF8',
        'username' => 'username',
        'password' => 'password',
    ),
    'fpdo.debug' => false,
));

使用示例

获取"posts"表的前十条记录

$posts = $app['fpdo']
    ->from('article')
    ->where('published_at > ?', $date)
    ->orderBy('published_at DESC')
    ->limit(5);

更多示例请参考FluentPDO文档

启用调试

将查询记录到STDERR(用于控制台调试)

$app['fpdo.debug'] = true;

或设置回调

$app['fpdo.debug'] = $app->protect(function (\BaseQuery $query) use ($app) {
    // simple example with logger
    if (isset($app['logger']) && $app['logger'] !== null) {
        $debug_line = array();
        $debug_line[] = 'Query: ' . $q->getQuery(false);
        $debug_line[] = 'Params: ' . implode(', ', $q->getParameters());
        $debug_line[] = 'RowCount: ' . ($q->getResult() ? $q->getResult()->rowCount() : 0);
        $debug_line[] = 'Time: ' . $q->getTime();
        $app['logger']->debug(implode(', ', $debug_line));
    }
});