Back to Cache class

Method getStores

public static array
getStores
()
Get the storage handlers
Returns
  • array
Since
  • 1.7.0
Class: Cache
Project: Joomla

Method getStores - Source code

/**
 * Get the storage handlers
 *
 * @return  array
 *
 * @since   1.7.0
 */
public static function getStores()
{
    $handlers = array();
    // Get an iterator and loop trough the driver classes.
    $iterator = new \DirectoryIterator(__DIR__ . '/Storage');
    /** @type  $file  \DirectoryIterator */
    foreach ($iterator as $file) {
        $fileName = $file->getFilename();
        // Only load for php files.
        if (!$file->isFile() || $file->getExtension() !== 'php' || $fileName === 'CacheStorageHelper.php') {
            continue;
        }
        // Derive the class name from the type.
        $class = str_ireplace('.php', '', __NAMESPACE__ . '\\Storage\\' . ucfirst(trim($fileName)));
        // If the class doesn't exist we have nothing left to do but look at the next type. We did our best.
        if (!class_exists($class)) {
            continue;
        }
        // Sweet!  Our class exists, so now we just need to know if it passes its test method.
        if ($class::isSupported()) {
            // Connector names should not have file extensions.
            $handler = str_ireplace('Storage.php', '', $fileName);
            $handler = str_ireplace('.php', '', $handler);
            $handlers[] = strtolower($handler);
        }
    }
    return $handlers;
}