[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как добавить класс в php
out22
Доброго времени суток)

Суть проблемы:
После переноса сайта на новый сервер перестал отображаться сайт на Joomla, всё пути правильные, с базой и файлами всё в порядке.

Смотрю в логах:

Цитата
PHP Fatal error: Class 'DateTime' not found in /var/../date.php on line 20


Ошибка возникает в этой строке:

class JDate extends DateTime


Нашел информацию по установке класса:

Цитата
http://php.net/manual/ru/datetime.installation.php


На сервере установлено php-5.1.6, обновление до 5.2 не рассматривается.)

В мануале сказано:


Цитата
Хотя класс DateTime (и связанные с ним функции) включены по умолчанию в PHP 5.2.0, существует возможность добавить экспериментальную поддержку в PHP 5.1.x, используя следующий флаг перед настройкой/компиляцией: CFLAGS=-DEXPERIMENTAL_DATE_SUPPORT=1


Так вот сам вопрос состоит в том как и куда добавить этот самый флаг?)
Есть ли другой вариант решения данной проблемы?)

Заранее спасибо за ответы)



Спустя 51 минута, 29 секунд (15.01.2012 - 02:40) caballero написал(а):
Цитата
Так вот сам вопрос состоит в том как и куда добавить этот самый флаг?)

Надо полагать речь идет о сборке PHP с сорцов

Спустя 9 часов, 5 минут, 49 секунд (15.01.2012 - 11:46) sergeiss написал(а):
Цитата (caballero @ 15.01.2012 - 03:40)
Надо полагать речь идет о сборке PHP с сорцов

Скорее всего smile.gif

Цитата (out22 @ 15.01.2012 - 02:48)
Так вот сам вопрос состоит в том как и куда добавить этот самый флаг?)
Есть ли другой вариант решения данной проблемы?)

На первый вопрос тебе уже ответили.

А на второй вопрос отвечать... То я вижу 2 варианта:
1. Либо ставить ПХП выше 5.1, но ты это почему-то не хочешь (не можешь?) делать.
2. Либо - написать сначала свой класс DateTime, с тем же функционалом, что и в ПХП 5.2.

Я бы предпочёл "погиморроиться" с вариантом 1, чем с вариантом 2 wink.gif

Спустя 3 часа, 31 минута, 53 секунды (15.01.2012 - 15:18) out22 написал(а):
Цитата
Надо  полагать речь  идет  о  сборке  PHP    с  сорцов

Спасибо, теперь понятно)

Цитата
1. Либо ставить ПХП выше 5.1, но ты это почему-то не хочешь (не можешь?) делать.

Дело в том что на сервере множество скриптов настроенных под 5.1 и созданых и используемых не мной, обновление php принесет множество проблем.

Цитата
2. Либо - написать сначала свой класс DateTime, с тем же функционалом, что и в ПХП 5.2.

Каким образом это можно сделать?

Спустя 48 минут, 39 секунд (15.01.2012 - 16:06) caballero написал(а):
sergeiss
Есть еще третий - убрать наследование и дописать нужные методы (компилятор подскажет где)
Тогда не будет проблем при переходе на версию где класс уже есть.

Цитата
Каким образом это можно сделать?

Изучивши PHP.

Спустя 38 минут, 51 секунда (15.01.2012 - 16:45) sergeiss написал(а):
Цитата (out22 @ 15.01.2012 - 16:18)
Каким образом это можно сделать?

Я же уже ответил: "написавши сначала свой класс". То есть, читаешь описалово DateTime и делаешь такие же функции у класса smile.gif - чрезвычайно извратный способ. Но он возможен, поэтому я о нем и написал. Это даже хуже, чем изобретание велосипеда.

Цитата (out22 @ 15.01.2012 - 16:18)
на сервере множество скриптов настроенных под 5.1 и созданых и используемых не мной, обновление php принесет множество проблем.

А какие могут быть проблемы, что именно настроено под 5.1 и не будет работать в более свежих версиях ПХП? Да и в любом случае надо будет когда-то переходить на новые версии.

Спустя 5 минут, 53 секунды (15.01.2012 - 16:51) killer8080 написал(а):
Цитата (out22 @ 15.01.2012 - 14:18)
Дело в том что на сервере множество скриптов настроенных под 5.1 и созданых и используемых не мной, обновление php принесет множество проблем.

Почему? То что работало в 5.1, должно работать и в 5.2.

Спустя 1 день, 9 часов, 24 минуты, 36 секунд (17.01.2012 - 02:16) out22 написал(а):
Спасибо всем за ответы и помощь, обновил до php-5.2.17. Стало без ошибок, и со скриптами проблем не было)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.