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

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

protected addModuleFileToJson ( ModuleFile $moduleFile, stdClass $jsonData )
$moduleFile Puli\Manager\Api\Module\ModuleFile
$jsonData stdClass
    protected function addModuleFileToJson(ModuleFile $moduleFile, stdClass $jsonData)
    {
        $mappings = $moduleFile->getPathMappings();
        $bindingDescriptors = $moduleFile->getBindingDescriptors();
        $typeDescriptors = $moduleFile->getTypeDescriptors();
        $dependencies = $moduleFile->getDependencies();
        $extra = $moduleFile->getExtraKeys();
        if (null !== $moduleFile->getModuleName()) {
            $jsonData->name = $moduleFile->getModuleName();
        }
        if (count($mappings) > 0) {
            $jsonData->resources = new stdClass();
            foreach ($mappings as $mapping) {
                $puliPath = $mapping->getRepositoryPath();
                $localPaths = $mapping->getPathReferences();
                $jsonData->resources->{$puliPath} = count($localPaths) > 1 ? $localPaths : reset($localPaths);
            }
        }
        if (count($bindingDescriptors) > 0) {
            uasort($bindingDescriptors, array(__CLASS__, 'compareBindingDescriptors'));
            $jsonData->bindings = new stdClass();
            foreach ($bindingDescriptors as $bindingDescriptor) {
                $binding = $bindingDescriptor->getBinding();
                $bindingData = new stdClass();
                $bindingData->_class = get_class($binding);
                // This needs to be moved to external classes to allow adding
                // custom binding classes at some point
                if ($binding instanceof ResourceBinding) {
                    $bindingData->query = $binding->getQuery();
                    if ('glob' !== $binding->getLanguage()) {
                        $bindingData->language = $binding->getLanguage();
                    }
                } elseif ($binding instanceof ClassBinding) {
                    $bindingData->class = $binding->getClassName();
                }
                $bindingData->type = $bindingDescriptor->getTypeName();
                // Don't include the default values of the binding type
                if ($binding->hasParameterValues(false)) {
                    $parameterData = $binding->getParameterValues(false);
                    ksort($parameterData);
                    $bindingData->parameters = (object) $parameterData;
                }
                $jsonData->bindings->{$bindingDescriptor->getUuid()->toString()} = $bindingData;
            }
        }
        if (count($typeDescriptors) > 0) {
            $bindingTypesData = array();
            foreach ($typeDescriptors as $typeDescriptor) {
                $type = $typeDescriptor->getType();
                $typeData = new stdClass();
                if ($typeDescriptor->getDescription()) {
                    $typeData->description = $typeDescriptor->getDescription();
                }
                if ($type->hasParameters()) {
                    $parametersData = array();
                    foreach ($type->getParameters() as $parameter) {
                        $parameterData = new stdClass();
                        if ($typeDescriptor->hasParameterDescription($parameter->getName())) {
                            $parameterData->description = $typeDescriptor->getParameterDescription($parameter->getName());
                        }
                        if ($parameter->isRequired()) {
                            $parameterData->required = true;
                        }
                        if (null !== $parameter->getDefaultValue()) {
                            $parameterData->default = $parameter->getDefaultValue();
                        }
                        $parametersData[$parameter->getName()] = $parameterData;
                    }
                    ksort($parametersData);
                    $typeData->parameters = (object) $parametersData;
                }
                $bindingTypesData[$type->getName()] = $typeData;
            }
            ksort($bindingTypesData);
            $jsonData->{'binding-types'} = (object) $bindingTypesData;
        }
        if (count($dependencies) > 0) {
            $jsonData->depend = $dependencies;
        }
        if (count($extra) > 0) {
            $jsonData->extra = (object) $extra;
        }
    }