MaxSite CMS

Официальный сайт

Непонятные проблемы...

Рубрика: CodeIgniter -> Ход работ
Среда, 28 мая 2008 г.
Просмотров: 91
Подписаться на комментарии по RSS

Что-то явно не так в CodeIgniter. Столкнулся с серьезной проблемой, которую так и не могу побороть. Дело в XmlRPC, хотя я думаю, что в каких-то ситуациях дело не только в этой библиотеке. Скорее всего существует ошибка при подключении разных классов в основном контролере. То есть когда я в основном контролере передаю управление во вьювер, то в этом вьювере, при условии, что должен подключиться  еще один класс (через new), начинают твориться странные вещи.

Я уже писал, что не смог перейти на 1.6.2 из-за того, что XmlRPC вдруг перестала видеть базу данных. Все попытки вручную её прописать, все равно не срабатывают - в основном контролере она есть и дальше, хоть тресни, не видно.

Сегодня столкнулся с аналогичной проблемой, только на другом хостинге. XmlRPC опять напрочь отказывается работать. И опять проблема с подключением классов. На сей раз вылезает ошибка:

  1.  Fatal error: Cannot redeclare class ci_session in /.../system/libraries/Session.php on line 0

При этом если прописать библиотеку в автозагрузку, никакого эффекта. Поэтому пришлось отключить автозагрузку  и прописать подключение библиотек вручную. При этом, что интересно, хотя в основном контролере все прописано, а в XmlRPC стоит и «parent::Controller();» и «$CI = & get_instance();» (и каких только вариантов я не перепробовал), все равно происходит какая-то ошибка и база опять отваливается.

Впрочем есть у меня предположение, что дело здесь вовсе не в CodeIgniter и моих кривых ручках, а самом хостинге. Проблема возникает на хостинге с PHP 4.4.8. На локальной машине и на другом хостинге, где стоит PHP 5.2 подобных проблем не наблюдается.

Комментариев: 7

  1. 2008-05-28 в 04:19:22 | Wave (анонимно)

    Максим, а вы проверяли на php5, работает ли то, из-за чего вы на 1.6.2 не переходите?

    А на code-igniter.ru/forum/ - заглядываете? Там люди, которые с разработчиком игнитера общаются.

    А поддержка четвёрки в игнитере сделана хаками, чтобы загрузка как раз работала. Вообще четвёрка - это атавизм. Хотя, понимаю, приходится и на четвёрке ещё иногда работать.

  2. 2008-05-28 в 07:08:18 | JonNiBravo (анонимно)

    Макс, может хрен с ним с этим PHP4, пора его уже выбросить на помойку, ты пишешь цмс нового поколения, зачем же пользоваться инструментами прошлого века

    PS

    Это уже третий коммент, я не знаю дошли ле прежние 2. что? попали на предмодерацию? ты хоть как то об этом сообщи чтобы я не беспокоился.

  3. 2008-05-28 в 10:41:33 | Максим

    Да, я извиняюсь, работает премодерация, и никакого сообщения не выводится. Пока не решил как его добавить.

    По php4 я уже думал. Только что делать с теми, у кого такой хостинг. У меня например он до сих пор на одном из серверов. ohoh

  4. 2008-05-28 в 13:15:24 | Sam (анонимно)

    Если удастся локализовать ошибку — будет просто замечательно.

    Какие именно условия?

    Нет ли попытки испольнить другой контроллер второй раз?

  5. 2008-05-28 в 14:37:48 | Максим

    Не знаю... Пока ничего не получается, возможно есть какая-то особенность подключения классов, но я не понимаю в какую сторону рыть.

    Интересный момент нашел.

    В Base4.php &get_instance возвращается как global $CI. Но есть условие is_object. Так вот, если просто объявить в самом классе глабально $CI (без &get_instance), то чудесным образом появляются все поля этого объекта. Путем тыка обавил еще и is_array, работает лучше. Но все равно какие-то глюки с подключением остаются. Ну и в php5 данный способ не катит (только &get_instance).

    В общем, я просто вынес функции добавления/редактирования в отдельный файл и подключаю его как обычно через require_once - все замечательно работает даже на 1.6.2. Придется оставить XMLRPC до лучших времен. Скоро выложу систему, может кто-то и подскажет куда рыть.

  6. 2008-05-28 в 16:56:01 | Sam (анонимно)

    Хорошо. Но если будет время разобраться — попытайся примерно локализовать проблему, чтобы зарепортить багу. В Ellislabs разберутся…

  7. 2008-05-30 в 13:39:37 | Sam (анонимно)

    Неофициальная curl-либа:

    http://alexpolski.com/2008/05/14/bugfixes-in-curl-library-for-codeigniter/

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



(обязательно)