本文整理匯總了PHP中Doctrine_Record::option方法的典型用法代碼示例。如果您正苦於以下問題:PHP Doctrine_Record::option方法的具體用法?PHP Doctrine_Record::option怎麽用?PHP Doctrine_Record::option使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Doctrine_Record
的用法示例。
在下文中一共展示了Doctrine_Record::option方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: getRecordAsXml
/**
* Return a recrd as XML.
*
* In order to control how this is done set the "xml" option in a record.
* This option is an array that has the keys "ignore_fields" and "include_relations". Both of these are arrays that list the name of fields/relations to include/process.
*
* If you want to insert this xml as a part inside another xml send a
* SimpleXMLElement to the function. Because of the nature of SimpleXML the
* content you add to this element will be avilable after the function is
* complete.
*
* @param Doctrine_Record $record
* @param SimpleXMLElement $xml
* @return string Xml as string
*/
public static function getRecordAsXml(Doctrine_Record $record, SimpleXMlElement $incomming_xml = NULL)
{
$recordname = $record->getTable()->tableName;
if (!isset($incomming_xml)) {
$new_xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?><" . $recordname . "></" . $recordname . ">";
$xml = new SimpleXMLElement($new_xml_string);
} else {
$xml = $incomming_xml->addChild($recordname);
}
foreach ($record->obtainIdentifier() as $pk_field => $pk_value) {
$xml->addChild($pk_field, $pk_value);
}
$xml_options = $record->option("xml");
if (isset($xml_options["record_name"])) {
$recordname = $xml_options["record_name"];
}
foreach ($record->getData() as $field => $value) {
if (isset($xml_options["ignore_fields"]) && !in_array($field, $xml_options["ignore_fields"]) || !isset($xml_options["ignore_fields"])) {
if ($value instanceof Doctrine_Null) {
$xml->addChild($field);
} else {
$xml->addChild($field, $value);
}
}
}
if (!isset($xml_options["include_relations"])) {
return $xml->asXML();
}
$relations = $record->getTable()->getRelations();
foreach ($relations as $name => $relation) {
if (in_array($name, $xml_options["include_relations"])) {
$relation_type = $relation->getType();
$related_records = $record->get($name);
if ($relation_type == Doctrine_Relation::ONE && $related_records instanceof Doctrine_Record) {
Doctrine_Lib::getRecordAsXml($related_records, $xml);
} else {
Doctrine_Lib::getCollectionAsXml($related_records, $xml);
}
}
}
return $xml->asXML();
}