@@ -858,21 +858,34 @@ protected function createController()
858858 /**
859859 * Runs the controller, allowing for _remap methods to function.
860860 *
861+ * CI4 supports three types of requests:
862+ * 1. Web: URI segments become parameters, sent to Controllers via Routes,
863+ * output controlled by Headers to browser
864+ * 2. Spark: accessed by CLI via the spark command, arguments are Command arguments,
865+ * sent to Commands by CommandRunner, output controlled by CLI class
866+ * 3. PHP CLI: accessed by CLI via php public/index.php, arguments become URI segments,
867+ * sent to Controllers via Routes, output varies
868+ *
861869 * @param mixed $class
862870 *
863871 * @return false|ResponseInterface|string|void
864872 */
865873 protected function runController ($ class )
866874 {
867- // If this is a console request then use the input segments as parameters
868- $ params = $ this -> isSparked () ? $ this -> request -> getSegments () : $ this -> router -> params ();
869-
870- if ( method_exists ( $ class , ' _remap ' )) {
871- $ output = $ class -> _remap ( $ this -> method , ... $ params );
875+ if ( $ this -> isSparked ()) {
876+ // This is a Spark request
877+ /** @var CLIRequest $request */
878+ $ request = $ this -> request ;
879+ $ params = $ request -> getArgs ( );
872880 } else {
873- $ output = $ class ->{$ this ->method }(...$ params );
881+ // This is a Web request or PHP CLI request
882+ $ params = $ this ->router ->params ();
874883 }
875884
885+ $ output = method_exists ($ class , '_remap ' )
886+ ? $ class ->_remap ($ this ->method , ...$ params )
887+ : $ class ->{$ this ->method }(...$ params );
888+
876889 $ this ->benchmark ->stop ('controller ' );
877890
878891 return $ output ;
0 commit comments