Exemple #1
0
 /**
  * Internal method to get capabilities of this adapter
  *
  * @return Capabilities
  */
 protected function internalGetCapabilities()
 {
     if ($this->capabilities === null) {
         $marker = new stdClass();
         $options = $this->getOptions();
         // detect metadata
         $metadata = array('mtime', 'filespec');
         if (!$options->getNoAtime()) {
             $metadata[] = 'atime';
         }
         if (!$options->getNoCtime()) {
             $metadata[] = 'ctime';
         }
         $capabilities = new Capabilities($this, $marker, array('supportedDatatypes' => array('NULL' => 'string', 'boolean' => 'string', 'integer' => 'string', 'double' => 'string', 'string' => true, 'array' => false, 'object' => false, 'resource' => false), 'supportedMetadata' => $metadata, 'minTtl' => 1, 'maxTtl' => 0, 'staticTtl' => false, 'ttlPrecision' => 1, 'expiredRead' => true, 'maxKeyLength' => 251, 'namespaceIsPrefix' => true, 'namespaceSeparator' => $options->getNamespaceSeparator()));
         // update capabilities on change options
         $this->getEventManager()->attach('option', function ($event) use($capabilities, $marker) {
             $params = $event->getParams();
             if (isset($params['namespace_separator'])) {
                 $capabilities->setNamespaceSeparator($marker, $params['namespace_separator']);
             }
             if (isset($params['no_atime']) || isset($params['no_ctime'])) {
                 $metadata = $capabilities->getSupportedMetadata();
                 if (isset($params['no_atime']) && !$params['no_atime']) {
                     $metadata[] = 'atime';
                 } elseif (isset($params['no_atime']) && ($index = array_search('atime', $metadata)) !== false) {
                     unset($metadata[$index]);
                 }
                 if (isset($params['no_ctime']) && !$params['no_ctime']) {
                     $metadata[] = 'ctime';
                 } elseif (isset($params['no_ctime']) && ($index = array_search('ctime', $metadata)) !== false) {
                     unset($metadata[$index]);
                 }
                 $capabilities->setSupportedMetadata($marker, $metadata);
             }
         });
         $this->capabilityMarker = $marker;
         $this->capabilities = $capabilities;
     }
     return $this->capabilities;
 }
Exemple #2
0
 /**
  * Internal method to get capabilities of this adapter
  *
  * @return Capabilities
  */
 protected function internalGetCapabilities()
 {
     if ($this->capabilities === null) {
         $marker = new stdClass();
         $capabilities = new Capabilities($this, $marker, array('supportedDatatypes' => array('NULL' => true, 'boolean' => true, 'integer' => true, 'double' => true, 'string' => true, 'array' => true, 'object' => 'object', 'resource' => false), 'supportedMetadata' => array('internal_key', 'atime', 'ctime', 'mtime', 'rtime', 'size', 'hits', 'ttl'), 'minTtl' => 1, 'maxTtl' => 0, 'staticTtl' => true, 'ttlPrecision' => 1, 'useRequestTime' => (bool) ini_get('apc.use_request_time'), 'expiredRead' => false, 'maxKeyLength' => 5182, 'namespaceIsPrefix' => true, 'namespaceSeparator' => $this->getOptions()->getNamespaceSeparator()));
         // update namespace separator on change option
         $this->getEventManager()->attach('option', function ($event) use($capabilities, $marker) {
             $params = $event->getParams();
             if (isset($params['namespace_separator'])) {
                 $capabilities->setNamespaceSeparator($marker, $params['namespace_separator']);
             }
         });
         $this->capabilities = $capabilities;
         $this->capabilityMarker = $marker;
     }
     return $this->capabilities;
 }
Exemple #3
0
 /**
  * Internal method to get capabilities of this adapter
  *
  * @return Capabilities
  */
 protected function internalGetCapabilities()
 {
     if ($this->capabilities === null) {
         $marker = new stdClass();
         $capabilities = new Capabilities($this, $marker, array('supportedDatatypes' => array('NULL' => 'string', 'boolean' => 'string', 'integer' => 'string', 'double' => 'string', 'string' => true, 'array' => false, 'object' => false, 'resource' => false), 'minTtl' => 0, 'supportedMetadata' => array(), 'maxKeyLength' => 0, 'namespaceIsPrefix' => true, 'namespaceSeparator' => $this->getOptions()->getNamespaceSeparator()));
         // update namespace separator on change option
         $this->getEventManager()->attach('option', function ($event) use($capabilities, $marker) {
             $params = $event->getParams();
             if (isset($params['namespace_separator'])) {
                 $capabilities->setNamespaceSeparator($marker, $params['namespace_separator']);
             }
         });
         $this->capabilities = $capabilities;
         $this->capabilityMarker = $marker;
     }
     return $this->capabilities;
 }