Install
Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
248.69 KB
MD5: 2125b669497dac79db152a9e87718faf
SHA-1: 63161895b7cf4cc5875d6a035fb85860068c386c
SHA-256: aae879b29b9b1dcc5ca5d016645cf37230d3f6a14bd1291e030d33b1fc1baab9
Download zip
437.05 KB
MD5: 320f4f1232dd8d336c7884b5e6f7e27a
SHA-1: 32509300ae6e885110dc2a51d12b38d6a07f3ad0
SHA-256: d881edbe44f5c3e4daa4392e1d4aa1ab3fd2a12aa034439c859f71b4fa10494b
Release notes
API Orchestrator 1.1.4
Drupal.org code review compliance release — addresses all five review feedback points for modern Drupal 10.3+/11 best practices.
OOP Hook Implementations
- Converted all procedural hooks to class-based implementations using
#[Hook]PHP attributes across 9 modules - All
.modulefiles are now empty stubs — hook logic lives insrc/Hook/classes with autowired dependency injection - Replaced all
\Drupal::service()calls in hook code with constructor-injected dependencies
PHP Attributes (Annotations Removed)
- Replaced
@ContentEntityType,@ConfigEntityType,@QueueWorkerannotations with PHP 8.1+ attributes across 6 entity/plugin classes - Converted 4
@NotificationProviderplugin annotations to attributes; created newAttribute\NotificationProviderclass for custom plugin type discovery - All
@Translation()replaced withnew TranslatableMarkup(), string class references replaced with::classsyntax
Constructor Property Promotion
- Converted 13 controllers and forms to use PHP 8.1+ constructor property promotion
- Removed separate property declarations and constructor body assignments
- Properly handled parent class property conflicts (
entityTypeManager,configFactory,messenger) with non-promoted assignment pattern
ConfigFormBase #config_target
- Replaced all
#default_valuewith#config_targetinApiOrchestratorSettingsForm - Removed manual
submitForm()config save — parentConfigFormBasehandles it automatically - Custom
validateForm()for API token validation preserved
Composer
- Removed
drupal/corefromrequire— Drupal.org Composer façade handles core version constraint
ESLint (Zero Warnings)
- Fixed all 297 ESLint warnings across 7 JS files (request detail, analytics, monitoring, export, mirror config/listing, reports)
- Named all anonymous functions (
func-names), added JSDoc@paramtags, fixedDrupal~behaviortype syntax - Refactored deeply nested callbacks, removed unused variables, replaced
i++withi += 1
Additional Fixes
- Fixed PHPStan readonly property double-assignment in
NotificationProviderattribute - Fixed YAML prettier formatting in Magento, Shopify, and JSONPlaceholder sample config files
- Restored JS files corrupted by accidental
phpcbfrun on non-PHP files
Notes
- No API or functionality changes — this is a code standards and review compliance release
- All 122 unit tests passing (284 assertions)
- All CI checks clean: ESLint (0 errors, 0 warnings), Stylelint (0), PHPStan (0), PHPCS (0)
- Upgrade from 1.1.3 recommended
Feedback and issue reports welcome at the issue queue.