Puli\Manager\Module\ModuleFileConverter::addJsonToModuleFile PHP Метод

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

protected addJsonToModuleFile ( stdClass $jsonData, ModuleFile $moduleFile )
$jsonData stdClass
$moduleFile Puli\Manager\Api\Module\ModuleFile
    protected function addJsonToModuleFile(stdClass $jsonData, ModuleFile $moduleFile)
    {
        if (isset($jsonData->name)) {
            $moduleFile->setModuleName($jsonData->name);
        }
        if (isset($jsonData->resources)) {
            foreach ($jsonData->resources as $path => $relativePaths) {
                $moduleFile->addPathMapping(new PathMapping($path, (array) $relativePaths));
            }
        }
        if (isset($jsonData->bindings)) {
            foreach ($jsonData->bindings as $uuid => $bindingData) {
                $binding = null;
                $class = isset($bindingData->_class) ? $bindingData->_class : 'Puli\\Discovery\\Binding\\ResourceBinding';
                // Move this code to external classes to allow use of custom
                // bindings
                switch ($class) {
                    case 'Puli\\Discovery\\Binding\\ClassBinding':
                        $binding = new ClassBinding($bindingData->class, $bindingData->type, isset($bindingData->parameters) ? (array) $bindingData->parameters : array(), Uuid::fromString($uuid));
                        break;
                    case 'Puli\\Discovery\\Binding\\ResourceBinding':
                        $binding = new ResourceBinding($bindingData->query, $bindingData->type, isset($bindingData->parameters) ? (array) $bindingData->parameters : array(), isset($bindingData->language) ? $bindingData->language : 'glob', Uuid::fromString($uuid));
                        break;
                    default:
                        continue 2;
                }
                $moduleFile->addBindingDescriptor(new BindingDescriptor($binding));
            }
        }
        if (isset($jsonData->{'binding-types'})) {
            foreach ((array) $jsonData->{'binding-types'} as $typeName => $data) {
                $parameters = array();
                $parameterDescriptions = array();
                if (isset($data->parameters)) {
                    foreach ((array) $data->parameters as $parameterName => $parameterData) {
                        $required = isset($parameterData->required) ? $parameterData->required : false;
                        $parameters[] = new BindingParameter($parameterName, $required ? BindingParameter::REQUIRED : BindingParameter::OPTIONAL, isset($parameterData->default) ? $parameterData->default : null);
                        if (isset($parameterData->description)) {
                            $parameterDescriptions[$parameterName] = $parameterData->description;
                        }
                    }
                }
                $moduleFile->addTypeDescriptor(new BindingTypeDescriptor(new BindingType($typeName, $parameters), isset($data->description) ? $data->description : null, $parameterDescriptions));
            }
        }
        if (isset($jsonData->depend)) {
            $moduleFile->setDependencies($jsonData->depend);
        }
        if (isset($jsonData->extra)) {
            $moduleFile->setExtraKeys((array) $jsonData->extra);
        }
    }