承接 larataj/xml-helpers 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

larataj/xml-helpers

Composer 安装命令:

composer require larataj/xml-helpers

包简介

Powerful, lightweight Laravel XML & JSON helpers library. Convert arrays to XML, return XML responses, and generate standardized JSON API responses with ease.

README 文档

README

English version | Русская версия

English Version

Laravel XML & JSON Helpers is a powerful, lightweight, and easy-to-use library for Laravel that helps you:

  • Convert arrays to XML with ease
  • Return XML responses in Laravel controllers
  • Generate standardized JSON API responses (success, errors, pagination, and more)
  • Work with XML and JSON seamlessly

Features

Simple XML Conversion - Convert arrays to XML in one line ✅ Lightweight - Minimal dependencies, optimized for performance ✅ Easy Integration - Works seamlessly with Laravel 5.5+ ✅ Standardized API Responses - Build consistent JSON responses ✅ Pagination Support - Easy pagination for API resources ✅ Multiple HTTP Status Codes - Handle 200, 201, 204, 401, 403, 404, 500 and more ✅ Framework Auto-discovery - Automatic registration with Laravel 5.5+

Installation

Install the package via Composer:

composer require larataj/xml-helpers

Laravel will automatically register the service provider thanks to package auto-discovery. If you're using Laravel below 5.5, add it manually:

// config/app.php
'providers' => [
    Larataj\XmlHelpers\HelpersServiceProvider::class,
],

XML: Usage Guide

1. Convert Array to XML

use Larataj\XmlHelpers\ResponseHelper;

$array = [
    'name' => 'John Doe',
    'email' => 'john.doe@example.com',
    'roles' => ['admin', 'editor'],
];

$xml = ResponseHelper::arrayToXml($array);
echo $xml;

Output:

<?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. Return XML Response in Laravel

use Larataj\XmlHelpers\ResponseHelper;

return ResponseHelper::xml([
    'status' => 'success',
    'message' => 'Data processed successfully',
    'data' => ['id' => 123, 'name' => 'John Doe'],
]);

3. Using the response()->xml() Macro

return response()->xml([
    'status' => 'success',
    'data' => ['id' => 123, 'name' => 'John Doe'],
]);

JSON API: Using ApiResponse

This library includes a convenient helper for generating standardized JSON responses.

use Larataj\XmlHelpers\Response\ApiResponse;

Success Response

return ApiResponse::success(['message' => 'OK']);

Created Response (201)

return ApiResponse::created($user);

Delete Resource

return ApiResponse::deleted();

Error Responses

return ApiResponse::error(['email' => 'Email is already taken']);
return ApiResponse::error('An error occurred');

Pagination

return ApiResponse::paginated($users, UserResource::class);

Ready-to-use HTTP Status Codes

ApiResponse::unauthorized(); // 401
ApiResponse::forbidden();    // 403
ApiResponse::notFound();     // 404
ApiResponse::serverError();  // 500
ApiResponse::noContent();    // 204

Example Routes for Testing

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(),
    ]);
});

Advanced Usage

Using XmlBuilder for Complex XML

The XmlBuilder class provides a fluent interface for building complex XML documents:

use Larataj\XmlHelpers\XmlBuilder;

$xml = new XmlBuilder('catalog', ['id' => '1']);

$xml->addChild('product', [
    'name' => 'Widget',
    'price' => '19.99',
    'stock' => '100'
])
->addChild('category', 'Electronics')
->addCData('description', 'A high-quality widget for your needs')
->addComment('Add more products as needed')
->addChild('tags', ['tag1' => 'new', 'tag2' => 'popular']);

echo $xml->toString(true); // true = formatted output

Parsing XML with XmlParser

Parse and query XML documents easily:

use Larataj\XmlHelpers\XmlParser;

// Parse XML string
$parser = new XmlParser('<root><item><name>Test</name></item></root>');

// Convert to array
$array = $parser->toArray();

// Query using XPath
$items = $parser->query('//item');

// Get single element
$firstItem = $parser->queryOne('//item[1]');

// Check if element exists
if ($parser->has('//item[@id="5"]')) {
    echo 'Item with id=5 found';
}

// Get pretty-printed XML
echo $parser->prettyPrint();

Using Response Macros

You can also use convenient response macros:

// Simple XML response
return response()->xml([
    'status' => 'success',
    'message' => 'Operation completed'
]);

// Using XML builder
$builder = response()->xmlBuilder('api-response', ['version' => '1.0']);
$builder->addChild('status', 'success')
        ->addChild('timestamp', now()->toIso8601String());

return response()->xml($builder->getXml()->asXML());

Requirements

  • PHP: 7.4, 8.0, 8.1, 8.2, 8.3, 8.4+
  • Laravel: 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0+

License

This package is licensed under the MIT License.

Author: Muhammad Vafoev

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Русская версия

Laravel XML & JSON Helpers

Установка

Установите пакет через 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(),
    ]);
});

Расширенное использование

Использование XmlBuilder для сложного XML

Класс XmlBuilder предоставляет удобный интерфейс для построения сложных XML-документов:

use Larataj\XmlHelpers\XmlBuilder;

$xml = new XmlBuilder('каталог', ['id' => '1']);

$xml->addChild('товар', [
    'название' => 'Виджет',
    'цена' => '19.99',
    'количество' => '100'
])
->addChild('категория', 'Электроника')
->addCData('описание', 'Высокачественный виджет для ваших нужд')
->addComment('Добавьте больше товаров по необходимости')
->addChild('теги', ['тег1' => 'новое', 'тег2' => 'популярное']);

echo $xml->toString(true); // true = форматированный вывод

Парсинг XML с XmlParser

Легко парсьте и запрашивайте XML-документы:

use Larataj\XmlHelpers\XmlParser;

// Парсинг XML-строки
$parser = new XmlParser('<root><item><name>Тест</name></item></root>');

// Преобразование в массив
$array = $parser->toArray();

// Запрос с помощью XPath
$items = $parser->query('//item');

// Получение одного элемента
$firstItem = $parser->queryOne('//item[1]');

// Проверка существования элемента
if ($parser->has('//item[@id="5"]')) {
    echo 'Товар с id=5 найден';
}

// Красиво отформатированный XML
echo $parser->prettyPrint();

Использование макросов Response

Вы также можете использовать удобные макросы:

// Простой XML-ответ
return response()->xml([
    'status' => 'success',
    'message' => 'Операция выполнена'
]);

// Использование XML builder
$builder = response()->xmlBuilder('api-response', ['version' => '1.0']);
$builder->addChild('status', 'success')
        ->addChild('timestamp', now()->toIso8601String());

return response()->xml($builder->getXml()->asXML());

Требования

  • PHP: 7.4, 8.0, 8.1, 8.2, 8.3, 8.4+
  • Laravel: 5.5, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0+

Лицензия

Пакет распространяется под лицензией MIT.

Автор: Muhammad Vafoev

Содействие

Мы приветствуем вклад! Пожалуйста, ознакомьтесь с CONTRIBUTING.md для получения рекомендаций.

larataj/xml-helpers 适用场景与选型建议

larataj/xml-helpers 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13 次下载、GitHub Stars 达 1, 最近一次更新时间为 2025 年 01 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「json」 「xml」 「helpers」 「response」 「lightweight」 「laravel」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 larataj/xml-helpers 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 larataj/xml-helpers 我们能提供哪些服务?
定制开发 / 二次开发

基于 larataj/xml-helpers 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 13
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 18
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-01-07