Browscap\Helper\CollectionCreator::createDataCollection PHP Method

createDataCollection() public method

Create and populate a data collection object from a resource folder
public createDataCollection ( string $resourceFolder ) : DataCollection
$resourceFolder string
return Browscap\Data\DataCollection
    public function createDataCollection($resourceFolder)
    {
        if (null === $this->collection) {
            throw new \LogicException('An instance of \\Browscap\\Data\\DataCollection is required for this function. ' . 'Please set it with setDataCollection');
        }
        $this->getLogger()->debug('add platform file');
        $this->collection->addDevicesFile($resourceFolder . '/devices.json')->addPlatformsFile($resourceFolder . '/platforms.json')->addEnginesFile($resourceFolder . '/engines.json')->addDefaultProperties($resourceFolder . '/core/default-properties.json')->addDefaultBrowser($resourceFolder . '/core/default-browser.json');
        $uaSourceDirectory = $resourceFolder . '/user-agents';
        $iterator = new \RecursiveDirectoryIterator($uaSourceDirectory);
        foreach (new \RecursiveIteratorIterator($iterator) as $file) {
            /** @var $file \SplFileInfo */
            if (!$file->isFile() || $file->getExtension() !== 'json') {
                continue;
            }
            $this->getLogger()->debug('add source file ' . $file->getPathname());
            $this->collection->addSourceFile($file->getPathname());
        }
        return $this->collection;
    }

Usage Example

 /**
  * tests creating a data collection
  *
  * @group helper
  * @group sourcetest
  */
 public function testCreateDataCollection()
 {
     $mockCollection = $this->getMock('\\Browscap\\Data\\DataCollection', array('addPlatformsFile', 'addSourceFile', 'addEnginesFile', 'addDevicesFile'), array(), '', false);
     $mockCollection->expects(self::any())->method('addPlatformsFile')->will(self::returnSelf());
     $mockCollection->expects(self::any())->method('addEnginesFile')->will(self::returnSelf());
     $mockCollection->expects(self::any())->method('addDevicesFile')->will(self::returnSelf());
     $mockCollection->expects(self::any())->method('addSourceFile')->will(self::returnSelf());
     $this->object->setLogger($this->logger)->setDataCollection($mockCollection);
     $result = $this->object->createDataCollection(__DIR__ . '/../../fixtures');
     self::assertInstanceOf('\\Browscap\\Data\\DataCollection', $result);
     self::assertSame($mockCollection, $result);
 }
All Usage Examples Of Browscap\Helper\CollectionCreator::createDataCollection