<?php
require_once('doctrine/lib/Doctrine.php');
//require_once(dirname(__FILE__).'/../../lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine.php');
spl_autoload_register(array('Doctrine', 'autoload'));
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_EXPORT, Doctrine::EXPORT_ALL);
$conn = Doctrine_Manager::connection('mysql://root:root@localhost/test_doctrine');
echo "Connection is set up\n";

// Contact will be the main classes for the test
class Contact extends Doctrine_Record {
  public function setTableDefinition(){
    $this->setTableName('contact');
  }
  public function setUp(){
    $this->hasMany('Category as Categories', array('refClass' => 'ContactCategory', 'local' => 'contact_id', 'foreign' => 'category_id'));
  }
}

// Category will allow test on MANY to MANY relation
class Category extends Doctrine_Record {
  public function setTableDefinition(){
    $this->setTableName('cat');
  }
  public function setUp(){
    $this->hasMany('Contact', array('refClass' => 'ContactCategory', 'local' => 'category_id', 'foreign' => 'contact_id'));  
  }
}
class ContactCategory extends Doctrine_Record {
  public function setTableDefinition() {
    $this->hasColumn('contact_id', 'integer', null, array('primary' => true));
    $this->hasColumn('category_id', 'integer', null, array('primary' => true));
  }
}


try {Doctrine::dropDatabases();}catch(Exception $e){} // Drop if exist :-)
Doctrine::createDatabases();
Doctrine::createTablesFromArray(array('Contact', 'Category', 'ContactCategory'));
echo "Databases tables are create\n";


$c = new Contact();
$c->save();
$id = $c->id;


// Problem :
$c = Doctrine::getTable('Contact')->findOneById($id);
$c->get('Categories', false);
$c->save();
