Для чего используется эта конструкция?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Для чего используется эта конструкция?

Сообщение Yii2-dev »

Для чего используется вот эта !\  конструкция? Это !  - НЕ, а это !\  - не понятно

Код: Выделить всё

if (!\Yii::$app->user->isGuest) {
            //return $this->goHome(); 
             return $this->render('about');
        }


Без обратного слэша все же работает как и с обратным

Например вот тут, косой нету (код из одного контроллера):

Код: Выделить всё

if ($model->load(Yii::$app->request->post()) && $model->login())
Вопрос: для чего он тогда тут нужен?
Последний раз редактировалось Yii2-dev 2016.03.08, 21:36, всего редактировалось 4 раза.
mickgeek
Сообщения: 957
Зарегистрирован: 2014.05.31, 20:50
Откуда: Санкт-Петербург
Контактная информация:

Re: Для чего используется эта конструкция?

Сообщение mickgeek »

Глобальное пространство и следующий раздел.
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

mickgeek писал(а):Глобальное пространство и следующий раздел.
Не-не, я понял что это связанно с пространством имён, но для чего конкретно она нужна? Без обратного слэша все же работает как и с обратным.
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

Up...
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

Разрабы допустили ошибку при создании контроллера. Другие будут гадать, что это может быть, за сумрачно решение разработчиков. Не все могут знать о том, что это всего лишь ошибка. Потому, мой вопрос, считаю полезным.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Для чего используется эта конструкция?

Сообщение zelenin »

Yii2-dev писал(а):Разрабы допустили ошибку при создании контроллера. Другие будут гадать, что это может быть, за сумрачно решение разработчиков. Не все могут знать о том, что это всего лишь ошибка. Потому, мой вопрос, считаю полезным.
это базовые знания php. если разработчик гадает что это, то его ценность близка к нулю, т.к. а) не хватает знаний, б) не хватает смекалки доку прочесть или банально загуглить.
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

zelenin писал(а):
Yii2-dev писал(а):Разрабы допустили ошибку при создании контроллера. Другие будут гадать, что это может быть, за сумрачно решение разработчиков. Не все могут знать о том, что это всего лишь ошибка. Потому, мой вопрос, считаю полезным.
это базовые знания php. если разработчик гадает что это, то его ценность близка к нулю, т.к. а) не хватает знаний, б) не хватает смекалки доку прочесть или банально загуглить.
Там косая то просто не нужна. Гуглите дальше) Близка к нулю, к то бы говорил )
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Для чего используется эта конструкция?

Сообщение zelenin »

Yii2-dev писал(а):
zelenin писал(а):
Yii2-dev писал(а):Разрабы допустили ошибку при создании контроллера. Другие будут гадать, что это может быть, за сумрачно решение разработчиков. Не все могут знать о том, что это всего лишь ошибка. Потому, мой вопрос, считаю полезным.
это базовые знания php. если разработчик гадает что это, то его ценность близка к нулю, т.к. а) не хватает знаний, б) не хватает смекалки доку прочесть или банально загуглить.
Там косая то просто не нужна.
я написал в ветке, вашему "багу"
Yii2-dev писал(а):Гуглите дальше) Близка к нулю, к то бы говорил )
считаешь, это умнО?
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: Для чего используется эта конструкция?

Сообщение Nerf »

Там косая то просто не нужна. Гуглите дальше) Близка к нулю, к то бы говорил )
Есть 2 варианта:
1) Там нет use Yii; => \ обязателен;
2) Там есть use Yii => \ необязателен.
В любом случае "Близка к нулю"... Но все равно, держите нас в курсе.
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

zelenin писал(а):
Yii2-dev писал(а):
zelenin писал(а): это базовые знания php. если разработчик гадает что это, то его ценность близка к нулю, т.к. а) не хватает знаний, б) не хватает смекалки доку прочесть или банально загуглить.
Там косая то просто не нужна.
я написал в ветке, вашему "багу"
Yii2-dev писал(а):Гуглите дальше) Близка к нулю, к то бы говорил )
считаешь, это умнО?
Я считаю, крайне глупо обращаться к незнакомому человеку на "ТЫ". Так-же, считаю что Вам для начала неплохо бы честно закончить ВУЗ, и получить высшие образование.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Для чего используется эта конструкция?

