Skip to content

Conversation

@jabisu
Copy link

@jabisu jabisu commented Jun 15, 2015

Per tal que sigui compatible amb PHP 5.6, s'han fet els següents canvis:

  • La funció end sobre Arrays no aplica bé sobre SimpleXMLElement, de fet sempre retorna "false" i ens acabem quedant sense dades:
    /com/calidos/dani/php/XPathSimpleFilter.php
           static private function flattenAsNeeded($content) {
               // ...
363            return $content->__toString();    // FIXED: return end($content);
               // ...
  • S'estava reutilitzant $structure dins d'un foreach:
    /com/calidos/dani/php/XPathSimpleFilter.php
           static private function flattenGivenProvisionalKeys($structure, $provisionalKeys) {
               // ...
234            foreach ($structure as $k_ => $structure_) {    // FIXED: foreach ($structure as $k_ => $structure) {
               // ...
  • El paràmetre opcional $options es perdia en invocar recursivament function asSimpleXML:
    /com/calidos/dani/php/XPathSimpleFilter.php
135        static public function asSimpleXML($structure, $options = XPathSimpleFilter::CDATAWRAP) {
               // ...
137            $outXmlString_ = XPathSimpleFilter::asXML($structure, $options);
               // ...
  • Afegit control a l'hora de mostrar informació de nodes aniuats més d'un nivell.
   // base case
    $content_ = $xml->xpath($xpath_);

    // Fix when 1 element is returned as SimpleXMLElement and we want the node content
    if (is_array($content_) && count($content_) === 1 ){
        $content_ = $content_[0]->__toString();
    }

Per tal que sigui compatible amb PHP 5.6, s'han fet els següents canvis:

1. La funció end sobre Arrays no aplica bé sobre SimpleXMLElement, de fet sempre retorna "false" i ens acabem quedant sense dades:
/com/calidos/dani/php/XPathSimpleFilter.php
           static private function flattenAsNeeded($content) {
               // ...
363            return $content->__toString();    // FIXED: return end($content);
               // ...
2. S'estava reutilitzant $structure dins d'un foreach:
/com/calidos/dani/php/XPathSimpleFilter.php
           static private function flattenGivenProvisionalKeys($structure, $provisionalKeys) {
               // ...
234            foreach ($structure as $k_ => $structure_) {    // FIXED: foreach ($structure as $k_ => $structure) {
               // ...
3. El paràmetre opcional $options es perdia en invocar recursivament function asSimpleXML:
/com/calidos/dani/php/XPathSimpleFilter.php
135        static public function asSimpleXML($structure, $options = XPathSimpleFilter::CDATAWRAP) {
               // ...
137            $outXmlString_ = XPathSimpleFilter::asXML($structure, $options);
               // ...
4.  Afegit control a l'hora de mostrar informació de nodes aniuats més d'un nivell.
   // base case
    $content_ = $xml->xpath($xpath_);

    // Fix when 1 element is returned as SimpleXMLElement and we want the node content
    if (is_array($content_) && count($content_) === 1 ){
        $content_ = $content_[0]->__toString();
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant