Pass file handle in XMLReader
| From: | Aimeos | Norbert Sendetzky | Date: | Wed, 02 Dec 2020 17:17:52 +0000 |
| Subject: | Pass file handle in XMLReader | ||
| Groups: | php.internals | ||
| Request: | Send a blank email to internals+get-112377@lists.php.net to get a copy of this message | ||
Hi internals
The XMLReader object only allows a file name in the constructor and the
open() method. While this is OK most of the time, files stored at cloud
services not accessible via an URL must be downloaded first. For big
files (e.g 100MB to 1GB and more), this requires a lot of time and
resources.
If the XMLReader would be able accept a file handle too, we could pass
the handle of a stream to the methods and the XMLReader could process
the XML data on the fly without the need of a local copy.
Is it possible to allow a file handle in the existing methods or is a
new one required due to type or other constraints like implementation
difficulties?
The open() method is implemented here:
https://github.com/php/php-src/blob/faea5ab837ab6393c8821f85cf8abe2723593e8e/ext/xmlreader/php_xmlreader.c#L835-L887
Not sure where the constructor is implemented.
Thanks
Norbert