Browscap\Writer\Factory\CustomWriterFactory::createCollection PHP Method

createCollection() public method

public createCollection ( Psr\Log\LoggerInterface $logger, string $buildFolder, string | null $file = null, array $fields = [], string $format = self::OUTPUT_FORMAT_PHP ) : WriterCollection
$logger Psr\Log\LoggerInterface
$buildFolder string
$file string | null
$fields array
$format string
return Browscap\Writer\WriterCollection
    public function createCollection(LoggerInterface $logger, $buildFolder, $file = null, $fields = [], $format = self::OUTPUT_FORMAT_PHP)
    {
        $writerCollection = new WriterCollection();
        if (null === $file) {
            switch ($format) {
                case self::OUTPUT_FORMAT_ASP:
                    $file = $buildFolder . '/full_browscap.ini';
                    break;
                case self::OUTPUT_FORMAT_CSV:
                    $file = $buildFolder . '/browscap.csv';
                    break;
                case self::OUTPUT_FORMAT_XML:
                    $file = $buildFolder . '/browscap.xml';
                    break;
                case self::OUTPUT_FORMAT_JSON:
                    $file = $buildFolder . '/browscap.json';
                    break;
                case self::OUTPUT_FORMAT_PHP:
                default:
                    $file = $buildFolder . '/full_php_browscap.ini';
                    break;
            }
        }
        $filter = new CustomFilter($fields);
        switch ($format) {
            case self::OUTPUT_FORMAT_ASP:
                $writer = new Writer\IniWriter($file);
                $formatter = new Formatter\AspFormatter();
                break;
            case self::OUTPUT_FORMAT_CSV:
                $writer = new Writer\CsvWriter($file);
                $formatter = new Formatter\CsvFormatter();
                break;
            case self::OUTPUT_FORMAT_XML:
                $writer = new Writer\XmlWriter($file);
                $formatter = new Formatter\XmlFormatter();
                break;
            case self::OUTPUT_FORMAT_JSON:
                $writer = new Writer\JsonWriter($file);
                $formatter = new Formatter\JsonFormatter();
                break;
            case self::OUTPUT_FORMAT_PHP:
            default:
                $writer = new Writer\IniWriter($file);
                $formatter = new Formatter\PhpFormatter();
                break;
        }
        $writer->setLogger($logger)->setFormatter($formatter->setFilter($filter))->setFilter($filter);
        $writerCollection->addWriter($writer);
        return $writerCollection;
    }

Usage Example

 /**
  * runs before the build
  *
  * @param array       $fields
  * @param string|null $file
  * @param string      $format
  *
  * @return \Browscap\Generator\BuildCustomFileGenerator
  */
 protected function preBuild($fields = [], $file = null, $format = self::OUTPUT_FORMAT_PHP)
 {
     parent::preBuild();
     $this->getLogger()->info('started creating the custom output file');
     if (null === $this->collectionCreator) {
         $this->setCollectionCreator(new CollectionCreator());
     }
     if (null === $this->writerCollection) {
         $factory = new Writer\Factory\CustomWriterFactory();
         $this->setWriterCollection($factory->createCollection($this->getLogger(), $this->buildFolder, $file, $fields, $format));
     }
     return $this;
 }
All Usage Examples Of Browscap\Writer\Factory\CustomWriterFactory::createCollection
CustomWriterFactory