Обновить
0

Yii *

Фреймворк, реализующий парадигму MVC

Сначала показывать
Порог рейтинга
Уровень сложности

Прошёл хакатон по Yii Framework в TACC

Время на прочтение2 мин
Количество просмотров9.1K

18 и 19 июня прошёл хакатон по PHP фреймворку Yii, состоявшийся благодаря ТАСС, конференции DevConf и лично Вадиму Крючкову. В мероприятии участвовало 18 разработчиков, которые поделились на команды и занимались сразу несколькими задачами. Помимо небольших качественных багфиксов, которые вместе с тестами практически сразу попали в master, были сделаны наработки и по довольно глобальным вопросам: очередям и обработчикам сокетов.

Читать дальше →

Несколько полезных приемов для разработки на Yii 2

Время на прочтение17 мин
Количество просмотров58K
Собрал несколько классов и сниппетов из серии «tips & tricks», которые могут оказаться кому-нибудь полезными.
Содержание:
Несколько атрибутов в одной колонке грида
Исправление навигации для активных пунктов меню
Маппинг таблиц на другие названия
Почему TimestampBehavior обновляет свойство updated_at, если ничего не изменено
Bootstrap DateTimePicker — 2 разных формата для показа в интерфейсе и для отправки значения на сервер
Учет временной зоны пользователя для полей с DateTimePicker
Читать дальше →

Уменьшаем боль в навигации приложения на Yii2

Время на прочтение4 мин
Количество просмотров13K

Доброго времени суток! Большую часть проектов мы пишем на Yii2, потому что он клёвый и мы его любим.
Однако, всегда есть что улучшить (благо этого не препятствует архитектура Yii). Хочу поделиться решением, которое упрощает прописывание навигации в приложениях на Yii2.


Проблема


Когда мы добавляем в приложение страницу, нам нужно прописать для неё следующие вещи (после создания контроллера и вьюшки):

Читать дальше →

Прикручивание диаграммы Гантта

Время на прочтение15 мин
Количество просмотров12K
При разработке системы документооборота возникла необходимость отображать данные в виде диаграммы Гантта. После непродолжительных поисков был найден подходящий бесплатный компонент, который нужно было прикрутить к «движку» easla.com.

Мой опыт прикручивания JS-компоненты к движку на Yii с описание, кодом и примерами под катом.
Читать дальше →

DevConf:: Хакатон по Yii в ТАСС 18-19 июня 2016

Время на прочтение1 мин
Количество просмотров3.1K
Приглашаем принять участие в первом открытом Yii-хакатоне в ТАСС,
который пройдет в 18-19 июня сразу после условно платной конференции DevConf 2016!

Если вы горите желанием внести свой вклад в развитие фреймворка, если у вас есть идеи по улучшению или созданию новых расширений – приходите, и мы все вместе сделаем мир чуть лучше.
Только реальные задачи, свобода творчества и команда единомышленников!
Предлагать свои идеи для реализации можно в специальной теме
на форуме Yii

Участие в хакатоне бесплатно, но требуется регистрация
Полная информация о месте и требования к участникам на страничке хакатона DevConf

DevConf 2016: Интервью с одним из разработчиков Yii

Время на прочтение4 мин
Количество просмотров9.1K
Представляем небольшое интервью с одним из докладчиков DevConf 2016 Александром Макаровым aka SamDark. Он является членом Yii core team c 2010 года и представителем Yii в PHP-FIG. Автор книги Yii Application Development Cookbook.

В первую очередь хотел бы спросить о работе. Ты работаешь в Stay.com. Подозреваю, что удаленно. Ты также активно участвуешь в конференциях, работаешь над Yii. Как удается совмещать? Это не фулл-тайм? Или что-то сродни когда-то гугловскому «20% на свои проекты»?
Да, я работаю в Stay.com. В основном, удалённо. Это fulltime. Yii занимаюсь либо в свободное время, либо когда не очень сильная загрузка по основному проекту.
На тему конференций у меня договорённость: они оплачиваются ровно так же, как и рабочие дни.
Читать дальше →

Обновление PHP до 7.0.6 может «сломать» ваш код

Время на прочтение2 мин
Количество просмотров19K
Внимание! Будьте осторожны при обновлении PHP до версии 7.0.6! В этой версии был исправлено несколько важных багов, на которые мог неявно полагаться ваш код или код вашего фреймворка.

