
Dmitriy
29.06.2017
19:24:07

Knock
29.06.2017
19:24:08
https://pastebin.com/45ZUJMij
Вот как у меня выглядит класс-хелпер для проверки доступа к тому или иному экшену контроллера.
На вход идет модель + действие.

Google

Knock
29.06.2017
19:25:30
Штука вся в том, что я хочу получать в этом хелпере константу ADMIN_ROLE через $model::ADMIN_ROLE, т.е. у меня так выйдет, что я буду пытаться ее получить из модели, которая мне пришла в хелпер.
А так как там сейчас модель формы, то я ее попросту не получу, ее там нету.
В общем, такие заморочки.

Павел
29.06.2017
19:27:25
А, вононочо

Dmitriy
29.06.2017
19:27:56
пср плачит, switch, сервис локатор. хм
Сделать интерфейс . константу запрашивать через метод. метод этот в интерфейс .

Knock
29.06.2017
19:28:47

Павел
29.06.2017
19:30:06

Dmitriy
29.06.2017
19:30:24

Павел
29.06.2017
19:31:11
А на кой интерфейс ради одной константы?
Метод геттера ещё писать

Dmitriy
29.06.2017
19:32:15
Ну наследуйся. мне то что. не мой же проект

Google

Павел
29.06.2017
19:32:40
В чем преимущества интерфейса тут?
И чем имплементация интерфейса интереснее использования трейта

Knock
29.06.2017
19:33:29
Простите :)

Dmitriy
29.06.2017
19:33:53

Павел
29.06.2017
19:34:25
А имплементация интерфейса это не наследование?

Dmitriy
29.06.2017
19:34:32
Нет

Knock
29.06.2017
19:36:07
Ну кстати идея с интерфейсом в принципе замечательная. Правда не совсем понимаю, как это должно выглядеть. И почему например интерфейс, а не абстрактный класс?

Павел
29.06.2017
19:36:49
То есть писать интерфейс, писать в имплементирующем классе метод геттера это круче чем просто трейт подключить?

Dmitriy
29.06.2017
19:37:58
конечно.

Павел
29.06.2017
19:38:15

Dmitriy
29.06.2017
19:38:30
Обоснуй
чем плохо наследование обьяснять не нужно ?

Павел
29.06.2017
19:39:33
Я не вижу разницы между наследованием и имплементацией
Те же яйца только в профиль
А в данном случае вообще

Aziz
29.06.2017
19:40:16
Такой вопрос, на каждой странице иногда нужен свой уникальный CSS файл, который будет только на нем, как можно такое реализовать?

Павел
29.06.2017
19:40:48

Dmitriy
29.06.2017
19:40:54

Aziz
29.06.2017
19:41:12
Ассетами
А есть какая - то статья с подробностями про это?

Google

Павел
29.06.2017
19:41:27

Knock
29.06.2017
19:41:51

Павел
29.06.2017
19:41:56
Я же говорю в данном случае это ваще не работает

Dmitriy
29.06.2017
19:42:34

Павел
29.06.2017
19:43:20

Dmitriy
29.06.2017
19:43:45
Ну наследуйся. мне то что. не мой же проект

Павел
29.06.2017
19:44:29
Да делайте интерфейсы. Мне то что
Трейт вот как подменят тебе кстати?
Наследоваться от него нельзя
Так что имхо мимо кассы

Aziz
29.06.2017
19:47:09

Knock
29.06.2017
19:47:52
Обожаю закатывать срачи и потирать ладошки.
Надо сюда Дмитрия Елисеева пригласить.
Но он правда боюсь к такому не привык :(

Павел
29.06.2017
19:48:34
Где тут срач то?
Все по делу и вежливо имхо

Михаил
29.06.2017
19:50:05

Aziz
29.06.2017
19:50:48

Google

Павел
29.06.2017
19:51:01

Михаил
29.06.2017
19:51:38
Если пересекаются - то их надо распересекать обратно

Aziz
29.06.2017
19:52:04
А как в ассете вывести например для опеределенной страницы
Можно пример?

Михаил
29.06.2017
19:52:33

Aziz
29.06.2017
19:52:46
ну там и JS

Павел
29.06.2017
19:53:03
$this->registerCssFile('path/to/myfile')

Михаил
29.06.2017
19:53:14
ну там и JS
И как я не догадался, если вопрос был про css

Admin
ERROR: S client not available

Михаил
29.06.2017
19:53:34

Павел
29.06.2017
19:54:40

Михаил
29.06.2017
19:55:03
Да даже если css+js

Павел
29.06.2017
19:55:17
namespace app\assets;
use yii\web\AssetBundle;
class MyClassAsset extends AssetBundle
{
public $basePath = '@webroot'; //алиас каталога с файлами, который соответствует @web
public $baseUrl = '@web';//Алиас пути к файлам
public $css = [
'css/vasya.css',
];
public $js = [
'js/vasya.js',
];
}

Aziz
29.06.2017
19:55:40
НУ вот на этом примере бы

Михаил
29.06.2017
19:55:42
Но в Yii1 мы колхозили второй путь, достаточно было положить в нужное место css или js с именем вьюхи, и оно цеплялось

Dmitriy
29.06.2017
19:55:47
Трейт вот как подменят тебе кстати?
трейт это способ реюзать код. убрать дублирующий код. что уже плохо .
"хелпер" может вынести лишнюю ответственность из модели, а трейт только ее добавит.

Aziz
29.06.2017
19:55:50
Я знаю, как работать с ним, но как добавить для определенного

Михаил
29.06.2017
19:56:31

Google

Aziz
29.06.2017
19:56:52
Понял

Павел
29.06.2017
19:56:54

Aziz
29.06.2017
19:56:56
Спасибо
Лишним не будет

Павел
29.06.2017
19:58:01

Михаил
29.06.2017
19:58:05

Dmitriy
29.06.2017
19:58:14

Павел
29.06.2017
19:58:43
поподробнее
use app\assets\AppAsset;
/*....................*/
MyClassAsset::register($this

Михаил
29.06.2017
19:58:43
А как вебпак поможет в этом случае?

Aziz
29.06.2017
19:59:00
Thanks alll

Dmitriy
29.06.2017
19:59:04

Михаил
29.06.2017
19:59:22
Нууу поделить я так понял не вопрос, вопрос подключить :)

Aziz
29.06.2017
20:01:03
Купленный дизайн, его нужно собрать

Dmitriy
29.06.2017
20:01:36
AppAsset похорошему нужно депрекейтнуть . надеюсь скоро это случится

Yura
29.06.2017
20:02:54
Ну иногда пригождается ж он)

Dmitriy
29.06.2017
20:03:29
в 2005 году да . в 2017. ну такое. Хотя нужно просто в пакет его вынести

Yura
29.06.2017
20:04:12
ну или так да тоже пойдет

Aziz
29.06.2017
20:06:28
Всем еще раз спасибо
Можно папку backend удалить?

Yura
29.06.2017
20:12:19
Ну да наверное

Aziz
29.06.2017
20:13:41
Ну вот в YII1, понятно, в modules добавил и клипай, а тут, чет как-то