بنقرة واحدة
licenses-module
يحتوي licenses-module على 4 من skills المجمعة من myadmin-plugins، مع تغطية مهنية على مستوى المستودع وصفحات skill داخل الموقع.
Skills في هذا المستودع
Adds a new global-namespace API function to `src/api.php` following the existing pattern. Registers it in `Plugin::getRequirements()` and `Plugin::apiRegister()`. Use when user says 'add API function', 'new license operation', 'add endpoint to api.php', or adds a new license action. Do NOT use for modifying `src/Plugin.php` hooks unrelated to API registration.
Adds a new Symfony EventDispatcher hook to src/Plugin.php via getHooks(). Implements handler method receiving GenericEvent $event and calling $event->getSubject(). Use when user says 'add event hook', 'new plugin event', 'handle event', or extends plugin behavior. Do NOT use for adding api.php functions.
Constructs DB queries for the licenses module using `get_module_db('licenses')` and `get_module_settings('licenses')` with proper PREFIX/TABLE interpolation. Use when querying or updating the licenses table, checking license status, or performing CRUD on license records. Trigger phrases: 'query licenses', 'look up license', 'update license status', 'insert license row', 'check if licensed'. Do NOT use PDO, do NOT hardcode table name 'licenses' or column prefix 'license_' directly — always use $settings['TABLE'] and $settings['PREFIX'].
Creates PHPUnit 9 tests in `tests/` using the ReflectionFunction/ReflectionClass pattern from `tests/ApiTest.php` and `tests/PluginTest.php`. Covers function existence, parameter names, parameter counts, optionality, and default values. Use when user says 'write test', 'add test for', 'test the API function', or adds a new function to src/api.php. Do NOT use for integration tests that require a live database, real MyAdmin global functions, or HTTP calls.