Ejemplo n.º 1
0
 /**
  * Allows the class to be configured with custom dependencies.
  *
  * @param array $config An array containing a `'classes'` key.
  * @return void
  */
 public static function config(array $config = array())
 {
     if (isset($config['classes'])) {
         static::$_classes = array_merge(static::$_classes, $config['classes']);
     }
     return array('classes' => static::$_classes);
 }
Ejemplo n.º 2
0
	public static function config($config = array()) {
		if (!$config) {
			return array('classes' => static::$_classes);
		}
		if (isset($config['classes'])) {
			static::$_classes = $config['classes'] + static::$_classes;
		}
	}
Ejemplo n.º 3
0
 /**
  * Configures the class or retrieves current class configuration.
  *
  * @param array $config Available configuration options are:
  *        - `'classes'` _array_: May be used to inject dependencies.
  *        - `'secret'` _string_: *Must* be provided.
  * @return array|void If `$config` is empty, returns an array with the current configurations.
  */
 public static function config(array $config = array())
 {
     if (!$config) {
         return array('classes' => static::$_classes, 'secret' => static::$_secret);
     }
     if (isset($config['classes'])) {
         static::$_classes = $config['classes'] + static::$_classes;
     }
     if (isset($config['secret'])) {
         static::$_secret = $config['secret'];
     }
 }
Ejemplo n.º 4
0
 /**
  * Configures the model for use. This method is called by `Model::__init()`.
  *
  * This method will set the `Model::$_schema`, `Model::$_meta`, `Model::$_finders` class
  * attributes, as well as obtain a handle to the configured persistent storage connection.
  *
  * @param array $options Possible options are:
  * - `meta`: Meta-information for this model, such as the connection.
  * - `finders`: Custom finders for this model.
  * @return void
  */
 public static function config(array $options = array())
 {
     if (static::_isBase($class = get_called_class())) {
         return;
     }
     $self = static::_object();
     $query = array();
     $meta = array();
     $schema = array();
     $source = array();
     $classes = static::$_classes;
     foreach (static::_parents() as $parent) {
         $parentConfig = get_class_vars($parent);
         foreach (array('meta', 'schema', 'classes', 'query') as $key) {
             if (isset($parentConfig["_{$key}"])) {
                 ${$key} += $parentConfig["_{$key}"];
             }
         }
         if ($parent == __CLASS__) {
             break;
         }
     }
     $tmp = $options + $self->_meta + $meta;
     $source = array('meta' => array(), 'finders' => array(), 'schema' => array());
     if ($tmp['connection']) {
         $conn = $classes['connections']::get($tmp['connection']);
         $source = ($conn ? $conn->configureClass($class) : array()) + $source;
     }
     static::$_classes = $classes;
     $name = static::_name();
     $local = compact('class', 'name') + $options + $self->_meta;
     $self->_meta = $local + $source['meta'] + $meta;
     $self->_meta['initialized'] = false;
     $self->_schema += $schema + $source['schema'];
     $self->_finders += $source['finders'] + $self->_findFilters();
     static::_relations();
 }
 /**
  * Reset the class.
  */
 public static function reset()
 {
     static::$_library = true;
     static::$_messages = null;
     static::$_classes = array('session' => 'lithium\\storage\\Session');
     static::$_session = array('config' => 'default', 'base' => null);
 }
Ejemplo n.º 6
0
 /**
  * Configures the Model.
  *
  * @param array $config Possible options are:
  *                      - `'classes'`     _array_ : The classes dependency array.
  *                      - `'schema'`      _object_: The schema instance to use.
  *                      - `'validator'`   _object_: The validator instance to use.
  *                      - `'finders'`     _object_: The finders instance to use.
  *                      - `'connection'`  _object_: The connection instance to use.
  *                      - `'conventions'` _object_: The conventions instance to use.
  */
 public static function config($config = [])
 {
     $defaults = ['classes' => static::$_classes, 'schema' => null, 'validator' => null, 'finders' => null, 'query' => [], 'connection' => null, 'conventions' => null];
     $config = Set::merge($defaults, $config);
     static::$_classes = $config['classes'];
     static::conventions($config['conventions']);
     static::connection($config['connection']);
     static::schema($config['schema']);
     static::validator($config['validator']);
     static::finders($config['finders']);
     static::query($config['query']);
 }