| 
<?php/**
 * Please execute "composer install" first, to generate the autoload.php
 */
 require dirname(__FILE__) . '/../vendor/autoload.php';
 
 /**
 * Required types
 */
 use Nkey\Caribu\Model\AbstractModel;
 use Nkey\Caribu\Orm\Orm;
 use Nkey\Caribu\Orm\OrmException;
 
 /**
 * First you have to create a new table in schema 'test' of your mysql server
 * using the following statement:
 *
 * CREATE TABLE `demo` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `content` TEXT, `published` INT);
 */
 
 /**
 * @entity
 * @table demo
 */
 class Demo extends AbstractModel
 {
 
 /**
 * The primary key
 *
 * @id
 *
 * @var int
 */
 private $id;
 
 /**
 * The content value
 *
 * @column content
 *
 * @var string
 */
 private $demoContent;
 
 /**
 * Published on
 *
 * @column published
 *
 * @var int
 */
 private $publishedOn;
 
 /**
 * @return int
 */
 public function getId()
 {
 return $this->id;
 }
 
 /**
 *
 * @param
 *            $id
 */
 public function setId($id)
 {
 $this->id = $id;
 return $this;
 }
 
 /**
 *
 * @return string
 */
 public function getDemoContent()
 {
 return $this->demoContent;
 }
 
 /**
 *
 * @param
 *            $demoContent
 */
 public function setDemoContent($demoContent)
 {
 $this->demoContent = $demoContent;
 return $this;
 }
 
 /**
 *
 * @return int
 */
 public function getPublishedOn()
 {
 return $this->publishedOn;
 }
 
 /**
 *
 * @param
 *            $publishedOn
 */
 public function setPublishedOn($publishedOn)
 {
 $this->publishedOn = $publishedOn;
 return $this;
 }
 }
 
 /**
 * ***********************************************************************
 */
 
 try {
 /**
 * Configure the OR mapper
 */
 Orm::configure(array(
 'type' => 'mysql',
 'host' => 'localhost',
 'user' => 'test',
 'password' => 'test1234',
 'schema' => 'test'
 ));
 
 // Now some business:
 $demoEntity = new Demo();
 $demoEntity->setDemoContent("Not so much important content, but it needs to be persisted!");
 $demoEntity->setPublishedOn(time());
 $demoEntity->persist();
 
 // After persistence we can access now the generated id:
 printf("Your persisted entity has the ID %d", $demoEntity->getId());
 } catch (OrmException $exception) {
 
 while($exception != null) {
 echo $exception->getMessage() . "\n";
 echo $exception->getTraceAsString() . "\n";
 $exception = $exception->getPrevious();
 }
 }
 
 |