|
|
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! У меня возникла проблема с совместимостью шаблонизатора Smarty со старыми версиями php. В своём проекте использую Smarty 3. У него требования к php - версия, как минимум, 5.2. На локальном сервере, на котором разрабатываю - версия 5.2, так что всё работает отлично. На production-версии фирмы php очень стар - 5.0.2. Удивительно, но до сей поры (а проект крутится там уже 3ий год) никаких проблем с версиями не было. До последней поры. Суть вот в чём. Задумал я сделать свои функции в smarty. Всё получалось хорошо, всё работает. Как стал заливать на рабочий сервер - полезли ошибки: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Т.е. у меня добавлена блоковая функция tooltip, которая содержащийся код между тегами {tooltip id='%id%'} и {/tooltip} оборачивает div-ом и добавляет в него параметр, содержащий некую всплывающую подсказку, которая загружается этой функцией через указанный id. На всякий случай приведу код этой функции: block.tooltip.php Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Так вот, на сервере разработки (Apache 2.2, php 5.2.17) всё работает, как надо, а на production-сервере (IIS 6.0, php 5.0.3) вылезает вышеприведённая ошибка на каждом попадающемся в шаблонах теге {tooltip}. Пробовал на другом сервере (примерно такой же конфигурации, как и мой dev-сервер) - всё так же отлично работает. Значит, дело всё-таки в версии php. Хотя, странно, что эта несовместимость версий проявилась только на плагинах. Кстати, пробовал использовать встроенные плагины smarty (которые так же лежат в папке plugins, но были там изначально) - так же возникает ошибка на production. Просьба помочь. Кто знает, действительно ли проблема в версии php? И можно ли как-то устранить ошибку, заставить таки работать смарти на этом древнем пхп? Проблема в том, что администрация production-сервера в фирме очень неповоротлива и заставить её обновить серверное ПО довольно проблематично. Они там ещё держат свой сайт (тоже довольно древний) и говорят, что если обновят - то полезут ошибки типа deprecated и ничего работать не будет (вроде как раньше пробовали и забили на это дело). Посоветуйте, плз, что проще сделать? Таки допилить смарти (не знаю как, шаблонизатор этот весьма сложен и велик для таких работ) или всё же дальше долбать начальство по поводу апгрейда? Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 07:59:41 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
Уволить админов. авторошибки типа deprecated и ничего работать не будет Это не ошибки, а всего лишь уведомления, работать все должно нормально, уведомления можно отключить. (по идее они на продакшен сервере вообще не должны быть включены) Конкретно по самой ошибке - могу только предположить, что не должным образом обрабатывает данные какая-то из регулярок... других догадок пока нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 08:10:57 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
HettУволить админов. авторошибки типа deprecated и ничего работать не будет Это не ошибки, а всего лишь уведомления, работать все должно нормально, уведомления можно отключить. (по идее они на продакшен сервере вообще не должны быть включены) Конкретно по самой ошибке - могу только предположить, что не должным образом обрабатывает данные какая-то из регулярок... других догадок пока нет. Да понятно, что уволить. У нас фирма - университет, гос. контора и всё прочее, что с этим связано. Я, конечно, добьюсь своего рано или поздно. Но работать должно в самое ближайшее время :( Так дело в том, что уведомления - фиг бы с ними. Они итак отключены. Там, судя по всему, какие-то функции просто не работают. Вот что мне написал один из администраторов: В ближайшее время мы не планируем переходить на новую версию php, поскольку сотрудники отдела перезагружены работой по написанию нового сайта и поддержке старой версии. Предлагаем вам использовать то, что есть и подстраиваться под то, что имеется. Не думаю, что есть какие-то критичные моменты, которые невозможно реализовать на данной платформе. Попробуйте использовать другие версии или фреймворки. Текущая версия сайта содержит множество разделов, написанных более чем 4 года назад и обновление PHP приведет к сотне ошибок в используемых функциях, которые получали статус deprecated начиная с версии 5.1. Ага, другой шаблонизатор использовать. Шутники, одним словом. Пока попробую написать ответ, мол, дайте мне исходники вашего сайта и я протестю его на своём сервере, посмотрю, что там за ошибки такие. По смарти. Попробовал поискать в нём функции регулярок, нашлась одна функция mb_ereg_replace и 39 штук preg_replace, 53 preg_match. Но навскидку не получается оценить, в какой их них косяк. Все они поддерживаются версией 5.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 08:39:37 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
Да понятно что поддерживаются, просто версия библиотек отвечающих за их обработку - разные, какая-то старая версия возможно не корректно понимает какой-то паттерн. Сделайте debug_backtrace, возможно удастся понять в каком именно месте происходит не верная обработка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 08:50:07 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
на счет регулярок - это только предположение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 08:50:55 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
Спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 09:27:15 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
Konsul117, поройдитесь отладчиком пошагово, там и поймете какой код и при каких переменных не работает. выложите его минимал и тут уже решим что с ним делать. зы. попробуйте юзать Quicky может он вам подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2012, 10:51:56 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
В общем, решил написать свой модуль, который будет обрабатывать хуки вида [tooltip id=1]...code...[/tooltip] С отладчиками повозился, но не разобрался( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2012, 17:08:17 |
|
||
|
Smarty на старой версии php
|
|||
|---|---|---|---|
|
#18+
зачем это вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2012, 00:18:51 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=134&tid=1464672]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
269ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 564ms |

| 0 / 0 |
