Example #1
0
	/**
	 * Creates a model instance
	 *
	 * @see Atomik_Model::__construct()
	 * @param 	array 			$values
	 * @param 	bool 			$new	
	 * @return 	Atomik_Model
	 */
	public function createInstance($values = array(), $new = true)
	{
		$className = $this->className;
		if ($className === null) {
			/** Atomik_Model */
			require_once 'Atomik/Model.php';
			$className = 'Atomik_Model';
		}
		
		$dataToFilter = array_intersect_key($values, $this->_fields);
		$data = array_diff_key($values, $this->_fields);
		foreach ($dataToFilter as $key => $value) {
			$data[$key] = $this->_fields[$key]->filterInput($value);
		}
		
		$this->_behaviourBroker->notifyBeforeCreateInstance($this, $data, $new);
		$instance = new $className($data, $new, $this);
		$this->_behaviourBroker->notifyAfterCreateInstance($this, $instance);
		
		return $instance;
	}