Beispiel #1
0
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
require_once 'Product.php';
require_once 'User.php';
$zendDb = Zend_Db::factory('Pdo_Sqlite', array('dbname' => APP_PATH . '/data/test.db'));
function setupTestDb($db)
{
    $create = array('CREATE TABLE IF NOT EXISTS products (id INTEGER PRIMARY KEY, name TEXT, price REAL, on_sale INTEGER DEFAULT 0, user_id INTEGER, created_on TEXT);', 'CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, email TEXT, password TEXT);');
    foreach ($create as $sql) {
        $db->exec($sql);
    }
}
setupTestDb($zendDb);
// simple db takes a Zend_Db instance and either a writable path or Zend_Cache instance
$db = new SimpleDb($zendDb, APP_PATH . '/data');
$db->addClasses('Product', 'User');
// inform simpledb of our model classes (what about a dir scanner?)
// you can access tables without model classes, results will be SimpleDb_Item instances
$user = $db->users->new(array('username' => 'jim', 'email' => '*****@*****.**'));
print 'Saving ' . $user . ' to database...<br />';
$user->save();
for ($i = 1; $i < 5; $i++) {
    $product = $db->products->new();
    $product->name = 'Test Product ' . $i;
    $product->user_id = $user->id;
    $product->price = (double) ($i . '.99');
    $product->on_sale = $i % 2 ? 1 : 0;
    $product->save();
}
foreach ($db->products as $product) {
    print 'Product: ' . $product . ' user: '******' - sale(' . $product->on_sale . ')<br />';