refactor: console improvements — auto-discovery, centralized bootstrap, per-command help
- ConsoleApplication.discoverCommands() scans lib/Console/Commands/ automatically; adding a new command no longer requires editing bin/console - Command base class provides bootstrapApp(), bootstrapModuleApp(), requireBinScript() and projectRoot() helpers — eliminates fragile 4-level relative require_once paths - Per-command --help support via optional usage() method on Command - Docker-compose scheduler updated to use bin/console scheduler:run - Old bin scripts now emit deprecation hint to stderr when called directly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
26
bin/console
26
bin/console
@@ -9,35 +9,17 @@ declare(strict_types=1);
|
||||
* Usage:
|
||||
* php bin/console <command> [arguments] [options]
|
||||
* php bin/console list
|
||||
* php bin/console <command> --help
|
||||
*
|
||||
* Examples:
|
||||
* php bin/console module:sync
|
||||
* php bin/console module:deactivate addressbook --confirm
|
||||
* php bin/console scheduler:run
|
||||
* php bin/console doctor
|
||||
* Commands are auto-discovered from lib/Console/Commands/.
|
||||
* To add a new command, create a class extending Command in that directory.
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use MintyPHP\Console\ConsoleApplication;
|
||||
use MintyPHP\Console\Commands\DoctorCommand;
|
||||
use MintyPHP\Console\Commands\Module\AssetsSyncCommand;
|
||||
use MintyPHP\Console\Commands\Module\BuildCommand;
|
||||
use MintyPHP\Console\Commands\Module\DeactivateCommand;
|
||||
use MintyPHP\Console\Commands\Module\MigrateCommand;
|
||||
use MintyPHP\Console\Commands\Module\PermissionsSyncCommand;
|
||||
use MintyPHP\Console\Commands\Module\RuntimeSyncCommand;
|
||||
use MintyPHP\Console\Commands\Scheduler\RunCommand;
|
||||
|
||||
$app = new ConsoleApplication();
|
||||
|
||||
$app->register(new RuntimeSyncCommand());
|
||||
$app->register(new MigrateCommand());
|
||||
$app->register(new PermissionsSyncCommand());
|
||||
$app->register(new BuildCommand());
|
||||
$app->register(new AssetsSyncCommand());
|
||||
$app->register(new DeactivateCommand());
|
||||
$app->register(new RunCommand());
|
||||
$app->register(new DoctorCommand());
|
||||
$app->discoverCommands(__DIR__ . '/../lib/Console/Commands');
|
||||
|
||||
exit($app->run($argv));
|
||||
|
||||
Reference in New Issue
Block a user