[sisyphus] PHP SPL не имеет класса SimpleXMLIterator
Павел
rap-kasta на mail.ru
Чт Май 7 16:24:53 MSD 2009
On Среда 06 мая 2009 21:24:41 Alexey Gladkov wrote:
> On 06.05.2009 19:07, Павел wrote:
> > и заменить в нём файлы, отвечающие за spl на взятые "откуда нибудь"? И
> > если да, то может ли этим "откуда нибудь" стать например вот этот (
> > http://www.php.net/get/php-5.2.9.tar.gz/from/a/mirror ) архив?
>
> Конечно можете. Это называется обновить пакет php5. Только положив
> новый php-5.2.9.tar.gz вам предётся обновить все патчи и suhosin.
Итак, я обновил...установил и ...ничего не поменялось...Что же...чуть чуть
погуглил и увидел что с отключенным при компиляции simpleXML simpleXMLIterator
создан не будет.
Мораль: если надо SimpleXMLIterator, то не делаем disable-simplexml, при этом
конечно расширение simpleXML стоит выключить, дабы не получать сообщения "
Module 'SimpleXML' already loaded" (Ниже написал хаутушку)
P.S.Алексей, не могли бы вы в следующем коммите как-то разрулить эту ситуацию,
я с ней справился, но вот мало ли у кого вновь будет такая проблемка...
HowTO:
//Только если php -i|grep SimpleXMLIterator ничего не возвращает!
1)Качаем src.rpm пакет с сизифа, распаковываем куданить
2)Качаем сорс-пакет с php.net (мб в src.rpm уже всё есть...проверьте-если есть
директория php5-source.tar.bz2/php5-source/ext/simplexml и она не пустая...то
я думаю этот и следующий шаг можно пропустить)
3)распаковываем в другую директорию скачанный в (2) архив, делаем его по
структуре аналогичным php5-source.tar.bz2, называем также и перемещаем в
директорию (1)
4)правим spec: удаляем строчку --disable-simplexml \
5)переносим изменённый (1) в ~/RPM/SOURCES
6)спек кладём в ~/RPM/SPECS
7)делаем rpmbuild -ba <имя_спека>
8)идём в директорию с билдами (в (7) будет написано куда) и устанавливаем
rpm-ки.
В моём случае: rpm -Uvh *
9)Тестируем:
php -r 'new SimpleXMLIterator() ';
Не обращаем внимание на ошибки и сомтрим есть ли заветное "Uncaught exception
'Exception' with message 'SimpleXMLElement::__construct() expects at least 1
parameter, 0 given' in Command line code", если есть, то не поверите: всё
круто :-)
Если расширение simplexml было установлено,то должна появиться ошибка (в
первой строке): "Module 'SimpleXML' already loaded"", чтобы от него
избавиться, нам придётся избавиться и от рсширения simplexml как расширения
(ибо он у нас "вшит в php"): добавляем во все используемые
/etc/php/<ВЕРСИЯ>/<CLI/apache../apache2../etc...>/php.d/simplexml.ini точку с
запятой (;) вначало и...радуемся жизни :-)
--
===============
А ещё говорят так:
Таланты истинны на критику не злятся;
Их повредить она не может красоты.
Одни поддельные цветы дождя боятся!
-- И.А.Крылов
[fortune]
Подробная информация о списке рассылки Sisyphus