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,
],
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>
use Larataj\XmlHelpers\ResponseHelper;
return ResponseHelper::xml([
'status' => 'success',
'message' => 'Данные обработаны',
'data' => ['id' => 123, 'name' => 'John Doe'],
]);
return response()->xml([
'status' => 'success',
'data' => ['id' => 123, 'name' => 'John Doe'],
]);
Библиотека включает удобный хелпер для формирования стандартизированных JSON-ответов.
use Larataj\XmlHelpers\Response\ApiResponse;
return ApiResponse::success(['message' => 'OK']);
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