@yii2ru

Страница 296 из 1721
Dmitriy
29.06.2017
19:24:07
Я так понял User используется только в одной форме а константа оттуда нужна везде
Ну окей. мы же вызываем checkAcess и туда кидаем user реализацию

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, сервис локатор. хм Сделать интерфейс . константу запрашивать через метод. метод этот в интерфейс .

Dmitriy
29.06.2017
19:30:24
Дык трейтом проще
Проще не трогать ничего. и наследоваться 100 раз

Павел
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
конечно.

Dmitriy
29.06.2017
19:38:30
Ну кстати идея с интерфейсом в принципе замечательная. Правда не совсем понимаю, как это должно выглядеть. И почему например интерфейс, а не абстрактный класс?
подставить реализацию можно может посмотреть в эту сторону https://github.com/yiisoft/yii2/blob/ba0ab403b52124c941dbeb46fbd9efdc12252a5d/framework/rbac/PhpManager.php

Обоснуй
чем плохо наследование обьяснять не нужно ?

Павел
29.06.2017
19:39:33
Я не вижу разницы между наследованием и имплементацией

Те же яйца только в профиль

А в данном случае вообще

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

Dmitriy
29.06.2017
19:40:54
Я не вижу разницы между наследованием и имплементацией
Вот в этом и проблема. при имплементации я уверен буду что класс не изменится . а при наследование кто-то подменит класс и мы не узнаем об этом

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

Google
Knock
29.06.2017
19:41:51
подставить реализацию можно может посмотреть в эту сторону https://github.com/yiisoft/yii2/blob/ba0ab403b52124c941dbeb46fbd9efdc12252a5d/framework/rbac/PhpManager.php
В смысле вообще все переделать под пхпманагер или чисто подсмотреть как у белых людей делается?

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

Dmitriy
29.06.2017
19:42:34
В данном случае константу в интерфейсе легко подменят и ты не узнаешь
Как внутри реализованно пофиг. вернуло единичку или двойку тоже. главное что бы возвращало цифру

В смысле вообще все переделать под пхпманагер или чисто подсмотреть как у белых людей делается?
Посмотреть и если нужно сделать свою реализацию и вызывать Yii::$app->user->checkAccess(); Это самый правильный вариант

Павел
29.06.2017
19:43:20
Как внутри реализованно пофиг. вернуло единичку или двойку тоже. главное что бы возвращало цифру
Да кейс простой и поэтому считаю интерфейс тут лишними накладными расходами

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

Павел
29.06.2017
19:44:29
Да делайте интерфейсы. Мне то что

Трейт вот как подменят тебе кстати?

Наследоваться от него нельзя

Так что имхо мимо кассы

Knock
29.06.2017
19:47:52
Обожаю закатывать срачи и потирать ладошки.

Надо сюда Дмитрия Елисеева пригласить.

Но он правда боюсь к такому не привык :(

Павел
29.06.2017
19:48:34
Где тут срач то?

Все по делу и вежливо имхо

Михаил
29.06.2017
19:50:05
Такой вопрос, на каждой странице иногда нужен свой уникальный CSS файл, который будет только на нем, как можно такое реализовать?
1) Подключать ассет или отдельный файл из конкретной вьюхи 2) расширить контроллер, чтобы он цеплял ввтоматом "персональный" css/js при его наличии 3) нахрен морочиться, сложить всё в "большой" css - выигрыш от кеша общего стиля будет больше экономии на спичках

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

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

Можно пример?

Михаил
29.06.2017
19:52:33
там плагины. Зачем на главной плагин личного кабинета?
Css плагины?? Чоа? Ну заверни все нужные стили в класс контейнера

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
$this->registerCssFile('path/to/myfile')
Если у него там гроздь стилей и скриптов, которые наверняка еще и от jQuery зависят, то только ассетом.

Михаил
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
Я знаю, как работать с ним, но как добавить для определенного
Идешь во вьюху, вызываешь его оттуда через ::register. Всё.

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
там плагины. Зачем на главной плагин личного кабинета?
4 .юзать вебпак или еще что-то похожее

Павел
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 добавил и клипай, а тут, чет как-то

Страница 296 из 1721