larataj / laravel-xml-helpers
A Laravel library to convert arrays to XML and provide XML responses.
2.0.0
2025-03-25 10:36 UTC
Requires
- php: ^7.4|^8.0
README
Laravel XML & JSON Helpers** — это библиотека, которая позволяет легко:
- Преобразовывать массивы в XML
- Возвращать XML-ответы в Laravel
- Формировать стандартизированные JSON API-ответы (успешные, ошибки, пагинация и др.)
Установка
Установите пакет через Composer:
composer require larataj/xml-helpers
Laravel автоматически зарегистрирует провайдер благодаря автодетекту.
Если вы используете Laravel ниже 5.5, добавьте вручную:
// config/app.php 'providers' => [ Larataj\XmlHelpers\HelpersServiceProvider::class, ],
XML: Использование
1. Преобразование массива в XML
use Larataj\XmlHelpers\ResponseHelper; $array = [ 'name' => 'John Doe', 'email' => 'john.doe@example.com', 'roles' => ['admin', 'editor'], ]; $xml = ResponseHelper::arrayToXml($array); echo $xml;
Результат:
<?xml version="1.0" encoding="UTF-8"?> <response> <name>John Doe</name> <email>john.doe@example.com</email> <roles> <item>admin</item> <item>editor</item> </roles> </response>
2. Возврат XML-ответа в Laravel
use Larataj\XmlHelpers\ResponseHelper; return ResponseHelper::xml([ 'status' => 'success', 'message' => 'Данные обработаны', 'data' => ['id' => 123, 'name' => 'John Doe'], ]);
3. Использование макроса response()->xml()
return response()->xml([ 'status' => 'success', 'data' => ['id' => 123, 'name' => 'John Doe'], ]);
JSON API: Использование ApiResponse
Библиотека включает удобный хелпер для формирования стандартизированных JSON-ответов.
use Larataj\XmlHelpers\Response\ApiResponse;
Успешный ответ
return ApiResponse::success(['message' => 'OK']);
Ответ 201 Created
return ApiResponse::created($user);
Удаление ресурса
return ApiResponse::deleted();
Ошибки
return ApiResponse::error(['email' => 'Email уже занят']); return ApiResponse::error('Произошла ошибка');
Пагинация
return ApiResponse::paginated($users, UserResource::class);
Готовые статусы:
ApiResponse::unauthorized(); // 401 ApiResponse::forbidden(); // 403 ApiResponse::notFound(); // 404 ApiResponse::serverError(); // 500 ApiResponse::noContent(); // 204
Пример маршрута для теста
Route::get('/test-xml', function () { return response()->xml([ 'name' => 'Laravel', 'version' => '10.x', 'features' => ['fast', 'secure', 'elegant'] ]); }); Route::get('/test-json', function () { return \Larataj\XmlHelpers\Response\ApiResponse::success([ 'framework' => 'Laravel', 'version' => app()->version(), ]); });
Лицензия
Пакет распространяется под лицензией MIT.
Автор: Muhammad Vafoev