Ответы пользователя по тегу Yii
  • Существует ли "чистая" установка Yii2?

    @kuftachev
    Вот про разницу.

    https://github.com/yiisoft/yii2-app-advanced/blob/...

    Вообще смысл в том, что advanced - это демонстрация того, как можно использовать по сути несколько разных приложений, но с общими классами. Не сильно представляю для чего это нужно. Но оттуда можно взять работа с аккаунтом пользователя.

    P.S. Присоединяюсь к совету учить его уже не актуально на данный момент, кроме случаев, когда знаешь другой, но предлагают хорошую работу на нём. Выбирайте между Laravel и Symfony, хоть они и оба ужасны.
    Ответ написан
  • Yii2 как убрать дублирование записей в $dataProvider при joinWith()?

    @kuftachev
    Когда я мучался с этой проблемой, я решил посмотреть как это делают профессионалы... Посмотрел код сайта yiiframework.com, раздел новости или что-то подобное, там теги к новостям многие ко многим... В итоге... НИКАК! У них тоже все неправильно отображается.

    Я в итоге сделал просто отдельный запрос, а потом сам руками мапил. Проблема Yii2, что если не идёшь по тому, что позволяет фреймворк, то потом нужно с ним бороться, хотя пока все ок - все очень быстро пишется.
    Ответ написан
  • Как реализовать личную переписку на сайте по типу диалогов в ВК?

    @kuftachev
    Все зависит от бизнес задачи.

    Если критично не использовать новую технологию, так как это лишние расходы на администрирование, можно просто на клиенте по таймингу опрашивать.

    Или есть виджеты на основе Telegram, можно из какого связать между собой.

    В общем, можно сделать много чего, если для учебы, то можно как и Node.js покапать, так и асинхронный PHP, или вообще Go.
    Ответ написан
    Комментировать
  • Yii как лучше присваивать рейтинги пользователю?

    @kuftachev
    Проведения (Behavior) нужны для того, чтобы использовать повторяющийся фрагмент кода в разных местах не копирую его каждый раз. Например, сохранение фотографий может быт нужно для аватарки и для обложки статьи.

    События нужны для того, чтобы можно было в разных местах кода на него реагировать. Например, если у нас новый лайк у пользователя, мы под это дело добавляем ему рейтинг, а в другом месте можем проверять, что рейтинг достиг какого-то уровня и нужно изменить подпись, в третьем месте мы отправляем ему письмо с поздравлением о новом рейтинге. События позволяют все это делать не сильно зависимым друг от друга.

    Компоненты - это обычно какие-то штуки, которые нужно в разных частях приложения, и часто в единичном экземпляре, например, модель мы хотим засунуть как можно в более узкое место, поэтому она не компонент (хотя, по-моему от него тоже наследуется, но не уверен)... Я что-то сходу даже не придумал, для чего в Вашем случае может быть нужен свой компонент, за исключением инфраструктуры фреймворка, типа Запрос, Ответ, Роутинг, Сессии и т.д.

    В итоге:
    Контроллер принимает запрос и переправляет его к слою модели, модель что-то делает и контроллер рендерит представление (view) и отправляет результат.
    Модель, если особой логики нет, то это может быть сама Active Record, если логики много, создаются сервисы, это тоже слой модели, но так получается понятнее код.
    Ответ написан
  • Как хранить в MySQL периодические данные?

    @kuftachev
    Таблица member и таблица ranking: id, result, month (от задачи нужно понимать как нумеровать, хоть просто число и знать, что 1 - это 7.2015, можно строкой, в одни, от ситуации), member_id.

    Первый запрос вообще элементарный. Второй на SQL хз как, но выбрать за последние три месяца и отсортировать на уровне приложения. Если сильно хорошо подумать, там с несколькими вложенными select может к чему-то прийти и можно, но тут конечно нужно понимать задачу, нагрузку и прочее. Так как можно написать полноценную функцию на SQL, но это уже больше работа для DBA.
    Ответ написан
    Комментировать
  • Кто-нибудь использовал data mapper (Doctrine 2) в Yii2? Что с производительностью по сравнению с встроенным active record Yii2?

    @kuftachev
    Вообще странное утверждение на счёт скорости паттерна, все зависит от реализации. Оба варианта можно реализовывать как на основе метаданных, так и ручками.
    Ответ написан
    Комментировать
  • Как в Yii2 работать с исключениями в контроллере?

    @kuftachev
    Или Вы как-то неоднозначно задаёте вопрос, или не совсем понимаете исключения.
    Ответ написан
  • Когда использовать framework, а когда cms?

    @kuftachev
    Во-первых, нужно использовать слова корректно. CMS есть почти всегда, а WP, Joomla и прочее г-но - это CMS общего назначения.
    Во-вторых, в одном предложении использовать CMS общего назначения и программист можно только в том случае, если программист сломал какую-то часть тела человеку, который сделал что-то на такой CMS, а программист переделывает.
    С позиции человека, который делает сайты на чистом PHP, может еще и казаться, что какое-нибудь г-но типа WP - это быстро, но на самом деле, с помощью фремворка, делается все где-то за тоже время, но не через жопу, особенно с учетом того, что есть готовые модули в сообществе и у каждого программиста свои наработки.
    В общем, есть очень ограниченный случай, когда человек принимает осознанное инженерное решение использовать CMS общего назначения, но в 99% случаев, это человек, который просто кидает людей беря деньги за свою некомпетентность. А потом люди платят деньги программисту за нормальный сайт, который работает.
    Ответ написан
  • Как правильно загружать и обрабатывать изображения в Yii2?

    @kuftachev
    Во-первых, выносить логику сохранения в контроллер - это уже не правильно в принципе!
    Во-вторых, зачем boolean $uploaded?
    Ответ написан