On 23 May 2013, at 15:54, Richard Quadling <[email protected]> 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/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php