Ответ 1
Пространства имен не поддерживаются до 5.3. На данный момент нет способа адаптировать их к 5.2.
Я сделал небольшую паутину, используя пространства имен. У меня это на моем компьютере, и я собираюсь переместить его на бесплатный хостинг, который использует 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.
Я только что столкнулся с этой проблемой, и сам разработал загрузку изображений script сам и добавил некоторый сторонний код для помощи в обработке изображений (обрезка), но они используют пространства имен, отлично работают на моей машине разработки, но когда я загружаюсь на live server, я получаю ошибку Parse.
К счастью, мой хост поддерживает php 5.3 и 5.4, поэтому я попросил их изменить его на 5.3 для меня, я надеюсь, что он решит проблемы, возникающие у меня, просто удалив пространства имен, сделанные script fail:(
Пол