src/Answers/AnswerBus.php
protected function buildDependencyInjectedAnswer($answerClass)
    {
        // check if the command has a constructor
        if (!method_exists($answerClass, '__construct')) {
            return new $answerClass();
        }

        // get constructor params
        $constructorReflector = new \ReflectionMethod($answerClass, '__construct');
        $params = $constructorReflector->getParameters();

        // if no params are needed proceed with normal instantiation
        if (empty($params)) {
            return new $answerClass();
        }

        // otherwise fetch each dependency out of the container
        $container = $this->telegram->getContainer();
        $dependencies = [];
        foreach ($params as $param) {
            $dependencies[] = $container->make($param->getClass()->name);
        }

        // and instantiate the object with dependencies through ReflectionClass
        $classReflector = new \ReflectionClass($answerClass);

        return $classReflector->newInstanceArgs($dependencies);
    }
protected function buildDependencyInjectedAnswer($answerClass)
    {
        // check if the command has a constructor
        if (!method_exists($answerClass, '__construct')) {
            return new $answerClass();
        }

        // get constructor params
        $constructorReflector = new \ReflectionMethod($answerClass, '__construct');
        $params = $constructorReflector->getParameters();

        // if no params are needed proceed with normal instantiation
        if (empty($params)) {
            return new $answerClass();
        }

        // otherwise fetch each dependency out of the container
        $container = $this->telegram->getContainer();
        $dependencies = [];
        foreach ($params as $param) {
            $dependencies[] = $container->make($param->getClass()->name);
        }

        // and instantiate the object with dependencies through ReflectionClass
        $classReflector = new \ReflectionClass($answerClass);

        return $classReflector->newInstanceArgs($dependencies);
    }
protected function buildDependencyInjectedAnswer ( $ answerClass ) { // check if the command has a constructor if ( ! method_exists ( $ answerClass , '__construct' ) ) { return new $ answerClass ( ) ; } // get constructor params $ constructorReflector = new \ ReflectionMethod ( $ answerClass , '__construct' ) ; $ params = $ constructorReflector -> getParameters ( ) ; // if no params are needed proceed with normal instantiation if ( empty ( $ params ) ) { return new $ answerClass ( ) ; } // otherwise fetch each dependency out of the container $ container = $ this -> telegram -> getContainer ( ) ; $ dependencies = [ ] ; foreach ( $ params as $ param ) { $ dependencies [ ] = $ container -> make ( $ param -> getClass ( ) -> name ) ; } // and instantiate the object with dependencies through ReflectionClass $ classReflector = new \ ReflectionClass ( $ answerClass ) ; return $ classReflector -> newInstanceArgs ( $ dependencies ) ; }
Use PHP Reflection and Laravel Container to instantiate the answer with type hinted dependencies.

@param $answerClass

@return object
Use PHP Reflection and Laravel Container to instantiate the answer with type hinted dependencies .