Jackalope\RepositoryFactoryJackrabbit::getRepository PHP 메소드

getRepository() 공개 메소드

{@inheritDoc} Jackrabbit repositories have no default repository, passing null as parameters will always return null.
public getRepository ( array $parameters = null )
$parameters array
    public function getRepository(array $parameters = null)
    {
        if (null === $parameters) {
            throw new ConfigurationException('Jackalope-jackrabbit needs parameters');
        }
        // check if we have all required parameters
        if (count(array_diff_key(self::$required, $parameters))) {
            throw new ConfigurationException('A required parameter is missing: ' . implode(', ', array_keys(array_diff_key(self::$required, $parameters))));
        }
        // check if we have any unknown parameters
        if (count(array_diff_key($parameters, self::$required, self::$optional))) {
            throw new ConfigurationException('Additional unknown parameters found: ' . implode(', ', array_keys(array_diff_key($parameters, self::$required, self::$optional))));
        }
        if (isset($parameters['jackalope.factory'])) {
            $factory = $parameters['jackalope.factory'] instanceof FactoryInterface ? $parameters['jackalope.factory'] : new $parameters['jackalope.factory']();
        } else {
            $factory = new Jackrabbit\Factory();
        }
        $uri = $parameters['jackalope.jackrabbit_uri'];
        if ('/' !== substr($uri, -1, 1)) {
            $uri .= '/';
        }
        $transport = $factory->get('Transport\\Jackrabbit\\Client', array($uri));
        if (isset($parameters['jackalope.default_header'])) {
            $transport->addDefaultHeader($parameters['jackalope.default_header']);
        }
        if (isset($parameters['jackalope.jackrabbit_expect'])) {
            $transport->sendExpect($parameters['jackalope.jackrabbit_expect']);
        }
        if (isset($parameters['jackalope.check_login_on_server'])) {
            $transport->setCheckLoginOnServer($parameters['jackalope.check_login_on_server']);
        }
        if (isset($parameters['jackalope.logger'])) {
            $transport = $factory->get('Transport\\Jackrabbit\\LoggingClient', array($transport, $parameters['jackalope.logger']));
        }
        $curlOptions = array_key_exists('jackalope.jackrabbit_curl_options', $parameters) ? $parameters['jackalope.jackrabbit_curl_options'] : array();
        if (isset($parameters['jackalope.jackrabbit_force_http_version_10'])) {
            $curlOptions[CURLOPT_HTTP_VERSION] = true;
        }
        if (count($curlOptions)) {
            $transport->addCurlOptions($curlOptions);
        }
        $options['stream_wrapper'] = empty($parameters['jackalope.disable_stream_wrapper']);
        if (isset($parameters[Session::OPTION_AUTO_LASTMODIFIED])) {
            $options[Session::OPTION_AUTO_LASTMODIFIED] = $parameters[Session::OPTION_AUTO_LASTMODIFIED];
        }
        return new Repository($factory, $transport, $options);
    }

Usage Example

예제 #1
0
 public function getRepository(Config $config)
 {
     $params = ['jackalope.jackrabbit_uri' => $config['repo_url']];
     $factory = new RepositoryFactoryJackrabbit();
     $repository = $factory->getRepository($params);
     return $repository;
 }
All Usage Examples Of Jackalope\RepositoryFactoryJackrabbit::getRepository
RepositoryFactoryJackrabbit