Beispiel #1
0
 /**
  * Get the Queued message and return it
  *
  * @param  string $key
  * @return mixed
  *
  */
 public function getFlash($key = null)
 {
     $messages = $flash = '';
     if (!Session::has('flashMessages')) {
         return false;
     }
     $flashArray = Session::get('flashMessages');
     // Check $key is valid flash type
     if (in_array($key, $this->validFlashTypes)) {
         if (isset($flashArray[$key])) {
             foreach ($flashArray[$key] as $msg) {
                 $messages .= '<p>' . $msg . "</p>\n";
             }
         }
         $flash .= sprintf($this->flashWrapper, strtolower(Inflector::getClassName($this->class)), $key, $messages);
         // clear the viewed messages from browser
         $this->clearViewedMessages($key);
         // Print ALL queued messages
     } elseif (is_null($key)) {
         foreach ($flashArray as $key => $msgArray) {
             $messages = '';
             foreach ($msgArray as $msg) {
                 $messages .= '<p>' . $msg . "</p>\n";
             }
             $flash .= sprintf($this->flashWrapper, strtolower($this->class), $key, $messages);
         }
         // clear already viewed messages
         $this->clearViewedMessages();
         // Invalid message type
     } else {
         return false;
     }
     return $flash;
 }
 /**
  * We will inject interface implementation
  *
  * @param $reflectionParam
  * @return array
  */
 public function interfaceInjection($reflectionParam)
 {
     $constructorArgs = null;
     /*
     | Check if constructor dependency is Interface or not.
     | if interface we will check definition for the interface
     | and inject into controller constructor
     */
     if (!$reflectionParam->IsInstantiable() && $reflectionParam->isInterface()) {
         $aliases = $this['definition.config']['register.alias'];
         $interface = Inflector::getClassName($reflectionParam->getName());
         if (array_key_exists($interface, $aliases)) {
             $constructorArgs = $this->makeInstance($aliases[$interface]);
         }
     }
     return $constructorArgs;
 }
Beispiel #3
0
 /**
  * Resolve all dependencies of your class and return instance of
  * your class
  *
  * @param $class string
  * @throws \Exception
  * @return object
  */
 public function make($class)
 {
     $reflection = new Reflection();
     $reflection->setClass($class);
     if (false === $reflection->reflectionClass->isInstantiable()) {
         throw new DependencyException("Cannot instantiate " . ($reflection->reflectionClass->isInterface() ? 'interface' : 'class') . " '{$class}'");
     }
     $constructor = null;
     $constructorArgsCount = '';
     if ($reflection->reflectionClass->hasMethod('__construct')) {
         $constructor = $reflection->reflectionClass->getConstructor();
         $constructorArgsCount = $constructor->getNumberOfParameters();
         $constructor->setAccessible(true);
     }
     // if class does not have explicitly defined constructor or constructor does not have parameters
     // get the new instance
     if (!isset($constructor) && is_null($constructor) || $constructorArgsCount < 1) {
         $this->stack[$class] = $reflection->reflectionClass->newInstance();
     } else {
         $dependencies = $constructor->getParameters();
         $constructorArgs = array();
         foreach ($dependencies as $dependency) {
             if (!is_null($dependency->getClass())) {
                 //Get constructor class name
                 $resolveClass = $dependency->getClass()->name;
                 $reflectionParam = new ReflectionClass($resolveClass);
                 // Application and Container cannot be injected into controller currently
                 // since Application constructor is protected
                 if ($reflectionParam->IsInstantiable()) {
                     $constructorArgs[] = $this->makeInstance($resolveClass);
                 }
                 /*
                 | Check if constructor dependency is Interface or not.
                 | if interface we will check definition for the interface
                 | and inject into controller constructor
                 */
                 if (!$reflectionParam->IsInstantiable() && $reflectionParam->isInterface()) {
                     $definition = $this->getDefinition();
                     $aliases = $definition()->registerAlias();
                     $interface = Inflector::getClassName($reflectionParam->getName());
                     if (array_key_exists($interface, $aliases)) {
                         $constructorArgs[] = $this->makeInstance($aliases[$interface]);
                     }
                 }
             } else {
                 /*
                 | Check parameters are optional or not
                 | if it is optional we will set the default value
                 */
                 if ($dependency->isOptional()) {
                     $constructorArgs[] = $dependency->getDefaultValue();
                 }
             }
         }
         $this->stack[$class] = $reflection->reflectionClass->newInstanceArgs($constructorArgs);
     }
     return $this->stack[$class];
 }
Beispiel #4
0
 /**
  * Get Join class name
  *
  * @param $baseClass
  * @param $associatedClass
  * @return string
  */
 private function getJoinClassName($baseClass, $associatedClass)
 {
     $classs = [Inflector::getClassName($baseClass), $associatedClass];
     sort($classs, SORT_STRING);
     return join("", $classs);
 }
Beispiel #5
0
 public function testGetClassNameMethod()
 {
     $this->assertEquals('Inflector', Inflector::getClassName('\\Cygnite\\Helpers\\Inflector'));
 }