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

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

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

Читать далее

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

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

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

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

Читать далее

XML конструктор

Понадобилось создать запрос в формате application/xml/text/xml? Или создать sitemap.xml? И ты в поисках обертки над XMLWriter? Тогда, ты её уже нашел!

Данная обертка позволяет создать XML файл из массива без особой возни и скромной затратой времени.

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

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

Читать далее

Конвертирование даты и времени в 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, что вообще, я считаю, костыль, т.к. весь смысл отдачи ответа в разных форматах сразу продает.

Читать далее

Получение информации о местоположении по IP адресу для Yii2

ВНИМАНИЕ

Автор не рекомендует использовать данное расширение, где необходима скорость обработки, потому что иногда от Telize ответа не дождаться. Поэтому, рекомендую использовать MaxMind GeoIP2, который так же использует Telize.

Очень много сервисов я перековырял перед тем, как остановил свой выбор на Telize. Данный сервис позволяет получить ГЕО информацию по IP адресу через их API в формате JSON. Полученная информация более-менее точная и данный сервис бесплатный. Поэтому, я решил, что лучше уже не найти и взялся за написание компонента для Yii2.

Читать далее

Ипользуем PhpBrew в Mac

В этой статье я бы хотел затронуть очень важную тему версионности PHP. Каждому разработчику часто бывает необходимо иметь несколько версий PHP на борту для разработки. Можно обходиться классическим способом стряпать всё самому, а можно использовать подручные стредства упрощающие решение задачи. Именно поэтому, я и хочу поговорить о PhpBrew.

PhpBrew - это сборщик и установщик различных версий PHP в домашней директории. Он так же умеет быстро переключать необходимые версии PHP одной командой. Более подробно: https://github.com/phpbrew/phpbrew

Сегодня мы соберем и установим вместе PHP версии 5.4.41. Поехали!

Читать далее

Модуль статичных страниц для Yii2

Разработкой данного расширения послужило его отсутсвтие. :D Интересовался у программистов в Gitter, на что мне отвечали, что данное расширение написать не составляет труда. Да базару ноль, посоны! Только на...зачем мне его писать, когда я хочу готовое, взял и пользуйся?

Данное расширение очень полезно для создания информационных страниц. Всё содержимое хранится в БД. Да по сути ничего плохого в том, чтобы использовать хранение в файлах, но, тому же админу не обязательно знать, что такое "<?php" и как этим пользоваться. Да и вставку картинок через <img> ему тоже как-то не алё. А посему, я сделал такое очень полезное расширение.

Читать далее

Расширение для получения информации о странице переданной по URL для Yii2

Всем привет! =) Давно не писал, немного занят. За это время у меня появились некоторые новые плюшки с которыми я готов поделиться. Если честно, то их достаточно много. Намного больше, чем вы видите на GitHub. Я не в состоянии делиться со всеми из-за того, что многие из них чисто были написаны под проект, но они так же могут применяться и в других проектах. Просто, это не такая простая и быстрая работа по подготовке расширения на массовое использование. Нужно учитывать много нюансов, что пожирает время, которого не так много. Поэтому я делюсь только теми расширениями, которыми, я точно уверен, будут пользоваться другие, а так же я, не один раз.

Читать далее