<?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(); 
    } 
} 
 
 |