Для моего приложения я использую пространства имен PSR-0. Все работает красиво! Пока я не хотел использовать Twig в качестве парсера шаблонов, Twig использует псевдопространства PEAR. Как Twig_Loader_Filesystem. Проблема в том, что, когда я хочу использовать Twig внутри моего приложения с расширением имен, например: <?php namespace Tact\ViewManager; class ViewManager { public function init() { $loader = […]
Я пытаюсь разобрать JSON-файл с помощью PHP и json_decode, однако мне сложно делать это, когда возвращаемый JSON является пространством имен. Например: $json_ouput = json_decode($json); foreach ( $json_ouput->feed as $feed) { /* Here is the problem, $feed contains a namespaced key $feed->ab:test->value // Does not work 🙁 */ } Какое лучшее решение здесь?
Я хотел бы добавить ребенка в очень конкретное место (поэтому я также использую DOM и не только simpleXML) для узла <domain:create> . Я попытался использовать атрибут $ ns для конструкции simpleXML. $nsNode = new SimpleXMLElement('<domain:ns>', $options = 0, $ns='urn:ietf:params:xml:ns:domain-1.0'); //transform the target into dom object for manipulation $nodeRegistrantDom = dom_import_simplexml($nodeRegistrant); Но я получаю: Предупреждение ввода-вывода: […]
Я добавил пользовательский класс в каталог /src/Common как описано здесь. Я делаю все, как описано в ссылке, но он не работает. Я не понимаю, почему. Заранее спасибо за помощь. Пользовательский класс: HttpClient.class.php namespace Common; class HttpClient {… контроллер: use Common\HttpClient; $httpClient = new HttpClient(); Ошибка: FatalErrorException: Ошибка: Class 'Common \ HttpClient' не найден в …
Я пытаюсь сделать что-то подобное $ u = \ Entity \ UserQuery :: create () -> где ('User.Username =?', "john") -> findOne (); но я получаю эту ошибку Невозможно определить столбец для привязки к параметру в разделе «User.Username =?» Хотя тот же код в контексте, отличном от имен, работает нормально. Я знал, что есть лучшие […]
Я попробовал, чтобы запустить следующий код, на PHP v5.3.13, но все еще получая ошибку класса, не найденной: $tZone = new DateTimeZone("Europe/Amsterdam"); Как использовать DateTimeZone в 5.3.13?
Я столкнулся с «странной» вещью, экспериментируя с spl_autoload, пространствами имен и динамическими именами классов. Я использую PHP 5.3.2, вызываю автозагрузку, как это set_include_path(get_include_path().PATH_SEPARATOR."classes".PATH_SEPARATOR."utils"); spl_autoload_extensions(".class.php"); spl_autoload_register(); Теперь к сути. Предложите следующий код: new \User\Student; $name="\User\Student"; new $name(); Это отлично работает, файлы классов / user / student.class.php загружаются успешно, обе конструкции успешны. Однако, немного другое использование: $name="\User\Student"; […]
Я довольно запутался в реализации пространства имен в php, особенно когда речь заходит об алиасах – импорте классов. Я следил за учебником из этого урока: Использование пространств имен PHP V5.3 для читаемого и поддерживаемого кода (от Don Denoncourt, 1 марта 2011 г., для IBM Developerworks) Но я не понимаю – когда используется __autoload , почему […]
Я использую namespacing в 5.3 и пытаюсь проверить ожидаемое исключение в PHPUnit с картой Symfony2. Я ожидаю, что будет выбрано исключение, и когда я использую $this->setExpectedException('ImageResizerException'); Я получаю следующую ошибку: PHPUnit 3.7.13 от Себастьяна Бергмана. Конфигурация читается из /var/www/branches/3.6.0/api/app/phpunit.xml.dist .E …………….. Время: 1 секунда, Память: 18.25Mb Была 1 ошибка: 1) AssetManagerBundle \ Tests \ Services […]
Я экспериментирую с функциональностью namespacing PHP 5.3, и я просто не могу понять, как создать экземпляр нового класса с префиксом пространства имен. В настоящее время это прекрасно работает: <?php new $className($args); ?> Но как я могу добавить свое пространство имен перед переменной classname? Следующий пример не работает. <?php new My\Namespace\$className($args); ?> В этом примере получается: […]