Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #304 from jamiemill/2.0-upgradefix2

Add exception migration to the upgrade shell.
  • Loading branch information...
commit e8e2bbc4d7d0a64d72ade0e10227942f7d4ef432 2 parents 354b7a0 + e168902
@markstory markstory authored
Showing with 45 additions and 1 deletion.
  1. +45 −1 lib/Cake/Console/Command/UpgradeShell.php
View
46 lib/Cake/Console/Command/UpgradeShell.php
@@ -214,6 +214,9 @@ public function helpers() {
}
$patterns = array();
+ App::build(array(
+ 'View/Helper' => App::core('View/Helper'),
+ ), App::APPEND);
$helpers = App::objects('helper');
$plugins = App::objects('plugin');
$pluginHelpers = array();
@@ -514,6 +517,43 @@ public function components() {
}
/**
+ * Replace cakeError with built-in exceptions.
+ * NOTE: this ignores calls where you've passed your own secondary parameters to cakeError().
+ * @return void
+ */
+ public function exceptions() {
+ $controllers = array_diff(App::path('controllers'), App::core('controllers'), array(APP));
+ $components = array_diff(App::path('components'), App::core('components'));
+
+ $this->_paths = array_merge($controllers, $components);
+
+ if (!empty($this->params['plugin'])) {
+ $pluginPath = App::pluginPath($this->params['plugin']);
+ $this->_paths = array(
+ $pluginPath . 'controllers' . DS,
+ $pluginPath . 'controllers' . DS . 'components' .DS,
+ );
+ }
+ $patterns = array(
+ array(
+ '$this->cakeError("error400") -> throw new BadRequestException()',
+ '/(\$this->cakeError\(["\']error400["\']\));/',
+ 'throw new BadRequestException();'
+ ),
+ array(
+ '$this->cakeError("error404") -> throw new NotFoundException()',
+ '/(\$this->cakeError\(["\']error404["\']\));/',
+ 'throw new NotFoundException();'
+ ),
+ array(
+ '$this->cakeError("error500") -> throw new InternalErrorException()',
+ '/(\$this->cakeError\(["\']error500["\']\));/',
+ 'throw new InternalErrorException();'
+ ),
+ );
+ $this->_filesRegexpUpdate($patterns);
+ }
+/**
* Move application views files to where they now should be
*
* Find all view files in the folder and determine where cake expects the file to be
@@ -662,11 +702,11 @@ protected function _filesRegexpUpdate($patterns) {
* @return void
*/
protected function _findFiles($extensions = '') {
+ $this->_files = array();
foreach ($this->_paths as $path) {
if (!is_dir($path)) {
continue;
}
- $this->_files = array();
$Iterator = new RegexIterator(
new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)),
'/^.+\.(' . $extensions . ')$/i',
@@ -773,6 +813,10 @@ public function getOptionParser() {
->addSubcommand('components', array(
'help' => __d('cake_console', 'Update components to extend Component class.'),
'parser' => $subcommandParser
+ ))
+ ->addSubcommand('exceptions', array(
+ 'help' => __d('cake_console', 'Replace use of cakeError with exceptions.'),
+ 'parser' => $subcommandParser
));
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.