ZF\Apigility\Admin\Model\ModuleEntity::exchangeArray PHP Method

exchangeArray() public method

Populate object from array
public exchangeArray ( array $data )
$data array
    public function exchangeArray(array $data)
    {
        foreach ($data as $key => $value) {
            switch (strtolower($key)) {
                case 'module':
                case 'name':
                    $this->name = $value;
                    break;
                case 'namespace':
                    $this->namespace = $value;
                    break;
                case 'isvendor':
                case 'is_vendor':
                    $this->isVendor = (bool) $value;
                    break;
                case 'rest':
                    if (!is_array($value) && !$value instanceof Collection) {
                        throw new InvalidArgumentException(sprintf('REST services must be an array or ZF\\Hal\\Collection; received "%s"', is_object($value) ? get_class($value) : gettype($value)));
                    }
                    $this->restServices = $value;
                    break;
                case 'rpc':
                    if (!is_array($value) && !$value instanceof Collection) {
                        throw new InvalidArgumentException(sprintf('RPC services must be an array or ZF\\Hal\\Collection; received "%s"', is_object($value) ? get_class($value) : gettype($value)));
                    }
                    $this->rpcServices = $value;
                    break;
                case 'versions':
                    if (!is_array($value)) {
                        throw new InvalidArgumentException('Versions must be an array; received "%s"', is_object($value) ? get_class($value) : gettype($value));
                    }
                    $this->versions = $value;
                    break;
                case 'default_version':
                    $this->defaultVersion = (int) $value;
                    break;
            }
        }
    }

Usage Example

Example #1
0
    /**
     * Create a new API-First enabled module
     *
     * @param  array|object $data
     * @return ModuleEntity
     * @throws CreationException
     */
    public function create($data)
    {
        if (is_object($data)) {
            $data = (array) $data;
        }

        if (!isset($data['name'])) {
            throw new CreationException('Missing module name');
        }

        $version = isset($data['version']) ? $data['version'] : 1;
        $name    = $data['name'];
        $name    = str_replace('.', '\\', $name);
        if (!preg_match('/^[a-zA-Z][a-zA-Z0-9_]*(\\\+[a-zA-Z][a-zA-Z0-9_]*)?$/', $name)) {
            throw new CreationException('Invalid module name; must be a valid PHP namespace name');
        }

        if (false === $this->modules->createModule($name, $this->modulePathSpec)) {
            throw new CreationException('Unable to create module; check your paths and permissions');
        }

        $metadata = new ModuleEntity($name);
        $metadata->exchangeArray(array(
            'versions' => array($version),
        ));
        return $metadata;
    }
All Usage Examples Of ZF\Apigility\Admin\Model\ModuleEntity::exchangeArray