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 だとお手軽という意味ではお手軽じゃない。
ユースケース的にはそこらへんをターゲットにしている。