/** * 构造函数 * * @param QDB_ActiveRecord_Meta $meta * @param array $settings * * @access private */ function __construct(QDB_ActiveRecord_Meta $meta, array $settings) { parent::__construct($meta, $settings); if ($meta->idname_count > 1) { throw new QDB_ActiveRecord_CompositePKIncompatibleException($this->_meta->class_name, __CLASS__); } }
function __construct(QDB_ActiveRecord_Meta $meta, array $settings) { parent::__construct($meta, $settings); if (empty($this->_settings['props']) || !is_array($this->_settings['props'])) { throw new QException(__("Missing \"props\" parameter in \"%s\" Model", $meta->class_name)); } foreach ($this->_settings['props'] as $prop => &$_config) { if (!isset($_config['mapping_name'])) { $_config['mapping_name'] = "{$prop}_formatted"; } if (isset($this->_meta->prop[$_config['mapping_name']])) { throw new QException(__("\"%s\" prop has been set up, you must use another mapping name", $_config['mapping_name'])); } if (!isset($_config['formatter'])) { $_config['formatter'] = "serialize"; } $_config['prop_name'] = $prop; $this->_meta->setPropGetter($_config['mapping_name'], array("Model_Behavior_Formatter_{$_config['formatter']}", 'get'), $_config); $this->_meta->setPropSetter($_config['mapping_name'], array("Model_Behavior_Formatter_{$_config['formatter']}", 'set'), $_config); } }