定制 larafull/ymlparser 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

larafull/ymlparser

最新稳定版本:v1.2.0

Composer 安装命令:

composer require larafull/ymlparser

包简介

YML (Yandex XML format) parser for Laravel

README 文档

README

Parser for yml(yandex.market.ru) files adapted for Laravel 5.5+.

Forked from https://github.com/serkin/ymlparser

Thanks for Serkin Alexander!

YMLParser out of box have two drivers for different file sizes:

  • XMLReader - for medium and large xml files
  • SimpleXML - for small xml files

Laravel YML parsing notice:

On current step Laravel is not required, but development of this package is going inside Laravel project.

Installation

Package requires php-xmlrpc and php-mbstring

sudo apt-get install php-xmlrpc php-mbstring

Require package via Composer:

composer require larafull/ymlparser:dev-master

Usage

Remote YML parsing in Laravel etc

Since v1.2 remote parsing is available:

use YMLParser\YMLParser;
use YMLParser\Driver\XMLReader;


$url = 'https://somedomain/somefolder/somefile.yml.xml';

$parser = new YMLParser(new XMLReader);

$parser->open($url);

$offers = $parsers->getOffers(); // etc

Getting all offers from file

use YMLParser\YMLParser;
use YMLParser\Driver\XMLReader;

$filename = '/path/to/file/file.xml';

//   User XMLReader driver large xml files or SimpleXML driver for small xml files.

$parser = new YMLParser(new XMLReader);
$parser->open($filename); // throws \Exception if $filename doesn't exist or empty
foreach($parser->getOffers() as $offer): // YMLParser::getOffers() returns \Generator
    echo $offer['url'];
endforeach;

Using filters for offers:

YMLParser::getOffers() can take filter function as an argument. Filter should be an anonymous function which returns true or false

use YMLParser\YMLParser;
use YMLParser\Driver\SimpleXML;

$filename = '/path/to/file/file.xml';

$parser = new YMLParser(new SimpleXML);
$parser->open($filename);

// Anonnymous filter function example:

$filter = function($element) {
    return !empty($element['url']);
}; 

$offers = iterator_to_array($parser->getOffers($filter));

// Let's dump first offer via Laravel dump():

dump($offers[0]['params']);

Dependencies

  • PHP: >= 7.1
  • xmlrpc extension
  • mbstring extension

Modifications after fork

DriverInterface can be changed. For capability check static variables will be added.

Migrations to create models from YML will be available later.

Contribution and your ideas

Create pull requests or/and message me here:

Telegram: @vvmspace

Twitter: @vvmspace

VK: https://vk.com/it007

Instagram: https://instagram.com/insta.tagil

E-mail: vvmspace@gmail.com

统计信息

  • 总下载量: 3.37k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 0
  • Forks: 7
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-10-03