Browse Source

Renaming the OrmCache to SchemaCache

Florian Krämer 8 years ago
parent
commit
bcf6618a0d

+ 3 - 3
src/ORM/OrmCache.php

@@ -12,7 +12,7 @@
  * @since         3.5.0
  * @license       https://opensource.org/licenses/mit-license.php MIT License
  */
-namespace Cake\ORM;
+namespace Cake\Database;
 
 use Cake\Cache\Cache;
 use Cake\Datasource\ConnectionInterface;
@@ -21,14 +21,14 @@ use InvalidArgumentException;
 use RuntimeException;
 
 /**
- * ORM Cache.
+ * Schema Cache.
  *
  * This tool is intended to be used by deployment scripts so that you
  * can prevent thundering herd effects on the metadata cache when new
  * versions of your application are deployed, or when migrations
  * requiring updated metadata are required.
  */
-class OrmCache
+class SchemaCache
 {
 
     /**

+ 6 - 85
src/Shell/OrmCacheShell.php

@@ -14,9 +14,7 @@
  */
 namespace Cake\Shell;
 
-use Cake\Console\Shell;
-use Cake\ORM\OrmCache;
-use RuntimeException;
+use Cake\Database\SchemaCache;
 
 /**
  * ORM Cache Shell.
@@ -27,93 +25,16 @@ use RuntimeException;
  * versions of your application are deployed, or when migrations
  * requiring updated metadata are required.
  */
-class OrmCacheShell extends Shell
+class OrmCacheShell extends SchemaCacheShell
 {
 
     /**
-     * ORM Cache
-     *
-     * @var \Cake\ORM\OrmCache
+     * @inheritDoc
      */
-    protected $_ormCache;
-
-    /**
-     * Build metadata.
-     *
-     * @param string|null $name The name of the table to build cache data for.
-     * @return bool
-     */
-    public function build($name = null)
-    {
-        $cache = $this->_getOrmCache();
-        $tables = $cache->build($name);
-
-        foreach ($tables as $table) {
-            $this->verbose(sprintf('Cached "%s"', $table));
-        }
-
-        $this->out('<success>Cache build complete</success>');
-
-        return true;
-    }
-
-    /**
-     * Clear metadata.
-     *
-     * @param string|null $name The name of the table to clear cache data for.
-     * @return bool
-     */
-    public function clear($name = null)
-    {
-        $cache = $this->_getOrmCache();
-        $tables = $cache->clear($name);
-
-        foreach ($tables as $table) {
-            $this->verbose(sprintf('Cleared "%s"', $table));
-        }
-
-        $this->out('<success>Cache clear complete</success>');
-
-        return true;
-    }
-
-    /**
-     * Gets the ORM Cache instance
-     *
-     * @return \Cake\ORM\OrmCache
-     */
-    protected function _getOrmCache()
-    {
-        try {
-            return new OrmCache($this->params['connection']);
-        } catch (RuntimeException $e) {
-            $this->abort($e->getMessage());
-        }
-    }
-
-    /**
-     * Get the option parser for this shell.
-     *
-     * @return \Cake\Console\ConsoleOptionParser
-     */
-    public function getOptionParser()
+    public function initialize()
     {
-        $parser = parent::getOptionParser();
-        $parser->addSubcommand('clear', [
-            'help' => 'Clear all metadata caches for the connection. If a ' .
-                'table name is provided, only that table will be removed.',
-        ])->addSubcommand('build', [
-            'help' => 'Build all metadata caches for the connection. If a ' .
-            'table name is provided, only that table will be cached.',
-        ])->addOption('connection', [
-            'help' => 'The connection to build/clear metadata cache data for.',
-            'short' => 'c',
-            'default' => 'default',
-        ])->addArgument('name', [
-            'help' => 'A specific table you want to clear/refresh cached data for.',
-            'optional' => true,
-        ]);
+        parent::initialize();
 
-        return $parser;
+        trigger_error('OrmCache shell is deprecated, use SchemaCache shell instead.', E_USER_DEPRECATED);
     }
 }

+ 119 - 0
src/Shell/SchemaCacheShell.php

@@ -0,0 +1,119 @@
+<?php
+/**
+ * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
+ * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
+ *
+ * Licensed under The MIT License
+ * For full copyright and license information, please see the LICENSE.txt
+ * Redistributions of files must retain the above copyright notice.
+ *
+ * @copyright     Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
+ * @link          https://cakephp.org CakePHP(tm) Project
+ * @since         3.5.0
+ * @license       https://opensource.org/licenses/mit-license.php MIT License
+ */
+namespace Cake\Shell;
+
+use Cake\Console\Shell;
+use Cake\Database\SchemaCache;
+use RuntimeException;
+
+/**
+ * ORM Cache Shell.
+ *
+ * Provides a CLI interface to the ORM metadata caching features.
+ * This tool is intended to be used by deployment scripts so that you
+ * can prevent thundering herd effects on the metadata cache when new
+ * versions of your application are deployed, or when migrations
+ * requiring updated metadata are required.
+ */
+class SchemaCacheShell extends Shell
+{
+
+    /**
+     * Schema Cache
+     *
+     * @var \Cake\Database\SchemaCache
+     */
+    protected $_schemaCache;
+
+    /**
+     * Build metadata.
+     *
+     * @param string|null $name The name of the table to build cache data for.
+     * @return bool
+     */
+    public function build($name = null)
+    {
+        $cache = $this->_getOrmCache();
+        $tables = $cache->build($name);
+
+        foreach ($tables as $table) {
+            $this->verbose(sprintf('Cached "%s"', $table));
+        }
+
+        $this->out('<success>Cache build complete</success>');
+
+        return true;
+    }
+
+    /**
+     * Clear metadata.
+     *
+     * @param string|null $name The name of the table to clear cache data for.
+     * @return bool
+     */
+    public function clear($name = null)
+    {
+        $cache = $this->_getOrmCache();
+        $tables = $cache->clear($name);
+
+        foreach ($tables as $table) {
+            $this->verbose(sprintf('Cleared "%s"', $table));
+        }
+
+        $this->out('<success>Cache clear complete</success>');
+
+        return true;
+    }
+
+    /**
+     * Gets the Schema Cache instance
+     *
+     * @return \Cake\ORM\OrmCache
+     */
+    protected function _getOrmCache()
+    {
+        try {
+            return new SchemaCache($this->params['connection']);
+        } catch (RuntimeException $e) {
+            $this->abort($e->getMessage());
+        }
+    }
+
+    /**
+     * Get the option parser for this shell.
+     *
+     * @return \Cake\Console\ConsoleOptionParser
+     */
+    public function getOptionParser()
+    {
+        $parser = parent::getOptionParser();
+        $parser->addSubcommand('clear', [
+            'help' => 'Clear all metadata caches for the connection. If a ' .
+                'table name is provided, only that table will be removed.',
+        ])->addSubcommand('build', [
+            'help' => 'Build all metadata caches for the connection. If a ' .
+            'table name is provided, only that table will be cached.',
+        ])->addOption('connection', [
+            'help' => 'The connection to build/clear metadata cache data for.',
+            'short' => 'c',
+            'default' => 'default',
+        ])->addArgument('name', [
+            'help' => 'A specific table you want to clear/refresh cached data for.',
+            'optional' => true,
+        ]);
+
+        return $parser;
+    }
+}

tests/TestCase/ORM/OrmCacheTest.php → tests/TestCase/Database/SchemaCacheTest.php