From 489b2d003795ce9a518f97a64dfa0720311a3fda Mon Sep 17 00:00:00 2001 From: Ibrahim BinAlshikh Date: Mon, 1 Jun 2026 13:58:12 +0300 Subject: [PATCH] deprecate(#122): mark WebServicesManager as deprecated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add @deprecated to class docblock with migration guide to RequestProcessor - Add @deprecated to process() and sendResponse() methods - Update README Quick Start to show RequestProcessor as primary approach - All existing tests pass unchanged (full backward compatibility) - Step 5 of 5 in ADR-0005 (RequestProcessor refactor) — COMPLETE --- README.md | 7 ++++++- WebFiori/Http/WebServicesManager.php | 21 +++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c0dc1c7..332f7ef 100644 --- a/README.md +++ b/README.md @@ -151,9 +151,14 @@ class HelloService extends AbstractWebService { } ``` -Both approaches work with `WebServicesManager`: +Both approaches work with `RequestProcessor` (recommended) or `WebServicesManager`: ```php +// Recommended: process a single service directly +$processor = new RequestProcessor(); +$processor->process(new HelloService()); + +// Legacy: register services in a manager $manager = new WebServicesManager(); $manager->addService(new HelloService()); $manager->process(); diff --git a/WebFiori/Http/WebServicesManager.php b/WebFiori/Http/WebServicesManager.php index 54bad53..b87d0b9 100644 --- a/WebFiori/Http/WebServicesManager.php +++ b/WebFiori/Http/WebServicesManager.php @@ -20,9 +20,22 @@ * is used to group related services. For example, if we have creat, read, write and * delete services, they can be added to one instance of this class. * - * When a request is made to the services set, An instance of the class must be created - * and the method WebServicesManager::process() must be called. + * @deprecated Use RequestProcessor for processing individual services directly. * + * Migration: + * ```php + * // Before: + * $manager = new WebServicesManager(); + * $manager->addService(new MyService()); + * $manager->process(); + * + * // After: + * $processor = new RequestProcessor(); + * $processor->process(new MyService()); + * ``` + * + * For OpenAPI generation, use OpenAPI\OpenAPIGenerator. + * For error responses, use ErrorResponse. */ class WebServicesManager implements JsonI { /** @@ -492,8 +505,7 @@ public function notAuth(?string $message = null) { /** * Process user request. * - * This method must be called after creating any - * new instance of the class in order to process user request. + * @deprecated Use RequestProcessor::process() instead for processing individual services. * * @throws Exception */ @@ -677,6 +689,7 @@ public function sendHeaders(array $headersArr) { * string, an object... . If null is given, the parameter 'more-info' * will be not included in response. Default is empty string. Default is null. * + * @deprecated Use ErrorResponse or Response directly instead. */ public function sendResponse(string $message, int $code = 200, string $type = '', mixed $otherInfo = '') { $json = new Json();