/** * @return string * @param string $name * @param boolean $controller * @param string|null $module */ public static function formatName($name, $controller = true, $module = null) { if ($controller) { return \Nano\Names::controllerClass($name, $module); } $result = \Nano::stringToName($name); $result = strToLower($result[0]) . subStr($result, 1); $result .= self::SUFFIX_ACTION; return $result; }
/** * @return \Nano\Event * @param string|\Nano\Event $eventOrType * @param array $arguments */ public function trigger($eventOrType, array $arguments = array()) { $this->loadEvents(); $event = $eventOrType instanceof \Nano\Event ? $eventOrType : new \Nano\Event($eventOrType); foreach ($arguments as $name => $value) { $event->setArgument($name, $value); } $methodName = 'on' . \Nano::stringToName($event->getType()); foreach ($this->handlers as $instance) { if (method_exists($instance, $methodName)) { call_user_func(array($instance, $methodName), $event); } } if ($this->callbackExists($eventOrType)) { foreach ($this->callbacks->offsetGet($event->getType()) as $handler) { $handler($event); } } return $event; }
protected function addScript($fileName) { $name = baseName($fileName, '.php'); $className = 'CliScript\\' . \Nano::stringToName($name); if (!class_exists($className, false)) { include_once $fileName; if (!class_exists($className, false)) { return; } } $script = new \ReflectionClass($className); if (!$script->isSubclassOf('\\Nano\\Cli\\Script')) { return; } if (!$script->isInstantiable()) { return; } if ($this->maxLength < ($length = strLen($name))) { $this->maxLength = $length; } $this->scripts[$name] = $script; }