Yii2, почему?!
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Yii2, почему?!
А чем setComponent не угодил?
https://github.com/yiisoft/yii/blob/mas ... e.php#L407
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
Re: Yii2, почему?!
В Yii2 я не нашел перечислений (enums), мне их искать, или их нет и можно делать свой пулл реквест?
- Антон Смирнов
- Сообщения: 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, почему?!
Из коробки, думаю, нет. Я не встречал проблему уже много лет. Объёмы у нас большие.
Нравится Yii? Давайте сделаем его лучше!.
- nizsheanez
- Сообщения: 814
- Зарегистрирован: 2011.04.29, 13:09
- Откуда: Москва
Re: Yii2, почему?!
Скорее всего потому что оптимизатор запросов БД делает это за вас
-
- Сообщения: 271
- Зарегистрирован: 2012.11.30, 07:33
Re: Yii2, почему?!
У меня банальный вопрос, возможно не совсем потеме топика, но в Yii2 это по-умолчанию. Почему регистрация js скриптов в конце страницы считаеться хорошей практикой, а в хедере нет? И в догонку, как зарегистрировать js в ассет бандл в хедере, например?
Re: Yii2, почему?!
@Vespertilio Погуглите чуток, по теме. Первое что попалось: ссылка 1, ссылка 2, ссылка 3.
По второму вопросу вам поможет "AssetBundle::jsOptions"
По второму вопросу вам поможет "AssetBundle::jsOptions"
Re: Yii2, почему?!
Данный метод официально использовать вместо просто exit(), да?
Код: Выделить всё
Yii::$app->end()
Yii2 universal module sceleton - for basic and advanced templates
Re: Yii2, почему?!
Подскажите, почему отказались от CamelCase именно в контроллерах? Возникает же путаница, что всё приложение в целом придерживается этого стиля, а для контроллеров с длинными названиями (их самих и их действий) надо делать по другому (и ладно бы просто url, так еще и имена каталогов). Да, qiangxue говорит, что это в пользу CEO. Но почему не дать возможность выбора? Есть ведь еще модули: уже в руководстве видно, как длинный адрес с модулем содержит мешанину...
Re: Yii2, почему?!
так контроллеры же в CamelCase и именуются
Re: Yii2, почему?!
сами то контроллеры - да и методы внутри тоже, а вот каталоги представлений, как и url - в другом стиле
Re: Yii2, почему?!
ну так это уже не именование классов
camelCase url выглядит крайне странно
camelCase url выглядит крайне странно
-
- Сообщения: 3
- Зарегистрирован: 2015.05.01, 06:56
Re: Yii2, почему?!
Подскажите по модулю RBAC: зачем в таблице auth_assignment поле user_id сделали VARCHAR?
Re: Yii2, почему?!
а каким оно должно быть, если неизвестно, что там за ключ будет храниться?Beaver_ufa писал(а):Подскажите по модулю RBAC: зачем в таблице auth_assignment поле user_id сделали VARCHAR?
-
- Сообщения: 423
- Зарегистрирован: 2012.12.10, 14:19
- Откуда: Россия
Re: Yii2, почему?!
Не знал, что есть такая тема.
Гляньте пожалуйста вопрос http://www.yiiframework.ru/forum/viewto ... 19&t=23807
Связанный с обновлением Yii до версии 2.0.3 для компонента.
Гляньте пожалуйста вопрос http://www.yiiframework.ru/forum/viewto ... 19&t=23807
Связанный с обновлением Yii до версии 2.0.3 для компонента.
Re: Yii2, почему?!
Установил Yii 2.0.3
1. в конфиг файле web.php написал код
экземпляр этого класса создается внутри Yii2 для инициализации чего либо.
Для того что бы создать этот экземпляр Yii2 требует реализации метода setInstance, в который внедряется сам инициализатор, зачем? зачем я должен реализовывать этот метод? что бы он отдал и так доступный $this?
а если метод не реализовать будет ошибка! но мне не нужен этот метод! он вообще никому не нужен!
В документации написано что можно сразу в конфиге в секции 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 принудительно до вызова экшена?
1. в конфиг файле web.php написал код
Код: Выделить всё
$config['bootstrap'][] = 'InitDefaults';
$config['modules']['InitDefaults'] = 'app\bootstrap\InitDefaults';
Для того что бы создать этот экземпляр 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 раз.
Re: Yii2, почему?!
yii_user писал(а):Прошу порщения, но может кто нибудь знает, почему авторы Yii не дружат с головой?
это все, что вы прочли про бутстрапирование? Класс должен реализовывать BootstrapInterface - у вас же голый класс.yii_user писал(а):В документации написано что можно сразу в конфиге в секции bootstrap просто указать имя класса который должен быть вызван