Всем привет. Понимаю что вопрос не совсем к yii2 а скорее к работе php. Но все-таки. Например, есть у меня view, views\site\about.php. В нем могу получить доступ к объекту view, который является vendor\yiisoft\yii2\web\View.php, вот так $this->title = 'About';
В файле вьюхи мне нужно использовать use yii\helpers\Html. Вот здесь не пойму, html вьюхи подключается в объект класса web\View.php, в котором уже есть директива use yii\helpers\Html.
Зачем в самой вьюхе делать это снова? По идее она в той же области видимости что и объект view. Объясните пжл. Спасибо.
Использование директивы use в виде
Re: Использование директивы use в виде
Где ж она в той же области видимости, когда View
Код: Выделить всё
namespace yii\web;
Код: Выделить всё
namespace yii\helpers;
Re: Использование директивы use в виде
Ниже код из yii\web\view. Там уже есть: use yii\helpers\Html. Вьюха подключается в область видимости этой самой yii\web\view, и там мне снова нужно сделать use yii\helpers\Html, без него не работает.
Хотя это возможно из-за того, что yii\web\view наследуется от \yii\base\View, в метод render() которого передается вьюха. Вот в этом родительском классе нет use yii\helpers\Html. Возможно так?
Код: Выделить всё
<?php
namespace yii\web;
use Yii;
use yii\base\InvalidConfigException;
use yii\helpers\ArrayHelper;
use yii\helpers\Html;
use yii\helpers\Url;
Re: Использование директивы use в виде
То, что Html подключен в View никоим образом не известно в вашем представлении, которое вы отрендерили.
У вас же нет пространства имён у вашего представления
Re: Использование директивы use в виде
Получается, представление (вьюха) находится в глобальном пространстве имен, т.к. там нет директивы namespace. Понял. Спасибо!