<?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';