setCache() public method

Sets a cache instance
public setCache ( BrowscapPHP\Cache\BrowscapCacheInterface | WurflCache\Adapter\AdapterInterface $cache ) : Browscap
$cache BrowscapPHP\Cache\BrowscapCacheInterface | WurflCache\Adapter\AdapterInterface
return Browscap
コード例 #1
0
ファイル: UserAgentsTest.php プロジェクト: browscap/browscap
 /**
  * This method is called before the first test of this test class is run.
  */
 public static function setUpBeforeClass()
 {
     // First, generate the INI files
     $buildNumber = time();
     $resourceFolder = __DIR__ . '/../../resources/';
     self::$buildFolder = __DIR__ . '/../../build/browscap-ua-test-' . $buildNumber . '/build/';
     $cacheFolder = __DIR__ . '/../../build/browscap-ua-test-' . $buildNumber . '/cache/';
     // create build folder if it does not exist
     if (!file_exists(self::$buildFolder)) {
         mkdir(self::$buildFolder, 0777, true);
     }
     if (!file_exists($cacheFolder)) {
         mkdir($cacheFolder, 0777, true);
     }
     $logger = new Logger('browscap');
     $logger->pushHandler(new NullHandler(Logger::DEBUG));
     $buildGenerator = new BuildGenerator($resourceFolder, self::$buildFolder);
     $writerCollectionFactory = new PhpWriterFactory();
     $writerCollection = $writerCollectionFactory->createCollection($logger, self::$buildFolder);
     $buildGenerator->setLogger($logger)->setCollectionCreator(new CollectionCreator())->setWriterCollection($writerCollection);
     $buildGenerator->run($buildNumber, false);
     $cache = new File([File::DIR => $cacheFolder]);
     self::$browscap = new Browscap();
     self::$browscap->setCache($cache)->setLogger($logger);
     self::$browscapUpdater = new BrowscapUpdater();
     self::$browscapUpdater->setCache($cache)->setLogger($logger);
     self::$propertyHolder = new PropertyHolder();
 }
コード例 #2
0
 /**
  * This method is called before the first test of this test class is run.
  *
  * @since Method available since Release 3.4.0
  */
 public static function setUpBeforeClass()
 {
     $objectIniPath = ini_get('browscap');
     if (!is_file($objectIniPath)) {
         self::markTestSkipped('browscap not defined in php.ini');
     }
     // Now, load an INI file into BrowscapPHP\Browscap for testing the UAs
     self::$object = new Browscap();
     $cacheAdapter = new Memory();
     $cache = new BrowscapCache($cacheAdapter);
     $cache->flush();
     self::$object->setCache($cache)->convertFile($objectIniPath);
 }
コード例 #3
0
 protected function getParserWithColdCache($type)
 {
     $filename = 'php_browscap.ini';
     if ($type != '') {
         $filename = $type . '_' . $filename;
     }
     $cache = new \WurflCache\Adapter\Memory();
     $browscap = new Browscap();
     $browscap->setCache($cache);
     return $browscap;
 }
コード例 #4
0
ファイル: ServiceProvider.php プロジェクト: nodes-php/core
 /**
  * Register browscap.
  *
  * @author Morten Rugaard <*****@*****.**>
  *
  * @return void
  */
 protected function registerBrowscap()
 {
     $this->app->singleton(Browscap::class, function ($app) {
         $browscap = new Browscap();
         // Cache for 90 days
         $browscap->setCache(new BrowscapCache(new CacheFile([CacheFile::DIR => storage_path('framework/browscap')])), 7776000);
         // Automatically check for updates
         $browscap->update();
         return $browscap;
     });
 }
コード例 #5
0
 /**
  *
  */
 public function testGetBrowserWithDefaultResult()
 {
     $formatter = $this->getMockBuilder(\BrowscapPHP\Formatter\PhpGetBrowser::class)->disableOriginalConstructor()->setMethods(['getData'])->getMock();
     $formatter->expects(self::once())->method('getData')->will(self::returnValue(null));
     $parser = $this->getMockBuilder(\BrowscapPHP\Parser\Ini::class)->disableOriginalConstructor()->setMethods(['getBrowser'])->getMock();
     $parser->expects(self::once())->method('getBrowser')->will(self::returnValue(null));
     $cache = $this->getMockBuilder(\BrowscapPHP\Cache\BrowscapCache::class)->disableOriginalConstructor()->setMethods(['getVersion'])->getMock();
     $cache->expects(self::once())->method('getVersion')->will(self::returnValue(1));
     $this->object->setFormatter($formatter);
     $this->object->setParser($parser);
     $this->object->setCache($cache);
     $result = $this->object->getBrowser('Mozilla/5.0 (compatible; Ask Jeeves/Teoma)');
     self::assertNull($result);
 }
