Skip to content
Permalink
Browse files

Optimize _clearCache().

It is cheaper to make an assignment or call strtolower() than to pluralize.
  • Loading branch information...
bar committed Oct 24, 2013
1 parent 43fccc1 commit 6dcfd286003c7a35310c0c5b834b669281eeded3
Showing with 14 additions and 10 deletions.
  1. +14 −10 lib/Cake/Model/Model.php
@@ -3669,25 +3669,29 @@ public function onError() {
*
* @param string $type If null this deletes cached views if Cache.check is true
* Will be used to allow deleting query cache also
* @return boolean true on delete
* @return mixed True on delete, null otherwise
*/
protected function _clearCache($type = null) {
if ($type !== null || Configure::read('Cache.check') !== true) {
return;
}
$assoc[] = strtolower(Inflector::pluralize($this->alias));
$assoc[] = Inflector::underscore(Inflector::pluralize($this->alias));
$pluralized = Inflector::pluralize($this->alias);
$assoc = array(
strtolower($pluralized),
Inflector::underscore($pluralized)
);
foreach ($this->_associations as $association) {
foreach ($this->$association as $className) {
$pluralized = strtolower(Inflector::pluralize($className['className']));
if (!in_array($pluralized, $assoc)) {
$assoc[] = $pluralized;
$assoc[] = Inflector::underscore(Inflector::pluralize($className['className']));
foreach ($this->{$association} as $className) {
$pluralizedAssociation = Inflector::pluralize($className['className']);
if (!in_array(strtolower($pluralizedAssociation), $assoc)) {
$assoc = array_merge($assoc, array(
strtolower($pluralizedAssociation),
Inflector::underscore($pluralizedAssociation)
));
}
}
}
$assoc = array_unique($assoc);
clearCache($assoc);
clearCache(array_unique($assoc));
return true;
}

0 comments on commit 6dcfd28

Please sign in to comment.
You can’t perform that action at this time.