| 
<?php
 require_once '../Hypersistence/Hypersistence.php';
 
 Hypersistence::registerAutoloader();
 
 
 require_once './Person.php';
 require_once './Book.php';
 require_once './Student.php';
 require_once './Course.php';
 require_once './City.php';
 
 //SAVE
 $c = new City();
 $c->setName('San Francisco');
 
 $c->save();
 
 
 
 $s = new Student();
 $s->setCity($c);
 $s->setEmail('[email protected]');
 $s->setName('Mateus Fornari');
 $s->setNumber('123456');
 
 $s->save();
 
 
 $course = new Course();
 $course->setDescription('PHP Programming');
 
 $course->save();
 
 $s->addCourses($course);
 
 
 
 $p = new Person();
 $p->setCity($c);
 $p->setEmail('[email protected]');
 $p->setName('Other Person');
 
 $p->save();
 
 
 
 $b = new Book();
 $b->setAuthor($p);
 $b->setTitle('PHP Book');
 
 $b->save();
 Hypersistence::commit();
 
 
 //LOAD
 $p = new Person();
 $p->setId(2);
 $p->load();
 
 echo $p->getName()."\n";
 
 $books = $p->getBooks()->execute();
 
 foreach ($books as $b){
 echo $b->getTitle()."\n";
 }
 
 $s = new Student();
 $s->setId(1);
 $s->load();
 
 echo $s->getName()."\n";
 
 $courses = $s->getCourses();
 foreach ($courses as $c){
 echo $c->getDescription()."\n";
 $course = $c;
 }
 
 $s->deleteCourses($course);
 Hypersistence::commit();
 $s->load(true);
 
 $courses = $s->getCourses();
 foreach ($courses as $c){
 echo $c->getDescription()."\n";
 }
 
 $c = new Course();
 $c->setId(3);
 $c->load();
 
 echo $c->getDescription()."\n";
 
 $students = $c->getStudents();
 foreach ($students as $s){
 echo $s->getName()."\n";
 }
 
 
 //SEARCH
 
 $p = new Person();
 
 $p->setName('Mat');
 
 $search = $p->search();
 $search->orderBy('name');
 
 $list = $search->execute();
 foreach ($list as $p){
 echo $p->getName()."\n";
 }
 
 //Recursive Search
 $c = new City();
 $c->setName('San');
 
 $p = new Person();
 $p->setCity($c);
 
 $b = new Book();
 $b->setAuthor($p);
 
 $list = $b->search()->execute();
 foreach ($list as $b){
 echo $b->getTitle()."\n";
 }
 
 |