コード例 #6
0
ファイル: BrowscapTest.php プロジェクト: wosunny/browscap-php
 /**
  *
  */
 public function testCheckUpdateWithNewerVersion()
 {
     $logger = $this->getMock('\\Monolog\\Logger', array(), array(), '', false);
     $this->object->setLogger($logger);
     $loader = $this->getMock('\\BrowscapPHP\\Helper\\IniLoader', array('setRemoteFilename', 'setOptions', 'setLogger', 'load', 'getRemoteVersion'), array(), '', false);
     $loader->expects(self::once())->method('setRemoteFilename')->will(self::returnSelf());
     $loader->expects(self::once())->method('setOptions')->will(self::returnSelf());
     $loader->expects(self::once())->method('setLogger')->will(self::returnSelf());
     $loader->expects(self::never())->method('load')->will(self::returnValue(false));
     $loader->expects(self::once())->method('getRemoteVersion')->will(self::returnValue(6001));
     $this->object->setLoader($loader);
     $map = array(array('browscap.time', false, null, null), array('browscap.version', false, null, 6000));
     $cache = $this->getMock('\\BrowscapPHP\\Cache\\BrowscapCache', array('getItem', 'hasItem', 'setItem'), array(), '', false);
     $cache->expects(self::any())->method('getItem')->will(self::returnValueMap($map));
     $cache->expects(self::any())->method('hasItem')->will(self::returnValue(true));
     $cache->expects(self::never())->method('setItem')->will(self::returnValue(false));
     $this->object->setCache($cache);
     self::assertSame(6000, $this->object->checkUpdate());
 }
コード例 #7
0
 /**
  * @expectedException \BrowscapPHP\Exception\FetcherException
  * @expectedExceptionMessage Could not fetch HTTP resource "http://browscap.org/stream?q=PHP_BrowscapINI":
  */
 public function testUpdate()
 {
     if (class_exists('\\Browscap\\Browscap')) {
         self::markTestSkipped('if the \\Browscap\\Browscap class is available the browscap.ini file is not updated from a remote ' . 'location');
     }
     $logger = $this->getMock('\\Monolog\\Logger', array(), array(), '', false);
     $this->object->setLogger($logger);
     $loader = $this->getMock('\\BrowscapPHP\\Helper\\IniLoader', array('setRemoteFilename', 'setOptions', 'setLogger', 'load'), array(), '', false);
     $loader->expects(self::once())->method('setRemoteFilename')->will(self::returnSelf());
     $loader->expects(self::once())->method('setOptions')->will(self::returnSelf());
     $loader->expects(self::once())->method('setLogger')->will(self::returnSelf());
     $loader->expects(self::once())->method('load')->will(self::returnValue(false));
     $this->object->setLoader($loader);
     $this->object->setLoader($loader);
     $map = array(array('browscap.time', false, null, null), array('browscap.version', false, null, null));
     $cache = $this->getMock('\\WurflCache\\Adapter\\Memory', array('getItem'), array(), '', false);
     $cache->expects(self::any())->method('getItem')->will(self::returnValueMap($map));
     $this->object->setCache($cache);
     $this->object->update();
 }
コード例 #8
0
use BrowscapPHP\Browscap;
use BrowscapPHP\Helper\IniLoader;
use WurflCache\Adapter\File;
/*
 * Browscap cache init
 */
include 'bootstrap.php';
/*
 * Full
 */
echo '.';
$cache = new File([File::DIR => '../myCache/.tmp/browscap/full']);
$bc = new Browscap();
$bc->setCache($cache);
$bc->convertFile('data/full_php_browscap.ini');
/*
 * Lite
 */
echo '.';
$cache = new File([File::DIR => '../myCache/.tmp/browscap/lite']);
$bc = new Browscap();
$bc->setCache($cache);
$bc->convertFile('data/lite_php_browscap.ini');
/*
 * PHP
 */
echo '.';
$cache = new File([File::DIR => '../myCache/.tmp/browscap/php']);
$bc = new Browscap();
$bc->setCache($cache);
$bc->convertFile('data/php_browscap.ini');
コード例 #9
0
ファイル: ComposerHook.php プロジェクト: mimmi20/detector
 /**
  * Generate a build for build number specified
  *
  * @param string                   $buildNumber
  * @param \Composer\IO\IOInterface $io
  * @param bool                     $debug
  */
 public static function createBuild($buildNumber, IOInterface $io = null, $debug = false)
 {
     $buildFolder = 'build/build-' . $buildNumber . '/';
     $resourceFolder = 'vendor/browscap/browscap/resources/';
     if (!file_exists($buildFolder)) {
         if ($io) {
             $io->write('  - Creating build folder');
         }
         mkdir($buildFolder, 0775, true);
     }
     // Create a logger
     if ($io) {
         $io->write('  - Setting up logging');
     }
     $loggerHelper = new LoggerHelper();
     $logger = $loggerHelper->create($debug);
     $collectionCreator = new CollectionCreator();
     if ($io) {
         $io->write('  - Creating writer collection');
     }
     $writerCollectionFactory = new FullCollectionFactory();
     $writerCollection = $writerCollectionFactory->createCollection($logger, $buildFolder);
     // Generate the actual browscap.ini files
     if ($io) {
         $io->write('  - Creating actual build');
     }
     $buildGenerator = new BuildGenerator($resourceFolder, $buildFolder);
     $buildGenerator->setLogger($logger);
     $buildGenerator->setCollectionCreator($collectionCreator);
     $buildGenerator->setWriterCollection($writerCollection);
     $buildGenerator->run($buildNumber, false);
     if ($io) {
         $io->write('  - Creating cache');
     }
     $iniFile = $buildFolder . 'full_php_browscap.ini';
     $cache = new File(array(File::DIR => 'cache/'));
     $browscap = new Browscap();
     $browscap->setCache($cache)->setLogger($logger);
     $browscap->convertFile($iniFile);
 }