Должен быть простой вопрос. У меня еще нет 5.3, поэтому я не могу экспериментировать сам. При объявлении пространства имен во включенном файле, нужно ли объявлять полный путь пространства имен или это родительское пространство имен, которое предположительно предполагается включенным? Например, если у меня есть файл: // file1.php <?php namespace parent_space; include 'file2.php'; ?> и второй файл: […]
Example1: пространство имен Inori \ Test; class MainTest {} Example2: пространство имен Inori \ Test \ SubTest; класс SubTest расширяет ???? {} Вопрос: есть ли способ быстро подняться на уровень в пространстве имен, чтобы SubTest мог расширить MainTest? что-то вроде "../MainTest" ? Или я застрял в \Inori\Test\MainTest ?
Мне просто интересно, есть ли способ заставить класс вести себя так, как если бы он находился в глобальном пространстве имен, используя ключевое слово «use», поэтому этот класс будет вести себя как класс с именами только вне класса. Что-то вроде: namespace wherever\somewhere\deep\deep\inside; use \; // root namespace.. note: this doesn't work class stuff{ //…. } кто […]
Я ревную к Ruby с их использованием «нового» как метода. Можно ли достичь этого в PHP 5.3 с использованием пространств имен? class Foo { public function new() { echo 'Hello'; } }
//file foo.php <?php namespace foo; class foo{ function __construct(){ echo "hello"; } } ?> //file index.php <?php require_once("foo.php"); echo __NAMESPACE__; ?> Мой вопрос: из моего файла index.php можно ли узнать, что пространство имен foo.php не читает содержимое файла и не делает регулярное выражение на нем? Это просто похоже на накладные расходы. ///РЕДАКТИРОВАТЬ Мне бы очень […]
Я начал создавать свою библиотеку кода с PHP 4. Я использовал require_once для импорта классов. Теперь с PHP 5.3 я встретил определение пространств имен и их импорт. Я хотел бы изменить исходные файлы, чтобы использовать importing ( use statement) вместо использования require_once . Это верное решение, я не уверен. Думаю, это было бы легко. Определение […]
Какая польза от пространств имен в PHP? Я работал над несколькими системами MVC и не нашел для них много пользы. Я читаю о них здесь … это проблема вроде того, что я никогда не использовал их? Это то, что является хорошим стандартом кодирования, который всегда используется?
Если вы попытаетесь использовать class_exists () внутри метода класса в PHP, вы должны указать полное имя класса – текущее пространство имен не соблюдается. Например, если мой класс: <? namespace Foo; class Bar{ public function doesBooClassExist(){ return class_exists('Boo'); } } И Boo – класс (который автоматически автозагружается) и выглядит так namespace Foo; class Boo{ // stuff […]
Я получаю ошибку синтаксического анализа при попытке использовать пространство имен внутри моей собственной функции require('/var/load.php'); function go(){ use test\Class; $go = 'ok'; return $go; } echo go();
Мне было интересно, есть ли способ расширить псевдоним пространства имен PHP, чтобы получить полный идентификатор пространства имен. Цель этого заключается в том, что наша фабрика создания объектов ожидает строку с полным пространством имен, чтобы она могла автоматически загрузить ее. Вот краткий пример: <?php use my\namespace\area as MyArea; $goodObject = MyApp::factory('my\namespace\area\ClassName'); $badObject = MyApp::factory('MyArea\ClassName'); Я ищу […]