Skip to content

Commit

Permalink
Merge pull request #827 from dogmatic69/simplify-object-collection
Browse files Browse the repository at this point in the history
simplify the code for object collection
  • Loading branch information
markstory committed Sep 13, 2012
2 parents 5d8ca79 + 91c09d8 commit 25b4471
Showing 1 changed file with 16 additions and 15 deletions.
31 changes: 16 additions & 15 deletions lib/Cake/Utility/ObjectCollection.php
Expand Up @@ -126,6 +126,7 @@ public function trigger($callback, $params = array(), $options = array()) {
if ($options['modParams'] !== false && !isset($params[$options['modParams']])) {
throw new CakeException(__d('cake_dev', 'Cannot use modParams with indexes that do not exist.'));
}
$result = null;
foreach ($list as $name) {
$result = call_user_func_array(array($this->_loaded[$name], $callback), compact('subject') + $params);
if ($options['collectReturn'] === true) {
Expand Down Expand Up @@ -180,7 +181,10 @@ public function enable($name, $prioritize = true) {
$enabled = false;
foreach ((array)$name as $object) {
if (isset($this->_loaded[$object]) && !isset($this->_enabled[$object])) {
$priority = isset($this->_loaded[$object]->settings['priority']) ? $this->_loaded[$object]->settings['priority'] : $this->defaultPriority;
$priority = $this->defaultPriority;
if (isset($this->_loaded[$object]->settings['priority'])) {
$priority = $this->_loaded[$object]->settings['priority'];
}
$this->_enabled[$object] = array($priority);
$enabled = true;
}
Expand Down Expand Up @@ -218,14 +222,14 @@ public function setPriority($name, $priority = null) {
if (is_string($name)) {
$name = array($name => $priority);
}
foreach ($name as $obj => $prio) {
if (isset($this->_loaded[$obj])) {
if (is_null($prio)) {
$prio = $this->defaultPriority;
foreach ($name as $object => $objectPriority) {
if (isset($this->_loaded[$object])) {
if (is_null($objectPriority)) {
$objectPriority = $this->defaultPriority;
}
$this->_loaded[$obj]->settings['priority'] = $prio;
if (isset($this->_enabled[$obj])) {
$this->_enabled[$obj] = array($prio);
$this->_loaded[$object]->settings['priority'] = $objectPriority;
if (isset($this->_enabled[$object])) {
$this->_enabled[$object] = array($objectPriority);
}
}
}
Expand Down Expand Up @@ -282,9 +286,8 @@ public function attached($name = null) {
* @return void
*/
public function unload($name) {
list($plugin, $name) = pluginSplit($name);
unset($this->_loaded[$name]);
unset($this->_enabled[$name]);
$name = array_pop(pluginSplit($name));
unset($this->_loaded[$name], $this->_enabled[$name]);
}

/**
Expand All @@ -296,8 +299,7 @@ public function unload($name) {
*/
public function set($name = null, $object = null) {
if (!empty($name) && !empty($object)) {
list($plugin, $name) = pluginSplit($name);
$this->_loaded[$name] = $object;
$this->_loaded[array_pop(pluginSplit($name))] = $object;
}
return $this->_loaded;
}
Expand All @@ -317,8 +319,7 @@ public static function normalizeObjectArray($objects) {
$options = (array)$objectName;
$objectName = $i;
}
list($plugin, $name) = pluginSplit($objectName);
$normal[$name] = array('class' => $objectName, 'settings' => $options);
$normal[array_pop(pluginSplit($objectName))] = array('class' => $objectName, 'settings' => $options);
}
return $normal;
}
Expand Down

0 comments on commit 25b4471

Please sign in to comment.