use Symfony\Component\HttpFoundation\Request;
Если бы было так: use Symfony\Request, то тогда все понятно. Есть класс Request и он обернут в пространство имен под названием Symfony.
Но что еще за \Component\HttpFoundation\? На что они указывают? Не может ведь пространство имен называться "Symfony\Component\HttpFoundation\". В мануалах говорят, что это "прдпространства" разделяются знаком "\" и в этих же мануалах говорит, что
"Невозможно вкладывать в пространство имен другие пространства имен, или определять более чем одно пространство имен для одной и той же части кода".
Буду очень признателен, если на простом наглядном примере объясните как эти вложености работают.
2) Читаю манул по микрофреймворку Silex (обезжиреный Symfony)
http://silex.sensiolabs.org/doc/usage.html
Не могу понять след. синтаксическую конструкцию:
$app = new Silex\Application();
use Symfony\Component\HttpFoundation\Request;
$mustBeAnonymous = function (Request $request) use ($app) {
if ($app['session']->has('userId')) {
return $app->redirect('/user/logout');
}
};
2.1) Не понимаю что это такое мы передаем в аргумент анонимной функции
function (Request $request)
2.2) Не понимаю что означает идущее следом
use ($app)
Буду очень признательным за ответы
Спустя 9 минут, 52 секунды (24.05.2012 - 16:50) Invis1ble написал(а):
1. Да, Request - это подпространство
2.1 Request $resuest - контроль типа, означает, что аргументом может быть объект типа Request либо один из его наследников
http://php.net/manual/ru/language.oop5.typehinting.php
2.2. Замыкание, в ф-цию "попадает" $app
http://php.net/manual/ru/functions.anonymous.php
В целом, кури мануал и будет счастье
2.1 Request $resuest - контроль типа, означает, что аргументом может быть объект типа Request либо один из его наследников
http://php.net/manual/ru/language.oop5.typehinting.php
2.2. Замыкание, в ф-цию "попадает" $app
http://php.net/manual/ru/functions.anonymous.php
В целом, кури мануал и будет счастье
Спустя 15 минут, 13 секунд (24.05.2012 - 17:06) iVasya написал(а):
Ок, по поводу 2.1 и 2.2 в целом понятно, но я никак не могу разобраться с 1 пунктом
http://ru2.php.net/manual/ru/language.namespaces.nested.php
Судя по тому, что пишут тут, контрукция
означает, что в пространстве имен Symfony определено пространстов Component, в нем HttpFoundation и уже в нем есть класс Request? Но это похоже на бред.
Можете пояснить на данном примере что есть Component и что есть HttpFoundation?
http://ru2.php.net/manual/ru/language.namespaces.nested.php
Судя по тому, что пишут тут, контрукция
use Symfony\Component\HttpFoundation\Request;
означает, что в пространстве имен Symfony определено пространстов Component, в нем HttpFoundation и уже в нем есть класс Request? Но это похоже на бред.
Можете пояснить на данном примере что есть Component и что есть HttpFoundation?
Спустя 2 минуты, 38 секунд (24.05.2012 - 17:08) Invis1ble написал(а):
Почему похоже на бред? Мухи отдельно, котлеты отдельно.
Все это подпространства различных уровней вложенности.
Все это подпространства различных уровней вложенности.
Спустя 10 минут, 55 секунд (24.05.2012 - 17:19) iVasya написал(а):
Тоесть будет что-то типа:
да?
namespace Symfony {
class one {}
namespace Component {
class two {}
namespace HttpFoundation {
class Request {}
}
}
}
да?
Спустя 1 час, 36 минут, 53 секунды (24.05.2012 - 18:56) johniek_comp написал(а):
iVasya
по моему, классы должны наследоваться
по моему, классы должны наследоваться