Contao\Hybrid::__construct PHP Method

__construct() public method

Initialize the object
public __construct ( ContentModel | ModuleModel | FormModel $objElement, string $strColumn = 'main' )
$objElement ContentModel | ModuleModel | FormModel
$strColumn string
    public function __construct($objElement, $strColumn = 'main')
    {
        parent::__construct();
        // Store the parent element (see #4556)
        if ($objElement instanceof Model || $objElement instanceof Model\Collection) {
            /** @var ContentModel|ModuleModel|FormModel $objModel */
            $objModel = $objElement;
            if ($objModel instanceof Model\Collection) {
                $objModel = $objModel->current();
            }
            $this->objParent = $objModel;
        }
        if ($this->strKey == '' || $this->strTable == '') {
            return;
        }
        /** @var Model $strModelClass */
        $strModelClass = \Model::getClassFromTable($this->strTable);
        // Load the model
        if (class_exists($strModelClass)) {
            $objHybrid = $strModelClass::findByPk($objElement->{$this->strKey});
            if ($objHybrid === null) {
                return;
            }
            $this->objModel = $objHybrid;
        } else {
            $objHybrid = $this->Database->prepare("SELECT * FROM " . $this->strTable . " WHERE id=?")->limit(1)->execute($objElement->{$this->strKey});
            if ($objHybrid->numRows < 1) {
                return;
            }
        }
        $cssID = array();
        $this->arrData = $objHybrid->row();
        // Get the CSS ID from the parent element (!)
        $this->cssID = \StringUtil::deserialize($objElement->cssID, true);
        if (isset($objHybrid->attributes)) {
            $cssID = \StringUtil::deserialize($objHybrid->attributes, true);
        }
        // Override the CSS ID (see #305)
        if (!empty($this->cssID[0])) {
            $cssID[0] = $this->cssID[0];
        }
        // Merge the CSS classes (see #6011)
        if (!empty($this->cssID[1])) {
            $cssID[1] = trim($cssID[1] . ' ' . $this->cssID[1]);
        }
        $this->cssID = $cssID;
        $this->typePrefix = $objElement->typePrefix;
        $arrHeadline = \StringUtil::deserialize($objElement->headline);
        $this->headline = is_array($arrHeadline) ? $arrHeadline['value'] : $arrHeadline;
        $this->hl = is_array($arrHeadline) ? $arrHeadline['unit'] : 'h1';
        $this->strColumn = $strColumn;
    }