Refactored some more stuff, cleaned things up, adding request validation to the server.
This commit is contained in:
parent
c929891962
commit
09ba0c3540
@ -68,24 +68,23 @@ class Doctrine_Resource_Client extends Doctrine_Resource
|
||||
$schema = file_get_contents($path);
|
||||
} else {
|
||||
$request = new Doctrine_Resource_Request();
|
||||
$request->set('type', 'load');
|
||||
$request->set('format', $this->getConfig()->get('format'));
|
||||
$request->set('action', 'load');
|
||||
|
||||
$schema = $request->execute();
|
||||
|
||||
if ($schema) {
|
||||
file_put_contents($path, Doctrine_Parser::dump($schema, $this->getConfig()->get('format')));
|
||||
file_put_contents($path, Doctrine_Parser::dump($schema, 'xml'));
|
||||
}
|
||||
}
|
||||
|
||||
if (file_exists($path) && $schema) {
|
||||
$import = new Doctrine_Import_Schema();
|
||||
$schema = $import->buildSchema($path, $this->getConfig()->get('format'));
|
||||
$schema = $import->buildSchema($path, 'xml');
|
||||
|
||||
if (!file_exists($classesPath)) {
|
||||
$build = "<?php\n";
|
||||
foreach ($schema['schema'] as $className => $details) {
|
||||
$build .= "class " . $className . " extends Doctrine_Resource_Record { protected \$_model = '".$className."'; public function __construct(\$loadRelations = true) { parent::__construct(\$this->_model, \$loadRelations); } }\n";
|
||||
$build .= "class " . $className . " extends Doctrine_Resource_Record { protected \$_model = '".$className."'; public function __construct() { parent::__construct(\$this->_model); } }\n";
|
||||
|
||||
$schema['schema'][$className]['relations'] = isset($schema['relations'][$className]) ? $schema['relations'][$className]:array();
|
||||
}
|
||||
|
@ -36,18 +36,12 @@ class Doctrine_Resource_Collection extends Doctrine_Resource_Access implements C
|
||||
protected $_data = array();
|
||||
protected $_config = array();
|
||||
protected $_model = null;
|
||||
protected $_parent = null;
|
||||
|
||||
public function __construct($model)
|
||||
{
|
||||
$this->_model = $model;
|
||||
}
|
||||
|
||||
public function setParent($parent)
|
||||
{
|
||||
$this->_parent = $parent;
|
||||
}
|
||||
|
||||
public function getConfig($key = null)
|
||||
{
|
||||
return Doctrine_Resource_Client::getInstance()->getConfig($key);
|
||||
@ -60,7 +54,7 @@ class Doctrine_Resource_Collection extends Doctrine_Resource_Access implements C
|
||||
|
||||
public function get($key)
|
||||
{
|
||||
if (!$key || !isset($this->_data[$key])) {
|
||||
if (!isset($key) || !isset($this->_data[$key])) {
|
||||
return $this->add();
|
||||
} else {
|
||||
return $this->_data[$key];
|
||||
@ -69,7 +63,7 @@ class Doctrine_Resource_Collection extends Doctrine_Resource_Access implements C
|
||||
|
||||
public function set($key, $value)
|
||||
{
|
||||
if (!$key || !isset($this->_data[$key])) {
|
||||
if (!isset($key) || !isset($this->_data[$key])) {
|
||||
$this->_data[$key] = $value;
|
||||
} else {
|
||||
$val = $this->add();
|
||||
@ -78,30 +72,18 @@ class Doctrine_Resource_Collection extends Doctrine_Resource_Access implements C
|
||||
}
|
||||
}
|
||||
|
||||
public function add($value = null)
|
||||
public function add(Doctrine_Resource_Record $value = null)
|
||||
{
|
||||
if (!$value) {
|
||||
$model = $this->_model;
|
||||
|
||||
$value = new $model(false);
|
||||
$table = $value->getTable();
|
||||
$relation = $table->getRelationByClassName(get_class($this->_parent));
|
||||
$alias = $relation['alias'];
|
||||
|
||||
if ($relation['type'] === Doctrine_Relation::ONE) {
|
||||
$value->set($alias, $this->_parent);
|
||||
} else {
|
||||
$collection = new Doctrine_Resource_Collection($relation['class']);
|
||||
$collection[] = $this->_parent;
|
||||
|
||||
$value->set($alias, $collection);
|
||||
}
|
||||
$value = new $this->_model;
|
||||
}
|
||||
|
||||
if ($value) {
|
||||
$this->_data[] = $value;
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
public function getIterator()
|
||||
{
|
||||
@ -115,15 +97,20 @@ class Doctrine_Resource_Collection extends Doctrine_Resource_Access implements C
|
||||
|
||||
public function toArray($deep = false)
|
||||
{
|
||||
$array = array();
|
||||
$data = array();
|
||||
|
||||
foreach ($this->_data as $key => $record) {
|
||||
if ($record->exists() || $record->hasChanges()) {
|
||||
$array[$this->_model . '_' .$key] = $record->toArray($deep);
|
||||
}
|
||||
$data[$key] = $record->toArray($deep);
|
||||
}
|
||||
|
||||
return $array;
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function fromArray(array $array)
|
||||
{
|
||||
foreach ($array as $key => $record) {
|
||||
$this->add()->fromArray($record);
|
||||
}
|
||||
}
|
||||
|
||||
public function save()
|
||||
|
@ -55,26 +55,24 @@ class Doctrine_Resource_Query
|
||||
$request = new Doctrine_Resource_Request();
|
||||
$request->set('dql', $this->getDql());
|
||||
$request->set('params', $params);
|
||||
$request->set('format', $this->getConfig()->get('format'));
|
||||
$request->set('type', 'query');
|
||||
$request->set('action', 'query');
|
||||
$request->set('model', $this->getModel());
|
||||
|
||||
$response = $request->execute();
|
||||
|
||||
// If we have a response then lets parse it and hydrate it
|
||||
if (!empty($response)) {
|
||||
return $request->hydrate($response, $this->getModel());
|
||||
// Otherwise lets return an empty collection for the queried for model
|
||||
|
||||
$collection = new Doctrine_Resource_Collection($this->getModel());
|
||||
$collection->fromArray($response);
|
||||
} else {
|
||||
$model = $this->getModel();
|
||||
|
||||
$collection = new Doctrine_Resource_Collection($this->getModel());
|
||||
|
||||
$collection[] = new $model(false);
|
||||
$collection = new Doctrine_Resource_Collection($model);
|
||||
$collection[] = new $model();
|
||||
}
|
||||
|
||||
return $collection;
|
||||
}
|
||||
}
|
||||
|
||||
public function getDql()
|
||||
{
|
||||
|
@ -37,11 +37,11 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
protected $_model = null;
|
||||
protected $_changes = array();
|
||||
|
||||
public function __construct($model, $loadRelations = true)
|
||||
public function __construct($model)
|
||||
{
|
||||
$this->_model = $model;
|
||||
|
||||
$this->initialize($loadRelations);
|
||||
$this->initialize();
|
||||
}
|
||||
|
||||
public function clearChanges()
|
||||
@ -63,19 +63,6 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($schema['relations']) && $loadRelations) {
|
||||
$relations = $schema['relations'];
|
||||
|
||||
foreach ($relations as $relation) {
|
||||
if ($relation['type'] === Doctrine_Relation::ONE) {
|
||||
$this->_data[$relation['alias']] = new $relation['class'](false);
|
||||
} else {
|
||||
$this->_data[$relation['alias']] = new Doctrine_Resource_Collection($relation['class']);
|
||||
$this->_data[$relation['alias']]->setParent($this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getConfig($key = null)
|
||||
@ -85,7 +72,7 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
|
||||
public function get($key)
|
||||
{
|
||||
if (!$key) {
|
||||
if (!isset($key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -102,7 +89,7 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
|
||||
public function set($key, $value)
|
||||
{
|
||||
if (!$key) {
|
||||
if (!isset($key)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -127,18 +114,9 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
$class = $relation['class'];
|
||||
|
||||
if ($relation['type'] === Doctrine_Relation::ONE) {
|
||||
$return = new $class(false);
|
||||
$table = $return->getTable();
|
||||
$returnRelation = $table->getRelationByClassName(get_class($this));
|
||||
|
||||
if ($returnRelation) {
|
||||
$returnClass = new $returnRelation['class'](false);
|
||||
|
||||
$return->set($returnRelation['alias'], $returnClass);
|
||||
}
|
||||
$return = new $class();
|
||||
} else {
|
||||
$return = new Doctrine_Resource_Collection($class);
|
||||
$return->setParent($this);
|
||||
}
|
||||
|
||||
return $return;
|
||||
@ -154,31 +132,6 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
return new ArrayIterator($this->_data);
|
||||
}
|
||||
|
||||
public function sameAs(Doctrine_Resource_Record $record)
|
||||
{
|
||||
// If we have same class name
|
||||
if (get_class($this) == get_class($record)) {
|
||||
|
||||
// If we have 2 records that exist and are persistant
|
||||
if ($record->exists() && $this->exists()) {
|
||||
if ($record->identifier() === $this->identifier()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
// If we have unsaved records then lets compare the data
|
||||
} else {
|
||||
if ($record->toArray(false) === $this->toArray(false)) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function getChanges()
|
||||
{
|
||||
global $gotten;
|
||||
@ -232,29 +185,21 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
|
||||
public function save()
|
||||
{
|
||||
$format = $this->getConfig('format');
|
||||
|
||||
$request = new Doctrine_Resource_Request();
|
||||
$request->set('format', $format);
|
||||
$request->set('type', 'save');
|
||||
$request->set('action', 'save');
|
||||
$request->set('model', $this->getModel());
|
||||
$request->set('data', $this->getChanges());
|
||||
$request->set('identifier', $this->identifier());
|
||||
$request->set('data', $this->getChanges());
|
||||
|
||||
$response = $request->execute();
|
||||
|
||||
$this->_data = $request->hydrate(array($response), $this->_model, array($this))->getFirst()->_data;
|
||||
|
||||
$this->clearChanges();
|
||||
$this->fromArray($response);
|
||||
}
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$format = $this->getConfig('format');
|
||||
|
||||
$request = new Doctrine_Resource_Request();
|
||||
$request->set('format', $format);
|
||||
$request->set('type', 'delete');
|
||||
$request->set('action', 'delete');
|
||||
$request->set('model', $this->getModel());
|
||||
$request->set('identifier', $this->identifier());
|
||||
|
||||
@ -306,42 +251,28 @@ class Doctrine_Resource_Record extends Doctrine_Resource_Access implements Count
|
||||
|
||||
public function toArray($deep = false)
|
||||
{
|
||||
global $gotten;
|
||||
|
||||
if (!$gotten) {
|
||||
$gotten = array();
|
||||
}
|
||||
|
||||
$md5Hash = $this->getMd5Hash();
|
||||
|
||||
if (!in_array($md5Hash, $gotten)) {
|
||||
$gotten[] = $md5Hash;
|
||||
}
|
||||
|
||||
$array = array();
|
||||
$data = array();
|
||||
|
||||
foreach ($this->_data as $key => $value) {
|
||||
|
||||
if ($deep && $this->getTable()->hasRelation($key)) {
|
||||
if ($value instanceof Doctrine_Resource_Collection) {
|
||||
if ($value->count() > 0) {
|
||||
foreach ($value as $key2 => $record) {
|
||||
if (($record->exists() || $record->hasChanges()) && !in_array($record->getMd5Hash(), $gotten)) {
|
||||
$array[$key][get_class($record) . '_' . $key2] = $record->toArray($deep);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if ($value instanceof Doctrine_Resource_Record) {
|
||||
if (($value->exists() || $value->hasChanges()) && !in_array($value->getMd5Hash(), $gotten)) {
|
||||
$array[$key] = $value->toArray($deep);
|
||||
}
|
||||
}
|
||||
} else if (!$this->getTable()->hasRelation($key) && $this->getTable()->hasColumn($key)) {
|
||||
$array[$key] = $value;
|
||||
$data[$key] = $this->$key->toArray($deep);
|
||||
} else if ($this->getTable()->hasColumn($key)) {
|
||||
$data[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $array;
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function fromArray(array $array)
|
||||
{
|
||||
foreach ($array as $key => $value) {
|
||||
if ($this->getTable()->hasRelation($key) && is_array($value)) {
|
||||
$this->$key->fromArray($value);
|
||||
} else if ($this->getTable()->hasColumn($key)) {
|
||||
$this->$key = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getMd5Hash()
|
||||
|
@ -43,14 +43,15 @@ class Doctrine_Resource_Request extends Doctrine_Resource_Params
|
||||
public function execute()
|
||||
{
|
||||
$url = $this->getConfig()->get('url');
|
||||
$data = array('type' => $this->get('type'), 'format' => $this->getConfig()->get('format'), 'data' => Doctrine_Parser::dump($this->getAll(), $this->getConfig()->get('format')));
|
||||
|
||||
$request = array('xml' => Doctrine_Parser::dump($this->getAll(), 'xml'));
|
||||
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_POST, 1);
|
||||
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
|
||||
$response = curl_exec($ch);
|
||||
|
||||
if (curl_errno($ch)) {
|
||||
@ -71,66 +72,4 @@ class Doctrine_Resource_Request extends Doctrine_Resource_Params
|
||||
|
||||
return $array;
|
||||
}
|
||||
|
||||
public function hydrate(array $array, $model, $records = array())
|
||||
{
|
||||
$collection = new Doctrine_Resource_Collection($model);
|
||||
|
||||
foreach ($array as $recordKey => $record) {
|
||||
if (isset($records[$recordKey])) {
|
||||
$r = $records[$recordKey];
|
||||
} else {
|
||||
$r = new $model(false);
|
||||
}
|
||||
|
||||
foreach ($record as $key => $value) {
|
||||
if ($r->getTable()->hasRelation($key) && !empty($value)) {
|
||||
$relation = $r->getTable()->getRelation($key);
|
||||
|
||||
if ($relation['type'] === Doctrine_Relation::MANY) {
|
||||
$relationCollection = $this->hydrate($value, $relation['class']);
|
||||
$relationCollection->setParent($r);
|
||||
|
||||
foreach ($relationCollection as $relationRecord) {
|
||||
$relationTable = $relationRecord->getTable();
|
||||
|
||||
if ($relation = $relationTable->getRelationByClassName($model)) {
|
||||
if ($relation['type'] === Doctrine_Relation::ONE) {
|
||||
$relationRecord->set($relation['alias'], $r);
|
||||
$relationRecord->clearChanges();
|
||||
} else {
|
||||
$coll = new Doctrine_Resource_Collection($relation['class']);
|
||||
$coll[] = $r;
|
||||
|
||||
$relationRecord->set($relation['alias'], $coll);
|
||||
}
|
||||
|
||||
$relationRecord->clearChanges();
|
||||
}
|
||||
}
|
||||
|
||||
$r->set($key, $relationCollection);
|
||||
} else {
|
||||
$relationRecord = $this->hydrate(array($value), $relation['class'])->getFirst();
|
||||
$relationTable = $relationRecord->getTable();
|
||||
|
||||
if ($relation = $relationTable->getRelationByClassName($model)) {
|
||||
$relationRecord->set($relation['alias'], $r);
|
||||
$relationRecord->clearChanges();
|
||||
}
|
||||
|
||||
$r->set($key, $relationRecord);
|
||||
}
|
||||
} else if($r->getTable()->hasColumn($key)) {
|
||||
$r->set($key, $value);
|
||||
}
|
||||
|
||||
$r->clearChanges();
|
||||
}
|
||||
|
||||
$collection[] = $r;
|
||||
}
|
||||
|
||||
return $collection;
|
||||
}
|
||||
}
|
@ -53,6 +53,41 @@ class Doctrine_Resource_Server extends Doctrine_Resource
|
||||
return $instance;
|
||||
}
|
||||
|
||||
public function validate($errors)
|
||||
{
|
||||
if (!empty($errors)) {
|
||||
throw new Doctrine_Resource_Exception(count($errors) . ' error(s) occurred: ' . implode('. ', $errors));
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public function validateOpenRecord($request)
|
||||
{
|
||||
$errors = array();
|
||||
|
||||
if (!$request->has('model') || !$request->get('model')) {
|
||||
$errors[] = 'You must specify the model/class name you are deleting';
|
||||
}
|
||||
|
||||
if (!$request->has('identifier') || !is_array($request->get('identifier'))) {
|
||||
$errors[] = 'You must specify an array containing the identifiers for the model you wish to delete';
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
public function validateSave($request)
|
||||
{
|
||||
$errors = $this->validateOpenRecord($request);
|
||||
|
||||
if (!$request->has('data') || !$request->get('data')) {
|
||||
$errors[] = 'You must specify an containing the changed data to save to the model';
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
public function executeSave($request)
|
||||
{
|
||||
$model = $request->get('model');
|
||||
@ -80,6 +115,11 @@ class Doctrine_Resource_Server extends Doctrine_Resource
|
||||
return $record->toArray(true, true);
|
||||
}
|
||||
|
||||
public function validateDelete($request)
|
||||
{
|
||||
return $this->validateOpenRecord($request);
|
||||
}
|
||||
|
||||
public function executeDelete($request)
|
||||
{
|
||||
$model = $request->get('model');
|
||||
@ -89,7 +129,22 @@ class Doctrine_Resource_Server extends Doctrine_Resource
|
||||
|
||||
$record = $table->find($identifier);
|
||||
|
||||
if ($record) {
|
||||
$record->delete();
|
||||
} else {
|
||||
throw new Doctrine_Resource_Exception('Record could not be deleted because it is not a valid record');
|
||||
}
|
||||
}
|
||||
|
||||
public function validateQuery($request)
|
||||
{
|
||||
$errors = array();
|
||||
|
||||
if (!$request->has('dql') || !$request->get('dql')) {
|
||||
$errors[] = 'You must specify a dql string in order to execute a query';
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
public function executeQuery($request)
|
||||
@ -102,16 +157,23 @@ class Doctrine_Resource_Server extends Doctrine_Resource
|
||||
return $conn->query($dql, $params)->toArray(true, true);
|
||||
}
|
||||
|
||||
public function validateLoad($request)
|
||||
{
|
||||
$errors = array();
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
public function executeLoad($request)
|
||||
{
|
||||
$path = '/tmp/' . rand() . '.' . $request->get('format');
|
||||
$path = '/tmp/' . rand();
|
||||
|
||||
$models = $this->getConfig('models') ? $this->getConfig('models'):array();
|
||||
|
||||
$export = new Doctrine_Export_Schema();
|
||||
$export->exportSchema($path, $request->get('format'), null, $models);
|
||||
$export->exportSchema($path, 'xml', null, $models);
|
||||
|
||||
$schema = Doctrine_Parser::load($path, $request->get('format'));
|
||||
$schema = Doctrine_Parser::load($path, 'xml');
|
||||
|
||||
unlink($path);
|
||||
|
||||
@ -120,29 +182,29 @@ class Doctrine_Resource_Server extends Doctrine_Resource
|
||||
|
||||
public function execute(array $r)
|
||||
{
|
||||
if (!isset($r['data'])) {
|
||||
throw new Doctrine_Resource_Exception('You must specify a data xml string in your request');
|
||||
if (!isset($r['xml'])) {
|
||||
throw new Doctrine_Resource_Exception('You must specify an xml string in your request');
|
||||
}
|
||||
|
||||
$type = $r['type'];
|
||||
$format = isset($r['format']) ? $r['format']:'xml';
|
||||
$data = Doctrine_Parser::load($r['data'], $format);
|
||||
$requestArray = Doctrine_Parser::load($r['xml']);
|
||||
|
||||
$funcName = 'execute' . Doctrine::classify($type);
|
||||
$request = new Doctrine_Resource_Request($requestArray);
|
||||
|
||||
$requestObj = new Doctrine_Resource_Request($data);
|
||||
$funcName = 'execute' . Doctrine::classify($request->get('action'));
|
||||
|
||||
if (method_exists($this, $funcName)) {
|
||||
$result = $this->$funcName($requestObj);
|
||||
$validateFuncName = 'validate' . Doctrine::classify($request->get('action'));
|
||||
|
||||
$errors = $this->$validateFuncName($request);
|
||||
|
||||
if ($this->validate($errors)) {
|
||||
$result = $this->$funcName($request);
|
||||
|
||||
return Doctrine_Parser::dump($result, 'xml');
|
||||
}
|
||||
} else {
|
||||
throw new Doctrine_Resource_Exception('Unknown Doctrine Resource Server function');
|
||||
}
|
||||
|
||||
if ($result) {
|
||||
return Doctrine_Parser::dump($result, $format);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public function run($request)
|
||||
|
@ -119,19 +119,6 @@ class Doctrine_Resource_Table
|
||||
}
|
||||
}
|
||||
|
||||
public function getRelationByClassName($name)
|
||||
{
|
||||
$relations = $this->getRelations();
|
||||
|
||||
foreach ($relations as $relation) {
|
||||
if ($relation['class'] === $name) {
|
||||
return $relation;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getIdentifier()
|
||||
{
|
||||
$identifier = array();
|
||||
|
@ -1,9 +1,7 @@
|
||||
<?php
|
||||
require_once('playground.php');
|
||||
|
||||
$action = isset($_REQUEST['action']) ? $_REQUEST['action']:'client';
|
||||
|
||||
if ($action == 'server') {
|
||||
if (isset($_REQUEST['server'])) {
|
||||
require_once('connection.php');
|
||||
require_once('models.php');
|
||||
require_once('data.php');
|
||||
@ -15,62 +13,15 @@ if ($action == 'server') {
|
||||
$server->run($_REQUEST);
|
||||
|
||||
} else {
|
||||
$url = 'http://localhost/~jwage/doctrine_trunk/playground/index.php?action=server';
|
||||
$config = array('format' => 'yml');
|
||||
$url = 'http://localhost/~jwage/doctrine_trunk/playground/index.php?server';
|
||||
$config = array('format' => 'xml');
|
||||
|
||||
// Instantiate a new client
|
||||
$client = Doctrine_Resource_Client::getInstance($url, $config);
|
||||
|
||||
/*
|
||||
$query = new Doctrine_Resource_Query();
|
||||
$users = $query->from('User u, u.Group g')->execute();
|
||||
|
||||
print_r($users->toArray(true));
|
||||
*/
|
||||
$users = $query->from('User u')->execute();
|
||||
|
||||
/*
|
||||
$group = new Group();
|
||||
$group->name = 'Jon';
|
||||
$group->save();
|
||||
|
||||
print_r($group->toArray());
|
||||
*/
|
||||
|
||||
//$client->printSchema();
|
||||
|
||||
/*
|
||||
// Retrieve a models table object
|
||||
$table = $client->getTable('User');
|
||||
|
||||
$user = new User();
|
||||
$user->name = 'Jon Wage';
|
||||
|
||||
$user->Email->address = 'jonwage@gmail.com';
|
||||
|
||||
$phone = $user->Phonenumber[0];
|
||||
$phone->phonenumber = '555-5555';
|
||||
|
||||
$phone = $user->Phonenumber[1];
|
||||
$phone->phonenumber = '555-55555';
|
||||
|
||||
$user->Phonenumber[2]->phonenumber = '555';
|
||||
|
||||
$user->Account->amount = 50.00;
|
||||
|
||||
$user->Account->amount = 25.25;
|
||||
|
||||
$address = $user->Address[0];
|
||||
|
||||
$address->address = '112 2nd Ave North';
|
||||
|
||||
$album = $user->Album[0];
|
||||
$album->name = 'test album';
|
||||
|
||||
$song = $album->Song[0];
|
||||
$song->title = 'test author';
|
||||
|
||||
$user->save();
|
||||
|
||||
print_r($user->toArray(true));
|
||||
*/
|
||||
print_r($users->toArray());
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user