Size: a a a

2020 October 05

СП

Сергей Предводителев... in Yii Framework 3
ой...
источник

RT

Roman Tsurkanu in Yii Framework 3
и первый
источник

СП

Сергей Предводителев... in Yii Framework 3
поправил последний :)
источник

СП

Сергей Предводителев... in Yii Framework 3
Есть отделы в контексте сотрудников и есть отделы в контексте проектов.
источник

RT

Roman Tsurkanu in Yii Framework 3
понял, я бы сделал единый enum с отделами, а какие где доступны рулил бы по другому
источник

S

SiZE in Yii Framework 3
Сергей Предводителев
В компании есть отделы:

1 - администрация
2 - продажи
3 - веб-разработка
4 - отдел рекламы

В контексте сотрудников они могут быть в любом отделе:

class Department extends Enum
{
 private const ADMINISTRATION = 1;
   private const SALE = 2;
   private const WEBDEV = 3;
   private const ADV = 4;
}

В контексте проектов могут быть только два отдела:

class Department extends Enum
{
   private const WEBDEV = 3;
   private const ADV = 4;
}

Вот я думаю сделать как в этом коде...

или сделать общий класс с константами отделов, который будет доступен в любом контексте:

class \Shared\Department
{
 public const ADMINISTRATION = 1;
   public const SALE = 2;
   public const WEBDEV = 3;
   public const ADV = 4;
}

class \Employee\Department extends Enum
{
 private const ADMINISTRATION = \Shared\Department::ADMINISTRATION;
   private const SALE = \Shared\Department::SALE;
   private const WEBDEV = \Shared\Department::WEBDEV;
   private const ADV = \Shared\Department::ADV;
}

class \Project\Department extends Enum
{
   private const WEBDEV = \Shared\Department::WEBDEV;
   private const ADV = \Shared\Department::ADV;
}
Отделы это справочник. Но никто не запрещал делать справочник ссылающийся на справочник :)
источник

S

SiZE in Yii Framework 3
Только регулировать ограничения надо не константами в классе пмсм
источник

СП

Сергей Предводителев... in Yii Framework 3
Roman Tsurkanu
понял, я бы сделал единый enum с отделами, а какие где доступны рулил бы по другому
Как?
источник

RT

Roman Tsurkanu in Yii Framework 3
ну тебе где надо это ограничить? При сеттинге да?
источник

S

SiZE in Yii Framework 3
Добавь справочнику функциональности
источник

СП

Сергей Предводителев... in Yii Framework 3
Roman Tsurkanu
ну тебе где надо это ограничить? При сеттинге да?
а... ну идею понял.

Но вопрос где хранить тогда общий енум? В shared каком-нибудь и напрямую пользовать в любом контексте?
источник

СП

Сергей Предводителев... in Yii Framework 3
SiZE
Добавь справочнику функциональности
это как? :)
источник

S

SiZE in Yii Framework 3
Давай начнем с другого
источник

S

SiZE in Yii Framework 3
в чем смысл констант в трех классах?
источник

S

SiZE in Yii Framework 3
любому программисту ничего не мешается вызвать любой класс
источник

RT

Roman Tsurkanu in Yii Framework 3
Department::ADMINISTRATION()->isAllowSetToProject($project);
источник

СП

Сергей Предводителев... in Yii Framework 3
SiZE
любому программисту ничего не мешается вызвать любой класс
Не хочется всё смешнивать
источник

RT

Roman Tsurkanu in Yii Framework 3
можно в самом енаме да рулить, но у можно в том объекте куда сетят
источник

RT

Roman Tsurkanu in Yii Framework 3
Сергей Предводителев
а... ну идею понял.

Но вопрос где хранить тогда общий енум? В shared каком-нибудь и напрямую пользовать в любом контексте?
ну в контекстах Departament наверное) там где еще нет разделения на разные
источник

S

SiZE in Yii Framework 3
Сергей Предводителев
Не хочется всё смешнивать
тут просто константами не отскочить
источник