Блог хеллоуворлдщика

Категория [Yii2]


yii2-widget-cropbox v5.0.0

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

Latest Stable Version Total Downloads License Build Status Coverage Status

Была исправлена самая главная проблема: невозможность использовать 2 кропера на одной страницы. И была добавлена главная возможность: использовать свои обработчики событий.

Новую версию Javascript кропера можно посмотреть здесь.

Новую версию обертки для Yii2 - здесь.

Читать далее

История изменений ActiveRecord модели в Yii2

Данное расширение необходимо всем, кто работает с важным контентом, и хочет иметь историю о всех изменениях по записи. В проектах с частой и очень важной манипуляцией с данными данная возможность очень и очень важна. Иногда не ясно, кто изменил, зачем и когда. Но, не беда, все будет! =)

Расширение имеет единственное хранилище - в базу данных. В файл, увы, реализация мне не нужна, но если кто-то хочется - тот очень легко сможет такое реализовать указав в модуле соответствующий класс хранилища наследовавшись от bupy7\activerecord\history\storages\Base.

Latest Stable Version Total Downloads Latest Unstable Version License

Ссылка на репозиторий: https://github.com/bupy7/yii2-activerecord-history

Читать далее

Обертка Date Range Picker (Bootstrap) плагина для Yii2

Обертка Date Range Picker (Bootstrap) плагина для Yii2

Пошатавшись по GitHub, и поняв, что выбор очень скудный, понял одну вещь: проблема утопающего - дело рук самого утопающего. Поэтому, я взялся за написания обертки над сие прекрасным плагином.

Ссылка на расширение: https://github.com/bupy7/yii2-date-range-picker

Читать далее

Поведение для смены и установки пароля пользователя для Yii2

Продолжаю делать всякие различные расширения упрощающие жизнь в разработке. Данный behavior у меня был достаточно долгое время в проектах и таскался файлом, но, тут я решил, что такое надо прекращать и делать по человечески, чтобы можно было поддерживать пакет отдельно.

Смена пароля довольно интересная вещь, особенно, если это выполняется не в одном месте. Часто вижу в проектах, что в моделях начинают плодить какой-то ужас. Это неправильно, товарищи. Вообще, не правильно даже наличие какого-то кода в модели в методах before<EventName>/ after<EventName>. Правильно стряпать behavior'ы и вешать куда нужно и когда нужно. Но, хрен с ним...

В общем, расширение простое, как сибирский валенок. Читаем README и применяем. Тащемта, удобно жи. =)

Ссылка на расширение: https://github.com/bupy7/yii2-password-behavior

Читать далее

RBAC или роли доступа в Yii2

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

Первое, что мне не нравится в RBAC реализованный в Yii2, это возможность использовать несколько ролей. На самом деле, при правильно реализованной иерархической структуре достаточно одной роли.

Второе, что мне не нравится, это хранение назначений отдельно, т.е. связывание роли с пользователем. И это в коробке вообще никак не отключается. Если нужно действительно это отключить, чтобы случайно другой программист не заюзал - нужно переопределять менаджер авторизации и вешать всякие throw и прочее. Роль, имхо, должна указываться в таблице с пользователем, потому что: если нужно делать дамп, то если назначения хранятся в ФС - придется делать дамп и связей; а если назначения хранятся в БД (а хранить их в БД нет никакого смысла вообще), то такое тяжело поддерживать, если вдруг структура ролей будет изменена; и потом, если хранить назначения с ролями отдельно, то у людей получается жуткий говнокод, если нужно иметь возможность "видеть" роль пользователя и менять её динамически. Поэтому, делать нужно правильно изначально: все роли, правила, иерархию наследования храним в ФС, а связываем все это дело, через поле role в таблице с пользователями.

Читать далее

Хранение и работа с конфигурацией приложения используя базу данных в Yii2

Я был очень удивлен, когда не обнаружил на просторах GitHub и Bitbucket чего-то легкого, простого, и в того же время, мощного расширения для работы с конфигурацией приложения использующее в качестве хранилища параметров базу данных. Ведь не всегда хорошо хранить, например, название сайта в Yii:$app->params[]. Этого, конечно, чаще всего достаточно, но иногда вот такие моменты, как с названием сайта/проекта ставят разработку на "паузу" и"заставляют" продумывать решение. Я и раньше делал нечто подобное для всех своих проектов, но в этот раз я решил, что стоит этому уделить максимум внимания и перестать таскать файлы из проекта в проекта, т.е. моей задачей стало "Сделать модуль конфигурации приложения для Yii2".

Читать далее

Новая версия yii2-widget-cropbox

Готов сообщить радостную новость (по крайней мере для меня), что вышла новая версия кроппера 4.0.0! Лично я доволен как слон.

Изменения были очень весомые и, так как поменялась мажорная циферка в версии, тот как мы все знаем это значит, что расширение уже не совместимо с предыдущим. Поэтому, если хотите использовать в старом проекте, где была версия 3.*, то придется переписать чуточку кода.

Самое главное, что изменилось в кроппере, это то, что мной был написан jQuery плагин, что позволяет использовать кроппер не только в Yii Framework, но и в любых других проектах. В прошлых версиях я использовал обертку над одним готовым плагином для jQuery плюс некоторые дополнения в этот плагин. Но время не стоит, мы делаем код лучше и совершенствуемся. Например, после релиза плагина было замечено, что работает он в разы быстрей предыдущего.

Читать далее

Конвертирование даты и времени в Yii2

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Coverage Status

Ты решил заюзать DateTimePicker, но теперь, тебе приходится конвертировать дату и время перед сохранением? Не беда! Можно использовать сие расширение, позволяющее упростить задачу.

Данное расширение содержит внутри поведение, которое можно повешать на AR, при желании, и оно все сделает за вас. Самое главное - правильно настроить преобразователь.

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

Ссылка на GitHub: https://github.com/bupy7/yii2-datetime-converter

Читать далее

Расширенный GridView для Yii2

Как часто вам было необходимо иметь под рукой расширенный GridView? Я думаю, что не часто. В сети есть уже другие GridView от других программистов, но тем не менее, они меня не устраивают из-за своей масштабности или еще чаво-та. Собственно, я решил сделать свой велосипед.

И чем же это лучше того, что уже есть, спросите вы. А все просто: я не "заставляю" использовать все. Вы можете использовать только то, что нужно вам. Плюсом, это никак не завязано на настройках приложения или явно "навязывание" какого-то подхода.

Ссылка на GitHub: https://github.com/bupy7/yii2-grid

Читать далее

Yii2, REST, ContentNegotiator и ErrorHandler

Проблема "невозможности" указать формат ответа у ошибок, которые, к примеру были вызваны вне контроллера и не могут быть "пропущены" через yii\filters\ContentNegotiator имеет место быть, т.к. в сети по этому поводу 0, а в тех болванках, что предназначены для демонстрации возможностей Yii2 в плане REST из коробки, все решение данного вопроса сводилось к тому, чтобы просто явно указать формат ответа в yii\web\Response, что вообще, я считаю, костыль, т.к. весь смысл отдачи ответа в разных форматах сразу продает.

Читать далее