Beispiel #1
0
 private static function getDriverClassName($driver)
 {
     if ($driver == null) {
         throw new exceptions\DatabaseDriverException("Please provide a valid driver name in your database config file");
     }
     return '\\ntentan\\atiaa\\drivers\\' . Text::ucamelize($driver) . "Driver";
 }
Beispiel #2
0
 public function getComponentClassName($component, $parameters)
 {
     // Attempt to load an application component
     $type = $parameters['type'];
     $camelType = Text::ucamelize($type);
     $namespaces = $parameters['namespaces'];
     $className = Text::ucamelize($component) . $camelType;
     $class = "\\{$namespaces[0]}\\{$type}s\\{$component}\\{$className}";
     if (class_exists($class)) {
         return $class;
     }
     // Attempt to load a core dependency
     $class = "\\ntentan\\{$namespaces[1]}\\{$className}";
     if (class_exists($class)) {
         return $class;
     }
     // Attempt to load plugin dependency
     $componentPaths = explode(".", $component);
     $className = Text::ucamelize(array_pop($componentPaths));
     $class = "\\ntentan\\extensions\\" . implode("\\", $componentPaths) . "\\{$type}s\\{$className}{$camelType}";
     if (class_exists($class)) {
         return $class;
     }
     throw new exceptions\ComponentNotFoundException("[{$component}] {$type} not found");
 }
Beispiel #3
0
 public static function getDriverAdapterClassName()
 {
     $driver = Config::get('ntentan:db.driver', false);
     if ($driver) {
         return __NAMESPACE__ . '\\adapters\\' . Text::ucamelize(Config::get('ntentan:db.driver')) . 'Adapter';
     }
     throw new NibiiException("Please specify a driver");
 }
Beispiel #4
0
 private function getWyfClassName($wyfPath, $type)
 {
     $namespace = Ntentan::getNamespace();
     $wyfPathParts = explode('.', $wyfPath);
     $name = Text::ucamelize(array_pop($wyfPathParts));
     $base = (count($wyfPathParts) ? '\\' : '') . implode('\\', $wyfPathParts);
     return "\\{$namespace}\\app{$base}\\{$type}\\{$name}";
 }
Beispiel #5
0
 private static function getMinifier($minifier)
 {
     $array = explode('.', $minifier);
     $minifierName = end($array);
     $class = __NAMESPACE__ . "\\minifiers\\" . reset($array) . '\\' . \ntentan\utils\Text::ucamelize($minifierName) . "Minifier";
     $instance = new $class();
     return $instance;
 }
Beispiel #6
0
 public function testCamelCase()
 {
     $this->assertEquals('camelCase', Text::camelize("camel_case"));
     $this->assertEquals('CamelCase', Text::ucamelize("camel_case"));
     $this->assertEquals('camelCaseJoe', Text::camelize("camel_case_joe"));
     $this->assertEquals('CamelCaseJoe', Text::ucamelize("camel_case_joe"));
     $this->assertEquals('camelCase', Text::camelize("camel.case", "."));
     $this->assertEquals('CamelCase', Text::ucamelize("camel.case", "."));
     $this->assertEquals('camelCaseJoe', Text::camelize("camel.case.joe", "."));
     $this->assertEquals('CamelCaseJoe', Text::ucamelize("camel.case.joe", "."));
     $this->assertEquals('camelCaseJoe', Text::camelize("camel.case_joe", array(".", "_")));
     $this->assertEquals('CamelCaseJoe', Text::ucamelize("camel_case.joe", array(".", "_")));
 }
Beispiel #7
0
 public static function start($store = '')
 {
     // setup the default store
     if ($store == '') {
         $store = Ntentan::$config[Ntentan::$context]['sessions.container'];
     }
     // Exit on the special none store means sessions are not needed
     if ($store == 'none') {
         return;
     }
     if ($store != '') {
         $handlerClass = "ntentan\\sessions\\stores\\" . Text::ucamelize($store) . 'Store';
         self::$handler = new $handlerClass();
         $configExpiry = Ntentan::$config[Ntentan::$context]['sessions.lifespan'];
         self::$lifespan = $configExpiry > 0 ? $configExpiry : self::$lifespan;
         session_set_save_handler(array(self::$handler, 'open'), array(self::$handler, 'close'), array(self::$handler, 'read'), array(self::$handler, 'write'), array(self::$handler, 'destroy'), array(self::$handler, 'gc'));
         register_shutdown_function('session_write_close');
     }
     session_start();
 }
