Eclipxe/XmlResourceRetriever
![Source Code][badge-source]
![Latest Version][badge-release]
[![Build Status][badge-build]][build]
![Coverage Status][badge-coverage]
, (*1)
XSD and XLST resource downloader for local storage, (*2)
The purpose of this library is to download recursively XML resources from the internet to a local storage for further usage.
At this moment it only allows Schemas (XSL) and Transformations (XSLT) but is easely extensible implementing the
RetrieverInterface
interface or extending the AbstractXmlRetriever
class., (*3)
For every downloaded file it will override its dependences to a relative location, in this way, every dependence
should be available to work offline., (*4)
You can use the local object PhpDownloader
that simply uses copy
function to get and store a file from internet.
You can also use your own implementation of the DownloaderInterface
according to your needs.
If you built a configurable and useful downloader class feel free to contribute it to this project., (*5)
Installation
Use composer, so please run, (*6)
composer require eclipxe/xmlresourceretriever
Basic usage
<?php
declare(strict_types=1);
/*
* This will download the file into
* /project/cache/www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt
* and all its includes and imports (currently 27 files)
*/
use Eclipxe\XmlResourceRetriever\XsltRetriever;
$xslt = new XsltRetriever('/project/cache');
$local = $xslt->retrieve('http://www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt');
echo $local; /* /project/cache/www.sat.gob.mx/sitio_internet/cfd/3/cadenaoriginal_3_3/cadenaoriginal_3_3.xslt */
These methods apply to XslRetriever
and XsltRetriever
, (*7)
-
retrieve($url)
Download recursively an url and store it into the retriever base path,
it changes the child elements that contains references to other files.
-
download($url)
Download an url and store it into the retriever base path.
It does not validate the file for xml errors. It does not download dependences.
-
buildPath($url)
Return the location of were a file should be stored according to the base path.
-
setDownloader($downloader)
Change the default PhpDownloader
to a custom implementation.
XsdRetriever
search for namespace http://www.w3.org/2001/XMLSchema
elements import
and include
., (*8)
XsltRetriever
search for namespace http://www.w3.org/1999/XSL/Transform
elements import
and include
., (*9)
PHP Support
This library is compatible with the latest PHP supported version and above.
Please, try to use the full potential of the language., (*10)
Contributing
Contributions are welcome! Please read CONTRIBUTING for details
and don't forget to take a look the TODO and CHANGELOG files., (*11)
Copyright and License
The Eclipxe\XmlResourceRetriever
library is copyright © Carlos C Soto
and licensed for use under the MIT License (MIT). Please see LICENSE for more information., (*12)