PHP bugs

Под катом тестовый пример кода, описание изменений и рекомендации, что же делать

Доступ к базе данных Firebird из YII2

Время на прочтение8 мин
Количество просмотров8.9K
Так получилось, что мне понадобилось переносить интерфейс пользователя из связки Delphi + Firebird в WEB. Дабы не останавливать работу комплекса программ, решено было переносить формы постепенно, а для этого необходимо сохранить работу СУБД Firebird и подключаться к ней из web приложения. При разработке web-приложения я решил использовать фреймворк YII2. На этапе разработки мне не нужен полноценный HTTP сервер, вполне сойдет Denwer или XAMMP, или что-то еще. Я выбрал XAMMP т.к. в Денвере давно не обновляется версия PHP, а руками заниматься его обновлением не хочется, идем по пути наименьшего сопротивления. Изначально ни в XAMMP PHP, ни в YII2 нет возможности работать с СУБД Firebird, но при определенных танцах с бубном сделать это вполне реально. Итак, я буду полагать, что у Вас уже установлены: Windows 7 x64, XAMMP и YII2, Firebird 2.5.

Пути установки пакетов у меня (для себя вводите соответствующие корректировки):

  • Firebird 2.5 версия x64 (тип сервера значения не имеет) в C:\Program Files\Firebird\Firebird_2_5\
  • XAMMP установлен в D:\xampp\
  • YII2 установлен в D:\xampp\htdocs\yii\
  • БД расположена в пути D:\WORK\database\TBOT.GDB

Теперь можно начинать.
Читать дальше →

Yii 2.0.8

Время на прочтение3 мин
Количество просмотров19K

Состоялся релиз PHP-фреймворка версии 2.0.8 Yii. Инструкции по обновлению и установки, можно найти на странице
http://www.yiiframework.com/download/.


Версия 2.0.8 содержит около 100 небольших исправлений и улучшений, насчитывает 300 коммитов, от 64 авторов и затрагивает 150 файлов.


Для обновления могут потребоваться дополнительные действия, так что стоит обратиться к UPGRADE.md.


Спасибо нашему замечательному сообществу за отличные идеи и pull request-ы. Этот релиз состоялся благодаря вам!


За процессом разработки фреймворка можно следить на GitHub. Также подписывайтесь на наш Twitter и вступайте в группу в Facebook.


Ниже мы рассмотрим самые интересные изменения этого релиза. Полный список изменений можно найти в CHANGELOG.

Читать дальше →

Yii: лучшие практики

Время на прочтение8 мин
Количество просмотров29K
В статье будут освещены следующие проблемы разработки и поддержки проектов на базе php-фреймворка Yii:

  1. Главные достоинства и недостатки
  2. Тестирование
  3. Нюансы использования ActiveRecord
  4. Сервис-ориентированный подход
  5. Новшества языка
  6. Расширение фреймворка


Читать дальше →

Yii framework разбор кода

Время на прочтение5 мин
Количество просмотров6.6K
Разбор кода приложения написанного на php c применением Yii Framework (исходник).

Из статьи можно вынести интересные куски кода на php, а так же тонкости и конструкции Yii Framework, расчитана она на поддержку php программистов и пользователей Yii Framework.
Читать дальше →

Простое Yii2 приложение для отправки почты

Время на прочтение4 мин
Количество просмотров27K
Посмотрев, как ловко принтер в офисе отправляет письма от кого угодно куда угодно, решил реализовать простой отправитель писем. Из подручных инструментов оказались Yii 2 фреймворк со встроенным в него модулем swiftmailer, виртуальная Ubuntu на VirtualBox (можно и без нее, если установить php и web-сервер локально).

Итак, начнем.
Читать дальше →

Используем миграции Yii2 для работы с несколькими базами данных

Время на прочтение3 мин
Количество просмотров22K
Миграции являются удобным инструментом для изменения структуры базы данных и поддержания ее в актуальном состоянии.

Yii2 поддерживает миграции из коробки. Использование миграций подробно описано в документации. Управление миграциями осуществляется из командной строки.

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

К сожалению, готового решения не нашел, поэтому заглянем в код фреймворка и посмотрим, как работают миграции.
Читать дальше →

Ближайшие события

Мартовские релизы официальных расширений Yii 2.0

