gettext — конфликт имени функции PHP

У нас есть веб-сайт на основе PHP, который работает с 2005 года. Мы только что добавили нового разработчика. У нас каждый разработчик устанавливает локальный стек Apache для отладки. Когда он запускает сайт на своей рабочей станции, появляется сообщение об ошибке, связанное с конфликтом имен с одной функцией.

В частности, у нас есть функция GetText, которая принимает 5 параметров. В его системе он получает сообщение о том, что функция не может быть повторно объявлена. Это противоречит функции, которая называется gettext (обратите внимание на различие в заглавных буквах), которая, как говорят, принимает одну переменную.

Мы не получаем этот конфликт ни в одном из наших других случаев. Другие примеры включают наш производственный веб-сайт и три веб-сайта разработки. Все эти экземпляры работают в Unix FreeBSD. У нас есть разработчики, работающие под OS OS X и на разных машинах Windows. Рассматриваемый разработчик работает на Windows 7.

Мы не видим никакой подобной функции «gettext» в нашей базе кода, включая библиотеки Pear. В качестве временного решения мы переименовали нашу функцию в «XGetText». Это излечивает проблему.

Откуда этот конфликт?

1

Решение

Этот разработчик имеет расширение gettext активен в своей установке PHP, которая определяет функцию gettext, Капитализация не имеет значения для PHP. Ему либо придется деактивировать расширение в его php.ini, если это возможно, или перекомпилируйте PHP, чтобы исключить расширение gettext (в этом случае я бы предложил использовать виртуальную машину для установки пользовательской версии PHP).

Кстати, gettext — довольно популярное и часто используемое расширение, которое называет вашу пользовательскую функцию GetText плохой выбор

2

Другие решения

PHP имеет встроенный gettext функции (как в PHP 4, так и в PHP 5), а имена функций PHP не чувствительны к регистру. Предположительно, ваш PHP не скомпилирован с --with-gettext флаг и его есть.

0

Отключить Расширение Gettext, как я уверен, вы не собираетесь использовать его в своем проекте

Вот как это делается в WAMP:

введите описание изображения здесь

-1
По вопросам рекламы [email protected]