$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 />';