Время на прочтение2 мин
Количество просмотров7.8K
Команда PHP фреймворка Yii выпустила релизы некоторых официальных расширений.

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

В этот раз вышли обновления для:


Все эти релизы содержат довольно большое количество как исправлений, так и улучшений. Далее рассмотрим самое интересное.
Читать дальше →

Мультиисключение или Хочу поделиться одним интересным архитектурным приемом

Время на прочтение6 мин
Количество просмотров15K
Мне никогда не нравилась в фреймворках на PHP работа с ошибками. И даже употребление этого слова не нравилось. Чтобы сразу уточнить — я не про фатальные ошибки, не про error_reporting, я про то, что называют ошибками валидации. То в моделях, то в формах — это уж от фреймворка зависит.

Вы только гляньте. Вот например Yii и Yii2, получение ошибок валидации модели:
$errors = $model->getErrors();

Symfony, ошибки формы:
$errors = $form->getErrors();

Активно рекламирующийся Pixie (давненько про него ничего не было):
$result = $validator->validate($data);
$errors = $result->errors();


Что тут не так?
Да всё. Всё не так. Весь этот код очень дурно пахнет, он пахнет временами PHP4, спагетти-архитектурой и диким смешением понятий.

Что же делать?

Читать дальше →

Установка и настройка Yii2 на виртуальном хостинге

Время на прочтение4 мин
Количество просмотров80K
Установка и настройка Yii2 описаны в официальном руководстве, а так же опубликовано множество статей, но я не нашел того руководства, которое помогло бы мне установить и настроить этот фреймворк от начала и до конца. Во время установки я столкнулся с некоторыми вопросами, ответы на которые находились в разных местах на просторах интернета. После продолжительных плясок с бубнами я настроил Yii2 так как хотел. Свой опыт настройки я и опишу в этой статье, в надежде что кому-то это сократит время плясок и упростит жизнь.
Читать дальше →

Yii 2.0.7

Время на прочтение3 мин
Количество просмотров22K
Вышла версия 2.0.7 PHP фреймворка Yii. Как установить или обновиться описано на странице http://www.yiiframework.com/download/.

Данная версия содержит более сотни улучшений и исправлений, уточнения документации и её переводы.

Для обновления может понадобится выполнить дополнительные действия, описанные в UPGRADE.md.

Спасибо нашему замечательному сообществу, которое дало нам множество пулл-реквестов и обсуждений. Без вас этого релиза не было бы. Спасибо!

За процессом разработки Yii можно следить, поставив звёздочку или нажав на watch на странице проекта на GitHub. Также у нас есть Twitter и группа в Facebook.

Ну а теперь рассмотрим самые интересные улучшения и исправления этого релиза.
Читать дальше →

Как правильно внести свою лепту в Open Source проект: простые подсказки

Время на прочтение6 мин
Количество просмотров70K
Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

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


Читать дальше →

Yii 1.1.17

Время на прочтение1 мин
Количество просмотров10K
Команда MVC PHP фреймворка Yii релизнула версию 1.1.17. Забрать её можно либо через Composer, либо скачать с yiiframework.com/download/.

В этом релизе 36 исправлений и улучшений. Полный список можно найти здесь.

Важно: В релиз включено ломающее совместимость изменение в работе с кешем APCu. Если используете его, читайте инструкции.

Спасибо всем, кто принимал участие в подготовке этого релиза. Без вас его бы не было.
Читать дальше →

Наследование ActiveRecord's, описывающих одну таблицу (паттерн single table inheritance) в Yii2

Время на прочтение3 мин
Количество просмотров15K
В большинстве реляционных баз данных, к сожалению, нет поддержки наследования, так что приходится реализовывать это вручную. В этой статье я хочу кратко показать, как реализовать такой подход к наследованию, как «single table inheritance», описанный в книге «Patterns of Enterprise Application Architecture» by Martin Fowler.

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

В этой статье будет использоваться следующая структура наследования моделей:

Car
|- SportCar
|- HeavyCar

Таблица `car` имеет следующую структуру:

CREATE TABLE `car` (
    `id` int NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `type` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

INSERT INTO `car` (`id`, `name`, `type`) VALUES (1, 'Kamaz', 'heavy'), (2, 'Ferrari', 'sport'), (3, 'BMW', 'city');

Модель Car можно сгенерировать с помощью Gii.
Читать дальше →

Вклад авторов