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 .module files are now empty stubs — hook logic lives in src/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, @QueueWorker annotations with PHP 8.1+ attributes across 6 entity/plugin classes
  • Converted 4 @NotificationProvider plugin annotations to attributes; created new Attribute\NotificationProvider class for custom plugin type discovery
  • All @Translation() replaced with new TranslatableMarkup(), string class references replaced with ::class syntax

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_value with #config_target in ApiOrchestratorSettingsForm
  • Removed manual submitForm() config save — parent ConfigFormBase handles it automatically
  • Custom validateForm() for API token validation preserved

Composer

  • Removed drupal/core from require — 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 @param tags, fixed Drupal~behavior type syntax
  • Refactored deeply nested callbacks, removed unused variables, replaced i++ with i += 1

Additional Fixes

  • Fixed PHPStan readonly property double-assignment in NotificationProvider attribute
  • Fixed YAML prettier formatting in Magento, Shopify, and JSONPlaceholder sample config files
  • Restored JS files corrupted by accidental phpcbf run 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.

Created by: levendclk
Created on: 10 Mar 2026 at 10:49 UTC
Last updated: 10 Mar 2026 at 10:49 UTC
Bug fixes

Other releases