Nano Hash - криптовалюты, майнинг, программирование

Как бы вы подошли к интерфейсу/бэкенду в YII?

Я использую YII в первый раз, и мне просто нужны некоторые общие мнения.

Если я возьму, в качестве примера, таблицу User, и у меня будут пользователи, регистрирующиеся из внешнего интерфейса, но я также буду управлять пользователями из административной части, как вы это сделаете?

Вы бы создали один пользовательский контроллер и использовали его в обоих представлениях, или вы создали бы UserController со своими собственными представлениями и AdminUserController со своими собственными представлениями?


  • Изучите подход, используемый здесь: github.com/trntv/yii2-starter-kit 31.01.2016
  • Создайте отдельный контроллер, иначе вам придется добавить дополнительные проверки безопасности в свой контроллер. 31.01.2016

Ответы:


1

Возможно, вам не обязательно заново создавать модуль во всех местах. Вы можете просто поместить код модуля в общую папку.

1) Если конфигурация вашего модуля одинакова как для фронтенда, так и для бэкэнда - вы можете зарегистрировать свой модуль в common/config/main.php. Это должно быть доступно как во внешнем, так и во внутреннем интерфейсе.

2) Если конфигурация вашего модуля отличается как для фронтенда, так и для бэкенда - вы можете зарегистрировать свой модуль отдельно в frontend/config/main.php и backend/config/main.php.

Справочник

30.01.2016

2

Как правило, в расширенном приложении yii2 у вас есть 3 папки (внешний интерфейс, бэкэнд, общий), которые вы можете использовать для хранения всех моделей, контроллеров, представлений и так далее.

Если нам нужна одна пользовательская модель как для серверной, так и для внешней части приложения, нам нужно хранить эту модель в общей папке. Это даст вам возможность получить все данные в интерфейсе и бэкэнде из одной общей таблицы. В самой модели вам нужно написать некоторые методы, которые вы будете использовать только на бэкенде (например, поиск по определенным параметрам) и на внешнем интерфейсе (например, голосование за комментарий пользователя и т. д.).

Как правило, у меня есть разные контроллеры для бэкэнда и внешнего интерфейса (одинаковые для представлений) и общие модели для обоих.

30.01.2016

3

используя yii2 advanced, вы можете поместить общие функции в @common, будь то его контроллер, модель или что-то еще.

затем внутри @backend или @frontend вы можете расширять классы из того, что находится внутри @common, и добавлять определенные функции, которые соответствуют вашим потребностям.

для пользовательской функциональности я предлагаю использовать расширение dektrium/yii2-user, я использовал его более чем в одном проекта, и это может сэкономить ваше время. Это тоже хорошо задокументировано.

попробуйте использовать его.

31.01.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..