Graby\Graby::__construct PHP Method

__construct() public method

public __construct ( array $config = [], Client $client = null, ConfigBuilder $configBuilder = null )
$config array
$client GuzzleHttp\Client Guzzle client
$configBuilder Graby\SiteConfig\ConfigBuilder
    public function __construct($config = array(), Client $client = null, ConfigBuilder $configBuilder = null)
    {
        $resolver = new OptionsResolver();
        $resolver->setDefaults(array('debug' => false, 'rewrite_relative_urls' => true, 'singlepage' => true, 'multipage' => true, 'error_message' => '[unable to retrieve full-text content]', 'error_message_title' => 'No title found', 'allowed_urls' => array(), 'blocked_urls' => array(), 'xss_filter' => true, 'content_type_exc' => array('application/zip' => array('action' => 'link', 'name' => 'ZIP'), 'application/pdf' => array('action' => 'link', 'name' => 'PDF'), 'image' => array('action' => 'link', 'name' => 'Image'), 'audio' => array('action' => 'link', 'name' => 'Audio'), 'video' => array('action' => 'link', 'name' => 'Video'), 'text/plain' => array('action' => 'link', 'name' => 'Plain text')), 'content_links' => 'preserve', 'http_client' => array(), 'extractor' => array()));
        // @TODO: add more validation ? (setAllowedTypes)
        $resolver->setAllowedValues('content_links', array('preserve', 'footnotes', 'remove'));
        $this->config = $resolver->resolve($config);
        $this->debug = (bool) $this->config['debug'];
        $this->logger = new NullLogger();
        if ($this->debug) {
            $this->logger = new Logger('graby');
            $this->logger->pushHandler(new StreamHandler(dirname(__FILE__) . '/../log/graby.log'));
        }
        $this->configBuilder = $configBuilder;
        if (null === $this->configBuilder) {
            $this->configBuilder = new ConfigBuilder(isset($this->config['extractor']['config_builder']) ? $this->config['extractor']['config_builder'] : [], $this->logger);
        }
        $this->extractor = new ContentExtractor($this->config['extractor'], $this->logger, $this->configBuilder);
        $this->httpClient = new HttpClient($client ?: new Client(array('handler' => new SafeCurlHandler(), 'defaults' => array('cookies' => true))), $this->config['http_client'], $this->logger);
        $this->punycode = new Punycode();
    }