Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (27)

Лучшие ответы пользователя

Все ответы (57)
  • Где хранить константы в yii2?

    @Mylistryx
    В Yii2 есть алиасы, www.yiiframework.com/doc-2.0/guide-concept-aliases.html читайте документацию, прежде чем писать велосипеды!
    И да, оформление вопроса подразумевает под собой положительный ответ на вопрос "Я искал, но не нашел...", человек, ты не просто плохо искал, ты даже не пытался искать!
    Ответ написан
    Комментировать
  • Как скрыть токен на сайте?

    @Mylistryx
    JS стучится на свой же сервер, а там PHP или что там на бэке уже CURL`ом отправляет запрос к телеге. В JS думаю никак токен не скрыть.
    Ответ написан
    Комментировать
  • Существует ли "чистая" установка Yii2?

    @Mylistryx
    composer require "yiisoft/yii2:*" - таким образом вы получите действительно чистую установку. По сути у вас будет только файлы composer.json, composer.lock и папка vendor в которой будет лежать сам фреймворк с зависимостями. Вы сможете строить структуру своего приложения самостоятельно, т.е. сами решать, где у вас будут лежать контроллеры, модели, view и прочее. Это можно изменить и в готовых шаблонах basic/advanced.
    Теперь по шаблонам:
    Basic - пример организации описанного выше. Используется обычно для небольших приложений с одной точкой входа (/web/index.php). Есть как свои преимущества, так и недостатки (если не менять структуру). Из преимуществ - реально проще, нет дублирования классов и т.д. Из недостатков - расширяемость только модулями, не очень удобный способ хранения конфигов (нельзя переопределять локальными значениями). Всё это конечно можно легко устранить.
    Advanced - типа расширенный вариант. Нужен далеко не всем. Позволяет организовать несколько точек входа (frontend и backend по умолчанию) и легко добавлять свои. К примеру копируем папку backend, правим в ней namespace`ы и вуаля, у нас есть API, который настраиваем на уровне конфигов и он нам отдает только JSON. Мне так удобней по крайней мере. При этом все приложения могут использовать общие компоненты\модели\сервисы и т.д. из папки common.
    Для лучшего понимания я рекомендую посмотреть\прочитать все, что есть в блоге у Elisdn (ссылку давали выше), мне в свое время это очень сильно помогло. Ну и рекомендую сначала ознакомиться с его же курсом по сервисному слою. Привыкнув к AR и т.д. тяжело потом будет перейти на что то другое. К примеру у меня сейчас как источники данных используется несколько сторонних сервисов, SOAP сервис и своя БД (и не одна!). Без сервисного слоя это было бы ооочень тяжело поддерживать и обслуживать в дальнейшем. А так - у меня есть сервисный слой, который представляет собой "черный ящик", и что и как у него там происходит внутри меня в принципе не интересует.
    В интернете сейчас несколько книг и обучающих курсов обучающих работе с Yii2, но из всего этого я рекомендую Elisdn! 99% курсов дают общее понимание о фреймворке, но загоняют в жесткие рамки, что помоему очень плохо. Отсюда и мнение, что Yii2 умирает и всё прочее.
    Ответ написан
    Комментировать
  • Какое ваше отношение к таблицам с внешним ключам с NULL значением?

    @Mylistryx
    А я за NULL! При ForeignKeys - корректное поведение, при unique - корректное поведение, при JOIN корректное поведение.
    FK позволяют организовать целостность данных на уровне БД (CASCADE/RESTRICT/ SET NULL -это уже от бизнес логики) и там нет ON DELETE SET 123 или ON DELETE SET 0, что говорит само за себя, как и NULL значения при LEFT JOIN.
    unique (column):
    null
    null
    1
    2
    ...
    - и это нормальное и правильное поведение, т.е. значения уникальны, если они указаны. С 0 или суррогатным значением так не выйдет и будет расти еще один костыль.
    По поводу экономии места - в нынешних реалиях, экономия на спичках.
    Про обработку NULL / NOT NULL -если используется ORM либо обертка какая, то там это обычно реализовано прозрачно. К примеру Yii2: ArModel::findOne(['col' => null]) само развернет в нужный SQL код. В других фреймворках думаю тоже.
    P.S. Имею ввиду MySQL, в других БД возможно по другому.
    Ответ написан
    Комментировать
  • Почему не сработала транзакция при откате миграции в yii2?

    @Mylistryx
    Если БД MySQL, то там, если мне не изменяет память, не работают транзакции на создание\удаление таблиц. Столкнулся с подобной проблемой при создании таблиц, например:
    Создать таблицу А, добавить внешний ключ А к Б. Все это обернуто в safeUp. Если в описании создания ключа Б ошибка, то таблицу А миграция создаст, а на создание ключа вывалит эксепшен. Отредактировав эту миграцию при попытке ее применить повторно будет вылетать эксепшен, что таблица А уже существует.
    Ответ написан
    5 комментариев

Лучшие вопросы пользователя

Все вопросы (2)