Beispiel #8
0
 private static function getController($routeArray, $basePath, $namespace, $controllerPath = "")
 {
     $path = array_shift($routeArray);
     $controllerClass = Text::ucamelize($path) . 'Controller';
     $controllerFile = "{$basePath}/controllers/{$controllerClass}.php";
     if ($path == "" && !empty($routeArray)) {
         return self::getController($routeArray, $basePath, $namespace, $controllerPath);
     } else {
         if (is_dir("{$basePath}/{$path}") && !empty($routeArray)) {
             // enter directories to find nested controllers
             return self::getController($routeArray, "{$basePath}/{$path}", "{$namespace}\\{$path}", "{$controllerPath}/{$path}");
         } else {
             if (file_exists($controllerFile)) {
                 // return controller info
                 return ['controller' => "{$namespace}\\controllers\\{$controllerClass}", 'action' => array_shift($routeArray), 'id' => implode('/', $routeArray), 'controller_path' => substr("{$controllerPath}/{$path}", 1)];
             } else {
                 return false;
             }
         }
     }
 }
Beispiel #9
0
 /**
  * Initialize the caching engine.
  * Reads the current configuration to determine the caching backend to use.
  */
 public static function init()
 {
     $backend = Config::get('ntentan:cache.backend', 'volatile');
     self::$backendClass = '\\ntentan\\kaikai\\backends\\' . Text::ucamelize($backend) . 'Cache';
 }
Beispiel #10
0
 public function __call($function, $arguments)
 {
     if (substr($function, 0, 5) == "open_") {
         $container = __NAMESPACE__ . "\\form\\" . Text::ucamelize(substr($function, 5, strlen($function)));
         $containerClass = new ReflectionClass($container);
         $containerObject = $containerClass->newInstanceArgs($arguments);
         $return = $containerObject->renderHead();
     } elseif (substr($function, 0, 6) == "close_") {
         $container = __NAMESPACE__ . "\\form\\" . Text::ucamelize(substr($function, 6, strlen($function)));
         $containerClass = new ReflectionClass($container);
         $containerObject = $containerClass->newInstanceArgs($arguments);
         $return = $containerObject->renderFoot();
     } elseif (substr($function, 0, 4) == "get_") {
         $element = __NAMESPACE__ . "\\form\\" . Text::ucamelize(substr($function, 4, strlen($function)));
         $elementClass = new ReflectionClass($element);
         $elementObject = $elementClass->newInstanceArgs($arguments);
         $name = $elementObject->getName();
         if (isset($this->data[$name])) {
             $elementObject->setValue($this->data[$name]);
         }
         if (isset($this->errors[$name])) {
             $elementObject->setErrors($this->errors[$name]);
         }
         $return = $elementObject;
     } elseif (substr($function, 0, 4) == "add_") {
         $element = __NAMESPACE__ . "\\form\\" . Text::ucamelize(substr($function, 4, strlen($function)));
         $elementClass = new ReflectionClass($element);
         $elementObject = $elementClass->newInstanceArgs($arguments);
         $return = $this->container->add($elementObject);
     } else {
         throw new \ntentan\honam\exceptions\HelperException("Function *{$function}* not found in form helper.");
     }
     return $return;
 }
 private function getSigninServiceObject($serviceType)
 {
     $serviceTypeClass = "\\ntentan\\extensions\\social\\components\\signin\\" . Text::ucamelize($serviceType) . "Signin";
     return new $serviceTypeClass();
 }
Beispiel #12
0
 public function getControllerClassName($name)
 {
     return sprintf('\\%s\\controllers\\%sController', Ntentan::getNamespace(), utils\Text::ucamelize($name));
 }
Beispiel #13
0
 private static function getEngineClass($engine)
 {
     return "ntentan\\honam\\template_engines\\" . \ntentan\utils\Text::ucamelize($engine);
 }