<?php use Phalcon\DI, Phalcon\Db\Adapter\Pdo\Sqlite as Connection, Phalcon\Mvc\Model\Manager as ModelsManager, Phalcon\Mvc\Model\Metadata\Memory as MetaData, Phalcon\Mvc\Model; $di = new DI(); //Setup a connection $di->set('db', new Connection(array("dbname" => "sample.db"))); //Set a models manager $di->set('modelsManager', new ModelsManager()); //Use the memory meta-data adapter or other $di->set('modelsMetadata', new MetaData()); //Create a model class Robots extends Model { } //Use the model echo Robots::count();
<?php //How many robots are there? $number = Robots::count(); echo "There are ", $number, "\n"; //How many mechanical robots are there? $number = Robots::count("type='mechanical'"); echo "There are ", $number, " mechanical robots\n";
protected function _testCacheDefaultDI($di) { $di->set('modelsCache', function () { $frontCache = new Phalcon\Cache\Frontend\Data(); return new Phalcon\Cache\Backend\File($frontCache, array('cacheDir' => 'unit-tests/cache/')); }, true); //Find $robots = Robots::find(array('cache' => array('key' => 'some'), 'order' => 'id')); $this->assertEquals(count($robots), 3); $this->assertTrue($robots->isFresh()); $robots = Robots::find(array('cache' => array('key' => 'some'), 'order' => 'id')); $this->assertEquals(count($robots), 3); $this->assertFalse($robots->isFresh()); //TODO: I really can't understand why postgresql fails on inserting a simple record //The error is "Object not in prerequisite state: 7 ERROR: //currval of sequence "robots_id_seq" is not yet defined in this session" //Is the ORM working with postgresql, is the database structure incorrect or //I'm using the wrong code? //Skip this test until someone can shed some light on this if (!$di->get("db") instanceof Phalcon\Db\Adapter\Pdo\Postgresql) { //Aggregate functions like sum, count, etc $robotscount = Robots::count(array('cache' => array('key' => 'some-count'))); $this->assertEquals($robotscount, 3); //Create a temporary robot to test if the count is cached or fresh $newrobot = new Robots(); $newrobot->name = "Not cached robot"; $newrobot->type = "notcached"; $newrobot->year = 2014; $newrobot->datetime = '2015-03-05 04:16:17'; $newrobot->text = 'Not cached robot'; $newrobot->create(); $robotscount = Robots::count(array('cache' => array('key' => 'some-count'))); $this->assertEquals($robotscount, 3); //Delete the temp robot Robots::findFirst("type = 'notcached'")->delete(); } }
<?php echo 'There are ', Robots::count(), ' robots';