Re: Simple objective which always seems to make me think I'm doing it wrong.

From: Date: Thu, 23 May 2013 15:31:52 +0000
Subject: Re: Simple objective which always seems to make me think I'm doing it wrong.
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-321176@lists.php.net to get a copy of this message
On 23 May 2013, at 15:54, Richard Quadling <rquadling@gmail.com> wrote: > I'm building an XML file. > > It is within an OOP structure and is pretty simple. > > The method is ... > > /** > * Turn an error from the W2GlobalData service into normal document as > this will make it easier to integrate downstream. > * > * @param \SimpleXMLElement $o_XML > * @return \SimpleXMLElement > * @todo Build document to be a correct request header with the > embedded error message. > */ > public function normaliseError($o_XML) > { > $s_XML = <<< END_XML > <?xml version="1.0" encoding="UTF-8"?> > <doc> > <service>UK Verification (Edited)</service> > <searchtext> > <forename>{$this->a_RequestData['forename']}</forename> > <middlename>{$this->a_RequestData['middlename']}</middlename> > <surname>{$this->a_RequestData['surname']}</surname> > <address1>{$this->a_RequestData['address1']}</address1> > <address2>{$this->a_RequestData['address2']}</address2> > <postcode>{$this->a_RequestData['postcode']}</postcode> > <gender>{$this->a_RequestData['gender']}</gender> > <dob>{$this->a_RequestData['dob']}</dob> > > > <drivinglicence>{$this->a_RequestData['drivinglicence']}</drivinglicence> > <passport>{$this->a_RequestData['passport']}</passport> > <mpan>{$this->a_RequestData['mpan']}</mpan> > </searchtext> > > > <clientreference>{$this->a_RequestData['clientreference']}</clientreference> > <resultcount/> > <searchdate/> > <expiry/> > <timetaken/> > <reportemailsent/> > <error> > {$o_XML->error} > </error> > </doc> > END_XML; > return new SimpleXMLElement($s_XML); > } > > Nothing particularly difficult to understand, but I just don't like having > the XML embedded this way. > > Ideally, I want a scope aware include function, so I can say _something_ > like ... > > $s_XML = require_once __CLASS__ . DIRECTORY_SEPARATOR . > 'normalisedError.xml'; > > and have the include be aware of the local scope (so $o_XML and $this are > all happy). > > I know I can write a template parser, but I'm just missing an obvious > solution that isn't fat and doesn't require a massive learning for the > other devs. > > Ideas? normalisedError.xml: <?php return <<< END_XML the xml here END_XML; Then in your class your require_once line will work. However, use require instead of require_once otherwise if the function gets called twice it won't work the second time. -Stuart -- Stuart Dallas 3ft9 Ltd http://3ft9.com/

« previous php.general (#321176) next »