Я сделал небольшую сеть, используя пространства имен. У меня это на моем компьютере, и я собираюсь переместить его на бесплатный хостинг, который использует php 5.2. Синтаксический ярлык для php 5.2 интерпретирует их как ошибки.
Поддерживаются ли пространства имен php 5.2?
Если нет, то каким образом можно использовать их с небольшими изменениями в существующем коде?
Пространства имен не поддерживаются до 5.3. На данный момент нет способа адаптировать их к 5.2.
Пространства имен доступны только по 5.3
По крайней мере, в случае классов вы можете использовать функцию class_exists
чтобы проверить, был ли класс уже определен с похожим именем в глобальном пространстве имен. В сочетании с __autoload()
вы можете создать один универсальный псевдоним и проверить систему для обоих классов, названных исходным именем, а также с именем с дополнительным дополнительным идентификатором. Я буду использовать «ns» в качестве примера.
function __autoload($class){ try{ require_once('ns'.$class.'.php'); }catch(Exception $e){ echo 'The class is unavailable in pseudo-namespace as well as global'; } }
Просто убедитесь, что требуемые точки маршрута находятся там, где вы держите свои модели. Вы можете использовать другую папку вместо псевдонима.
Таким образом, любые повторяющиеся классы могут быть помещены в файлы отдельно от основного исполнения, которые включены только в том случае, если они не существуют в глобальном. Хотя это не ограничивает проблему физического переименования классов, это позволит вам поместить ваши определения в разные каталоги для целей управления версиями и т. Д.
Пространства имен доступны в PHP с PHP 5.3.0.
Источник: http://www.php.net/manual/en/language.namespaces.rationale.php
http://www.php.net/manual/en/language.namespaces.rationale.php
Пространства имен доступны в PHP с PHP 5.3.0.
Я только что столкнулся с этой проблемой, я разработал сам сценарий загрузки изображений и добавил некоторый сторонний код для помощи в обработке изображений (обрезка), но они используют пространства имен, отлично работают на моей машине разработки, но когда я загружаюсь на живой сервер, я получаю Ошибка анализа.
К счастью, мой хост поддерживает php 5.3 и 5.4, поэтому ive попросил их изменить его на 5.3 для меня, я надеюсь, что это решит проблемы, возникающие у меня, просто удалив пространства имен, с которыми скрипт терпит неудачу 🙁
Павел