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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits