simplexml a iterátor šablon v Nette
- met
- Člen | 5
Ahoj,
zkoušel jsem dnes použít SimpleXML spolu se šablonami z Nette a nedařilo se mi klasickou kolekci nodů ze SimpleXML použít pro foreach iterátor uvnitř šablon. Přitom v klasickém foreach v PHP to jako iterátor použít lze.
Zvolil jsem nakonec manévrovací strategii, vyřešil to obchvatem přes PHP iterátor a do šablon jsem dorazil s již předpřipraveným vstupem.
Nevím, kde je zakopaný pes (natož elePHPant!), ani zda je to řešitelné na straně Nette, ale přímá podpora SimpleXML v Nette šablonách by byla jistě milá 8-)
Pěkný den Davídkovi i všem ostatním
- Ondřej Mirtes
- Člen | 1536
foreach v Nette šablonách využívá SmartCachingIterator (potomek CachingIterator z SPL), tak bych se po nekompatibilitě rozhlížel tam.
- David Grudl
- Nette Core | 8249
To je regulérní vada PHP, totiž SimpleXMLElement neimplementuje Iterator a tudíž se nad ním „nedá“ iterovat. Ale PHP nad ním nějak magicky iterovat umí, uživatelským třídám v Nette už to dovoleno není. PHP zavádí další třídu, SimpleXMLIterator, nad kterou už iterovat lze. Bordel, bordel.
Tudíž řešením by mělo být nahradit
za
Respektive:
za