Nqxcode\LuceneSearch\Model\Config::__construct PHP Method

__construct() public method

Create configuration for models.
public __construct ( array $configuration, Nqxcode\LuceneSearch\Model\Factory $modelFactory )
$configuration array
$modelFactory Nqxcode\LuceneSearch\Model\Factory
    public function __construct(array $configuration, Factory $modelFactory)
    {
        if (empty($configuration)) {
            throw new \InvalidArgumentException('Configurations of models are empty.');
        }
        $this->modelFactory = $modelFactory;
        foreach ($configuration as $className => $options) {
            $fields = array_get($options, 'fields', []);
            $optionalAttributes = array_get($options, 'optional_attributes', []);
            $boost = array_get($options, 'boost', true);
            if (count($fields) == 0 && count($optionalAttributes) == 0) {
                throw new \InvalidArgumentException("Parameter 'fields' and/or 'optional_attributes ' for '{$className}' class must be specified.");
            }
            $modelRepository = $modelFactory->newInstance($className);
            $classUid = $modelFactory->classUid($className);
            $this->configuration[] = ['repository' => $modelRepository, 'class_uid' => $classUid, 'fields' => $fields, 'optional_attributes' => $optionalAttributes, 'boost' => $boost, 'primary_key' => array_get($options, 'primary_key', 'id')];
        }
    }