Сообщение zelenin »

Yii2-dev писал(а):Я считаю, крайне глупо обращаться к незнакомому человеку на "ТЫ".
это называется "невоспитанно".
Yii2-dev писал(а):закончить ВУЗ, и получить высшие образование.
ошиблись адресатом
Vetal
Сообщения: 5
Зарегистрирован: 2016.03.08, 23:47

Re: Для чего используется эта конструкция?

Сообщение Vetal »

Yii2-dev писал(а): Я считаю, крайне глупо обращаться к незнакомому человеку на "ТЫ". Так-же, считаю что Вам для начала неплохо бы честно закончить ВУЗ, и получить высшие образование.
Извините, но вы грубите. А по сути вопроса - разве не очевидно, что:
1. \Yii - класс/объект Yii, находящийся в корне пространства имен
2. \Yii::$app - его свойство
3. \Yii::$app->user->isGuest - возвращает булево значение, неаутентифицирован ли текущий пользователь
4. ! - оператор логического отрицания

Т.е. образом (!\Yii::$app->user->isGuest) возвращет true если пользователь аутентифирован, и false - в ином случае
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Для чего используется эта конструкция?

Сообщение Yii2-dev »

zelenin писал(а):
Yii2-dev писал(а):Я считаю, крайне глупо обращаться к незнакомому человеку на "ТЫ".
это называется "невоспитанно".
Yii2-dev писал(а):закончить ВУЗ, и получить высшие образование.
ошиблись адресатом
Ну, я так не думаю. Вам одного высшего образования мало будет. Ничему Вы там не научились, судя по всему. Это отвратительно, что такие как Вы, живут на нашей планете. Я всё написал, теперь желаю Вам крепко заснуть. До свидания.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Для чего используется эта конструкция?

Сообщение maleks »

Yii2-dev писал(а):
zelenin писал(а): ошиблись адресатом
Ну, я так не думаю. Вам одного высшего образования мало будет. Ничему Вы там не научились, судя по всему. Это отвратительно, что такие как Вы, живут на нашей планете. Я всё написал, теперь желаю Вам крепко заснуть. До свидания.
Боюсь представить сколько у вас честных высших образований, после которых вы создаете темы, подобные данной.
Yii2-dev писал(а):Это ! - НЕ, а это !\ - не понятно
:lol:
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Для чего используется эта конструкция?

Сообщение SiZE »

Yii2-dev писал(а):Я считаю, крайне глупо обращаться к незнакомому человеку на "ТЫ"
То чувство когда не осталось аргументов. Тебе несколько человек пишут о том что надо почитать, а ты, ой простите, вы, упрямитесь.
Фриз
Сообщения: 85
Зарегистрирован: 2012.01.20, 17:23

Re: Для чего используется эта конструкция?

Сообщение Фриз »

Контроллеры поддерживают пространства имен.

Если контроллер находится в пространстве имен:

Код: Выделить всё

namespace app\controllers\foo;

class BarController extends \yii\web\Controller
{
    public function actionIndex()
    {
        if (!Yii::$app->user->isGuest)
        {
            ...
        }
        
        ...
    }
}
то статическое обращение к классу Yii без указания глобального пространства имен "\Yii::..." даст вам "PHP Fatal Error":
PHP Fatal Error – yii\base\ErrorException
Class 'app\controllers\foo\Yii' not found
так как класс "Yii" находится в глобальном пространстве.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Для чего используется эта конструкция?

Сообщение zelenin »

для тех кто не в курсе: viewtopic.php?f=27&p=183108#p183108
человек создал ветку с репортом бага, потому что в рамках одного метода идет два варианта обращения к классу.
Закрыто