CREATE TABLE fairies ( id INTEGER PRIMARY KEY, name VARCHAR(255) ) '); //Create wrapper classes class FairyEntity extends \PHPixie\ORM\Wrappers\Type\Database\Entity { public function greet() { return "Hello, my name is {$this->name}"; } } //Create wrapper builder class Wrappers extends \PHPixie\ORM\Wrappers\Implementation { //Tell which models have wrapped entities public function databaseEntities() { return array('fairy'); } public function fairyEntity($entity) { return new FairyEntity($entity); } } //Set up ORM $orm = new \PHPixie\ORM($database, $slice->arrayData(array()), new Wrappers()); $trixie = $orm->repository('fairy')->create(); $trixie->name = 'Trixie'; echo $trixie->greet() . "\n";
<?php require_once 'vendor/autoload.php'; $slice = new \PHPixie\Slice(); $database = new \PHPixie\Database($slice->arrayData(array('default' => array('driver' => 'pdo', 'connection' => 'sqlite::memory:')))); $orm = new \PHPixie\ORM($database, $slice->arrayData(array('relationships' => array(array('type' => 'oneToMany', 'owner' => 'fairy', 'items' => 'flower'))))); //Create tables $connection = $database->get('default'); $connection->execute(' CREATE TABLE fairies ( id INTEGER PRIMARY KEY, name VARCHAR(255) ) '); $connection->execute(' CREATE TABLE flowers ( id INTEGER PRIMARY KEY, name VARCHAR(255), fairyId INTEGER ) '); //There are no Model classes anymore //They have been split into Repositories, Entities and Queries //This helps to avoid confusion, reach better separation of concerns and ponies and kittens /* We all hated when someone was using entities as queries: $fairy->name = 'Trixie'; $fairy->save(); $fairy->where('name', 'Stella')->find(); */ $fairyRepository = $orm->repository('fairy');