Вход Регистрация
Файл: framework/model/DataModel.php
Строк: 40
<?php

/**
 * Representation of a DataModel - a collection of DataLists for each different
 * data type.
 *
 * Usage:
 * <code>
 * $model = new DataModel;
 * $mainMenu = $model->SiteTree->where('"ParentID" = 0 AND "ShowInMenus" = 1');
 * </code>
 *
 * @package framework
 * @subpackage model
 */
class DataModel {

    
/**
     * @var DataModel
     */
    
protected static $inst;

    
/**
     * @var array $customDataLists
     */
    
protected $customDataLists = array();

    
/**
     * Get the global DataModel.
     *
     * @return DataModel
     */
    
public static function inst() {
        if(!
self::$inst) {
            
self::$inst = new self;
        }

        return 
self::$inst;
    }

    
/**
     * Set the global DataModel, used when data is requested from static
     * methods.
     *
     * @return DataModel
     */
    
public static function set_inst(DataModel $inst) {
        
self::$inst $inst;
    }

    
/**
     * @param string
     *
     * @return DataList
     */
    
public function __get($class) {
        if(isset(
$this->customDataLists[$class])) {
            return clone 
$this->customDataLists[$class];
        } else {
            
$list DataList::create($class);
            
$list->setDataModel($this);

            return 
$list;
        }
    }

    
/**
     * @param string
     * @param DataList
     */
    
public function __set($class$item) {
        
$item = clone $item;
        
$item->setDataModel($this);
        
$this->customDataLists[$class] = $item;
    }

}
Онлайн: 2
Реклама