11<?php namespace System \Classes ;
22
33use Backend ;
4+ use Illuminate \Console \Application as Artisan ;
45use October \Contracts \Support \OctoberPackage ;
56use October \Rain \Support \ServiceProvider as ServiceProviderBase ;
67use ReflectionClass ;
@@ -231,11 +232,7 @@ public function registerMailPartials()
231232 */
232233 public function discoverConsoleCommands (): void
233234 {
234- if (!$ this ->app ->runningInConsole ()) {
235- return ;
236- }
237-
238- $ reflection = new \ReflectionClass (get_class ($ this ));
235+ $ reflection = new ReflectionClass (get_class ($ this ));
239236 $ pluginPath = dirname ($ reflection ->getFileName ());
240237 $ consolePath = $ pluginPath . '/console ' ;
241238
@@ -246,22 +243,28 @@ public function discoverConsoleCommands(): void
246243 $ pluginClass = get_class ($ this );
247244 $ namespace = substr ($ pluginClass , 0 , strrpos ($ pluginClass , '\\' )) . '\\Console \\' ;
248245
249- foreach ( glob ( $ consolePath . ' /*.php ' ) as $ file ) {
250- $ className = $ namespace . basename ( $ file , ' .php ' ) ;
246+ Artisan:: starting ( function ( $ artisan ) use ( $ consolePath , $ namespace ) {
247+ $ commands = [] ;
251248
252- if (!class_exists ($ className )) {
253- continue ;
254- }
249+ foreach (glob ($ consolePath . '/*.php ' ) as $ file ) {
250+ $ className = $ namespace . basename ($ file , '.php ' );
255251
256- $ ref = new \ReflectionClass ($ className );
252+ if (!class_exists ($ className )) {
253+ continue ;
254+ }
257255
258- if (
259- $ ref ->isSubclassOf (\Illuminate \Console \Command::class) &&
260- !$ ref ->isAbstract ()
261- ) {
262- $ this ->commands ($ className );
256+ $ ref = new ReflectionClass ($ className );
257+
258+ if (
259+ $ ref ->isSubclassOf (\Illuminate \Console \Command::class) &&
260+ !$ ref ->isAbstract ()
261+ ) {
262+ $ commands [] = $ className ;
263+ }
263264 }
264- }
265+
266+ $ artisan ->resolveCommands ($ commands );
267+ });
265268 }
266269
267270 /**
0 commit comments