What problem does it solve?
This Skill resolves common confusion around OrangeHRM's two separate Symfony console entry points, frequent registration errors that cause commands to not appear in the expected console, and uncertainty about where to place new development or production-facing commands.
Core Features & Use Cases
- Dual Console Guidance: Clear rules for choosing between the production bin/console (for ops, scheduled jobs, cache management) and developer-only devTools/core/console.php (for linting, test setup, doc generation) entry points.
- End-to-End Command Implementation: Step-by-step instructions for building new commands using OrangeHRM's custom Command base class, including trait composition for service access, input/output handling, and naming conventions.
- Troubleshooting Support: Reference for common pitfalls like missing interface implementations, dependency mismatches between consoles, and silent command name typos, plus recipes for interactive commands, sub-command invocation, and conditional dev-only registration.
- Use Case: For example, if you are building a new scheduled job for production, this Skill guides you to extend the correct base class, register it via your plugin's configuration, and verify it appears in bin/console without breaking existing composer post-install steps.
Quick Start
Use this Skill to add a new production console command for your OrangeHRM plugin by extending the framework's base Command class, implementing the required getCommandName method, and registering it in your plugin's configuration class.