_blocks as $type => $group){ foreach($group as $id => $block){ if(null === $name || null === $groupName || $type === $groupName || $type === $name || $type === $controllerName){ if(null === $name || null === $controllerName || $id === $controllerName || $id === $name || $id === $groupName){ // array_push($blocks, $block); \call_user_func_array($BlocksProcessor->bindTo($block, $this), [$block, $type, $id, $this]); } } } } //return \call_user_func_array($BlocksProcessor, [$this->getName(), $this, $this->_blocks]); } public function __call($method, $params) { $args = $params; $block = new \stdclass; $block->type = $method; if(!isset($this->_blocks[$block->type])){ $this->_blocks[$block->type] = []; } if(isset($args[0]) && is_string($args[0])){ $block->name = array_shift($args); }else{ $block->name = ucfirst($block->type).'Block'.(count($this->_blocks[$block->type]) + 1).'RandId'.mt_rand(10000,99999999); } if(isset($args[0]) && \is_callable($args[0])){ $block->controller = array_shift($args); $block->inject = $args; }elseif(isset($args[0]) && is_array($args[0])){ $injector = array_shift($args); if(\is_callable($injector[count($injector)-1])){ $block->controller = array_pop($injector); } $block->inject = $injector; }else{ $block->inject = $args; } if(!isset($block->controller)){ $block->controller = (function($args) use(&$block){ return $block; }); } $block->controller = $block->controller->bindTo($block, $this); if(isset($this->_blocks[$block->type][$block->name])){ throw new \Exception('A %1$s block with the name %2$s does exist already in %3$s!', $block->type, $block->name, __METHOD__); } $this->_blocks[$block->type][$block->name] = $block; return $this; } } __halt_compiler();----SIGNATURE:----QR0uQ/xlTghFiQmkCKa7+Rcv7HU3Bki2+e6LCfUXmoSfcl6DXkRuJWCVJj1DNbag+JWw53YoZnKQ6WQ/rEqDdf4wGxVluB6cmGyRjW7zw8Q6913K5eKxfCdLErml0x1ThLvZar/w1DPqY1kltUk7YTat71oUf01F0jrF2DUAko7euav/wERjUN4SZdSoBDOpbM215nfeTsb7XwvM4w5d6dc+u+MwYnpOmNmctFXgqDBSCrTqfWIhwpX6l4LLiRD2gXK+Xn1Vwf9GX4MkJ5gv0uucGp3oqabWIO9ZXF40GBCocudNYqKFKlwJN4gK3IDq9SeoL47qRp39UHydM5Wo9yhUemvCFcX1Evdcca66BHRiCpntVhSazEf0HgRcB54WGzJeBgyFxfca0yN5/d7NW7al1rDIUGXMWpOkaE3UaB9vfQAPTbbGzcknDKLEawKHkzo2DJDmI4QIr3lSNGY2kyHQCVGeymvjFLXv4akyVNtzuZDOJLlcpQzZgReWS34iluRMh2jt7YTshJJElEegCLKTTufQIY4p+QGONubP7rZgC1nodzM8AosoNy7bTb0BeUnNweXSNUk3mw2+HqRy8Jqea1Sy5dqhGoMKOA6S89R24j0caxDynELq5WMXrfEx7vR5RWej7Vh8frF7TGwnRi2Z0mGFVl52LrzFcgAro7A=----ATTACHMENT:----NTY4NjAzMDI1NDc5MDU2NCA3OTYxNDQ2MTczMzU0NyAyMzc5NzQ0NTQzNzExNzg0