Silex の 2 つめエクステンションを作った

2 つめのエクステンション。
GitHub - heavenshell/php-silex-zf-db: Silex Zend_Db extension
Zend_Db を簡単に使えるようにした。
以下サンプル。

<?php
require_once 'silex.phar';
require_once dirname(__DIR__) . '/src/Zf1/DbExtension.php';

$zendpath = getenv('ZF_PATH');

$app = new Silex\Application();
$app->register(new \Zf1\DbExtension(), array(
    'zend.class_path' => $zendpath,
    'zend.db.adapter' => 'Pdo_Sqlite',
    'zend.db.options' => array(
        'dbname' => __DIR__ . '/test.db',
    )
));

$app->before(function() use ($app) {
    $db    = $app['zend.db']();
    $conn  = $db->getConnection();
    $app['zend.db.connection'] = $conn;

    // When you use Model class, add to namespace.
    // If you not using namespace, use registerPrefix() instead.
    $app['autoloader']->registerNamespace('Model', __DIR__);
});

$app->get('/create', function () use ($app) {
    $db = $app['zend.db']();
    $db->insert(
        'entries', array('title' => 'test_title', 'text' => 'test_text')
    );
    $table = new \Model\Entries();
    $row = $table->fetchAll();
    return json_encode($row->toArray());
});

簡単にテーブル操作が出来る。
速度的にはどうか分からないけど記述量的には Zend_Db はお手軽だと思う。
現状 Silex の標準の Doctrine DBAL は物足りない、非公式の DoctrineOrmExtension だとお手軽という意味ではお手軽じゃない。
ユースケース的にはそこらへんをターゲットにしている。