ListObject::__construct PHP Method

__construct() public method

constructor For blank lists the start element index ($p_start) is smaller than 0.
public __construct ( integer $p_start, string $p_parameters = [] )
$p_start integer
$p_parameters string
    public function __construct($p_start = 0, $p_parameters = array())
    {
        /**
         * For blank lists the start element index ($p_start) is smaller
         * than 0.
         */
        if ($p_start < 0) {
            $this->m_start = -1;
            $this->m_limit = -1;
            $this->m_columns = 0;
            $this->m_objects = new MyArrayObject(array());
            return;
        }
        $this->m_id = null;
        /**
         * Processes the input parameters passed in an array; drops the invalid
         * parameters and parameters with invalid values. Returns an array of
         * valid parameters.
         */
        $parameters = $this->ProcessParameters($p_parameters);
        /**
         * Set common parameters:
         * - start element index (m_start)
         * - maximum list length (m_limit)
         * - list columns (m_columns)
         * - constraints string (m_constraintsStr)
         * - order string (m_orderStr)
         * - list name (m_name)
         */
        $this->m_start = is_numeric($p_start) ? (int) $p_start : 0;
        $this->m_limit = isset($parameters['length']) ? (int) $parameters['length'] : 0;
        $this->m_columns = isset($parameters['columns']) ? (int) $parameters['columns'] : 0;
        $this->m_constraintsStr = isset($parameters['constraints']) ? $parameters['constraints'] : '';
        $this->m_orderStr = isset($parameters['order']) ? $parameters['order'] : '';
        $name = isset($parameters['name']) ? $parameters['name'] : '';
        $this->m_name = is_string($name) && trim($name) != '' ? $name : $this->defaultName();
        /**
         * Process the list constraints.
         */
        $constraints = $this->ProcessConstraints(self::ParseConstraintsString($this->m_constraintsStr));
        if ($constraints === false || $parameters === false) {
            $this->m_totalCount = 0;
            $this->m_objects = new MyArrayObject(array());
            $this->m_hasNextElements = false;
            return;
        }
        $this->m_parameters = $parameters;
        if (isset($constraints)) {
            $this->m_constraints = array_merge($this->m_constraints, $constraints);
        }
        /**
         * Process order constraints.
         */
        $this->m_order = $this->ProcessOrder(ListObject::ParseConstraintsString($this->m_orderStr));
        $objects = $this->CreateList($this->m_start, $this->m_limit, $parameters, $this->m_totalCount);
        if (!is_array($objects)) {
            $objects = array();
        }
        $this->m_objects = new MyArrayObject($objects);
        $this->m_hasNextElements = $this->m_totalCount > $this->m_start + $this->getLength();
    }

Usage Example

Ejemplo n.º 1
0
 /**
  * @param int $start
  * @param array $params
  */
 public function __construct($start, $params)
 {
     if (isset($params['user'])) {
         $this->user = (int) $params['user'];
     }
     parent::__construct($start, $params);
 }