PHPExiftool\Tool\Command\ClassesBuilder::createTagClass PHP Метод

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

protected createTagClass ( $namespace, $classname, array $properties )
$properties array
    protected function createTagClass($namespace, $classname, array $properties)
    {
        if ($classname == 'Reserved') {
            return;
        }
        $namespace = self::generateNamespace('Tag\\' . $namespace);
        $classpath = sprintf('%s\\%s', $namespace, $classname);
        if (isset($this->classes[$classpath])) {
            foreach ($properties as $property => $value) {
                if ($this->classes[$classpath]->getProperty($property) != $value) {
                    if (in_array($property, array('Writable', 'flag_Binary', 'flag_List'))) {
                        $this->classes[$classpath]->setProperty($property, 'false');
                    } elseif ($property === 'Values') {
                        $new_value = array();
                        if (!is_array($this->classes[$classpath]->getProperty($property))) {
                            if (is_array($value)) {
                                $new_value = $value;
                            }
                        } else {
                            if (is_array($value) && $this->classes[$classpath]->getProperty($property) != $value) {
                                $new_value = array_merge($this->classes[$classpath]->getProperty($property), $value);
                            } else {
                                $new_value = $this->classes[$classpath]->getProperty($property);
                            }
                        }
                        $this->classes[$classpath]->setProperty($property, $new_value);
                    } else {
                        $this->classes[$classpath]->setProperty($property, 'mixed');
                    }
                }
            }
        } else {
            $this->classes[$classpath] = new Builder($namespace, $classname, $properties, 'AbstractTag', array('JMS\\Serializer\\Annotation\\ExclusionPolicy', '\\PHPExiftool\\Driver\\AbstractTag'), array('@ExclusionPolicy("all")'));
        }
        return;
    }