Prado\Web\UI\TTemplate::configureProperty PHP Метод

configureProperty() защищенный Метод

Configures a simple property for a component.
protected configureProperty ( $component, $name, $value )
    protected function configureProperty($component, $name, $value)
    {
        if (is_array($value)) {
            switch ($value[0]) {
                case self::CONFIG_DATABIND:
                    $component->bindProperty($name, $value[1]);
                    break;
                case self::CONFIG_EXPRESSION:
                    if ($component instanceof TControl) {
                        $component->autoBindProperty($name, $value[1]);
                    } else {
                        $setter = 'set' . $name;
                        $component->{$setter}($this->_tplControl->evaluateExpression($value[1]));
                    }
                    break;
                case self::CONFIG_TEMPLATE:
                    $setter = 'set' . $name;
                    $component->{$setter}($value[1]);
                    break;
                case self::CONFIG_ASSET:
                    // asset URL
                    $setter = 'set' . $name;
                    $url = $this->publishFilePath($this->_contextPath . DIRECTORY_SEPARATOR . $value[1]);
                    $component->{$setter}($url);
                    break;
                case self::CONFIG_PARAMETER:
                    // application parameter
                    $setter = 'set' . $name;
                    $component->{$setter}($this->getApplication()->getParameters()->itemAt($value[1]));
                    break;
                case self::CONFIG_LOCALIZATION:
                    $setter = 'set' . $name;
                    $component->{$setter}(Prado::localize($value[1]));
                    break;
                default:
                    // an error if reaching here
                    throw new TConfigurationException('template_tag_unexpected', $name, $value[1]);
                    break;
            }
        } else {
            if (substr($name, 0, 2) == 'js') {
                if ($value and !$value instanceof TJavaScriptLiteral) {
                    $value = new TJavaScriptLiteral($value);
                }
            }
            $setter = 'set' . $name;
            $component->{$setter}($value);
        }
    }