Ejegg has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/397608 )
Change subject: Use XMLReader for WX audit ...................................................................... Use XMLReader for WX audit Bug: T182605 Change-Id: I423bc0b89dac4badc9a973ec38ae6acd2eb8324a --- M PaymentProviders/Ingenico/Audit/IngenicoAudit.php 1 file changed, 11 insertions(+), 10 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikimedia/fundraising/SmashPig refs/changes/08/397608/1 diff --git a/PaymentProviders/Ingenico/Audit/IngenicoAudit.php b/PaymentProviders/Ingenico/Audit/IngenicoAudit.php index b6269c9..54b2a4f 100644 --- a/PaymentProviders/Ingenico/Audit/IngenicoAudit.php +++ b/PaymentProviders/Ingenico/Audit/IngenicoAudit.php @@ -1,12 +1,12 @@ <?php namespace SmashPig\PaymentProviders\Ingenico\Audit; -use DOMDocument; use DOMElement; use RuntimeException; use SmashPig\Core\DataFiles\AuditParser; use SmashPig\Core\Logging\Logger; use SmashPig\Core\UtcDate; use SmashPig\PaymentProviders\Ingenico\ReferenceData; +use XMLReader; class IngenicoAudit implements AuditParser { @@ -62,17 +62,18 @@ $this->fileData = []; $unzippedFullPath = $this->getUnzippedFile( $path ); - // load the XML into a DOMDocument. - // Total Memory Hog Alert. Handle with care. - $domDoc = new DOMDocument( '1.0' ); - Logger::info( "Loading XML from $unzippedFullPath" ); - $domDoc->load( $unzippedFullPath ); - unlink( $unzippedFullPath ); + Logger::info( "Opening $unzippedFullPath with XMLReader" ); + $reader = new XMLReader(); + $reader->open( $unzippedFullPath ); Logger::info( "Processing" ); - - foreach ( $domDoc->getElementsByTagName( 'DataRecord' ) as $recordNode ) { - $this->parseRecord( $recordNode ); + while ( $reader->read() ) { + if ( $reader->nodeType === XMLReader::ELEMENT && $reader->name == 'tns:DataRecord' ) { + $record = $reader->expand(); + $this->parseRecord( $record ); + } } + $reader->close(); + unlink( $unzippedFullPath ); return $this->fileData; } -- To view, visit https://gerrit.wikimedia.org/r/397608 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I423bc0b89dac4badc9a973ec38ae6acd2eb8324a Gerrit-PatchSet: 1 Gerrit-Project: wikimedia/fundraising/SmashPig Gerrit-Branch: master Gerrit-Owner: Ejegg <ej...@ejegg.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits