Yii2, почему?!

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Re: Yii2, почему?!

Сообщение nizsheanez »

А чем setComponent не угодил?
https://github.com/yiisoft/yii/blob/mas ... e.php#L407
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: Yii2, почему?!

Сообщение Антон Смирнов »

nizsheanez писал(а):А чем setComponent не угодил?
https://github.com/yiisoft/yii/blob/mas ... e.php#L407
Спасибо, видимо проглядел. Попробую разобраться.
shedy
Сообщения: 5
Зарегистрирован: 2013.10.18, 14:26

Re: Yii2, почему?!

Сообщение shedy »

В Yii2 я не нашел перечислений (enums), мне их искать, или их нет и можно делать свой пулл реквест?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Yii2, почему?!

Сообщение samdark »

Не искать.
Аватара пользователя
Антон Смирнов
Сообщения: 284
Зарегистрирован: 2011.07.08, 10:37
Контактная информация:

Re: Yii2, почему?!

Сообщение Антон Смирнов »

В Yii будет оптимизация пагинации при больших объемах, как написано тут http://explainextended.com/2009/10/23/m ... w-lookups/ или кратко на хабре http://habrahabr.ru/post/217521/ ?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Yii2, почему?!

Сообщение samdark »

Из коробки, думаю, нет. Я не встречал проблему уже много лет. Объёмы у нас большие.
Аватара пользователя
nizsheanez
Сообщения: 814
Зарегистрирован: 2011.04.29, 13:09
Откуда: Москва

Re: Yii2, почему?!

Сообщение nizsheanez »

Скорее всего потому что оптимизатор запросов БД делает это за вас
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

Re: Yii2, почему?!

Сообщение Vespertilio »

У меня банальный вопрос, возможно не совсем потеме топика, но в Yii2 это по-умолчанию. Почему регистрация js скриптов в конце страницы считаеться хорошей практикой, а в хедере нет? И в догонку, как зарегистрировать js в ассет бандл в хедере, например?
Аватара пользователя
vova07
Сообщения: 1004
Зарегистрирован: 2012.11.29, 14:52
Откуда: Chisinau, Moldova

Re: Yii2, почему?!

Сообщение vova07 »

@Vespertilio Погуглите чуток, по теме. Первое что попалось: ссылка 1, ссылка 2, ссылка 3.

По второму вопросу вам поможет "AssetBundle::jsOptions"
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Yii2, почему?!

Сообщение maleks »

Данный метод официально использовать вместо просто exit(), да?

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

Yii::$app->end() 
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Yii2, почему?!

Сообщение samdark »

Да.
yujin1st
Сообщения: 192
Зарегистрирован: 2012.03.26, 12:03

Re: Yii2, почему?!

Сообщение yujin1st »

Подскажите, почему отказались от CamelCase именно в контроллерах? Возникает же путаница, что всё приложение в целом придерживается этого стиля, а для контроллеров с длинными названиями (их самих и их действий) надо делать по другому (и ладно бы просто url, так еще и имена каталогов). Да, qiangxue говорит, что это в пользу CEO. Но почему не дать возможность выбора? Есть ведь еще модули: уже в руководстве видно, как длинный адрес с модулем содержит мешанину...
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Yii2, почему?!

Сообщение anton44eg »

так контроллеры же в CamelCase и именуются
yujin1st
Сообщения: 192
Зарегистрирован: 2012.03.26, 12:03

Re: Yii2, почему?!

Сообщение yujin1st »

сами то контроллеры - да и методы внутри тоже, а вот каталоги представлений, как и url - в другом стиле
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Yii2, почему?!

Сообщение anton44eg »

ну так это уже не именование классов
camelCase url выглядит крайне странно
Beaver_ufa
Сообщения: 3
Зарегистрирован: 2015.05.01, 06:56

Re: Yii2, почему?!

Сообщение Beaver_ufa »

Подскажите по модулю RBAC: зачем в таблице auth_assignment поле user_id сделали VARCHAR?
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2, почему?!

Сообщение zelenin »

Beaver_ufa писал(а):Подскажите по модулю RBAC: зачем в таблице auth_assignment поле user_id сделали VARCHAR?
а каким оно должно быть, если неизвестно, что там за ключ будет храниться?
shkarbatov
Сообщения: 423
Зарегистрирован: 2012.12.10, 14:19
Откуда: Россия

Re: Yii2, почему?!

Сообщение shkarbatov »

Не знал, что есть такая тема.
Гляньте пожалуйста вопрос http://www.yiiframework.ru/forum/viewto ... 19&t=23807

Связанный с обновлением Yii до версии 2.0.3 для компонента.
yii_user
Сообщения: 37
Зарегистрирован: 2015.05.01, 15:27

Re: Yii2, почему?!

Сообщение yii_user »

Установил Yii 2.0.3

1. в конфиг файле web.php написал код

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

$config['bootstrap'][] = 'InitDefaults';
$config['modules']['InitDefaults'] = 'app\bootstrap\InitDefaults'; 
экземпляр этого класса создается внутри Yii2 для инициализации чего либо.
Для того что бы создать этот экземпляр Yii2 требует реализации метода setInstance, в который внедряется сам инициализатор, зачем? зачем я должен реализовывать этот метод? что бы он отдал и так доступный $this?

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

class InitDefaults
{
  public function __construct($name, $app) {
       $app->on($app::EVENT_BEFORE_ACTION, function($e) use ($app){
            if(...) {
                throw new \yii\web\HttpException(404)
            }
        });
    }    
    public function setInstance($instance)
    {
        var_dump($this === $instance);//true
    }
}
а если метод не реализовать будет ошибка! но мне не нужен этот метод! он вообще никому не нужен!
В документации написано что можно сразу в конфиге в секции bootstrap просто указать имя класса который должен быть вызван, но я получаю ошибку Missing required parameter "name" when instantiating "app\bootstrap\InitDefaults".
из за этого зарегистрировал этот класс как модуль

Проблема #2
В yii2 можно принудительно отдать 404 статус и показать страницу not found вне action-a? Например если в инициализаторе(бутстраппер о котором идет речь выше)
я пишу throw new \yii\web\NotFoundHttpException() или throw new \yii\web\HttpException(404) то вижу stack trace вместо 404 страницы. Ещё пробовал через response, сделал setStatusCode(404), дебаггер показывает 404 статус, но страница 404 вообще не показывается! Вместо этого вижу соответствующую роуту страницу! А вот если в контроллере в одном из экшенов бросить эти исключения тогда работает! Последнее что попробовал это задать catchAll что бы перенаправить вызов в другой контроллер но тоже ниче не вышло. Как решить вопрос? Как отдать 404 принудительно до вызова экшена?
Последний раз редактировалось yii_user 2015.05.02, 10:51, всего редактировалось 1 раз.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2, почему?!

Сообщение zelenin »

yii_user писал(а):Прошу порщения, но может кто нибудь знает, почему авторы Yii не дружат с головой?
yii_user писал(а):В документации написано что можно сразу в конфиге в секции bootstrap просто указать имя класса который должен быть вызван
это все, что вы прочли про бутстрапирование? Класс должен реализовывать BootstrapInterface - у вас же голый класс.
Ответить