Одним из основных отличий php-фреймворка yii 2.0 от всех остальных, является наличие генератора кода gii. Я уже неоднократно упоминал его в заметках, настало время поговорить о нем подробнее.
На первый взгляд, может показаться, что gii — всего лишь игрушка, в некоторых случаях помогающая экономить время. Такое утверждение может быть обоснованным для многих других генераторов кода, но gii — другой.
Gii на столько хорош, что может изменить весь рабочий процесс. На это можно посмотреть с двух сторон — со стороны одиночного разработчика и со стороны команды разработчиков.
Сначала поговорим об одиночном разработчике, так как большое количество начинающих разработчиков, которые обратились к yii2.
1. Планирование
До начала использования gii нужно спланировать структуру приложения, таблицы баз данных и их связи. Это позволит увидеть будущее приложение целиком, не вдаваясь в детали. Грамотное планирование позволяет избежать в будущем многих проблем.
На основе структуры таблиц в базе данных gii поможет создать модели. Если для связи таблиц в базе данных используются ключи, gii создаст соответствующие отношения в моделях.
2. Структура mvc
Генератор gii создает почти идеальную реализацию паттерна mvc. Она же будет одной из самых доступных для понимания среди всех фреймворков. Имена каталогов говорят сами за себя — models, views и controllers.
3. Хороший пример
Используя gii, вы привыкаете к дисциплине. Выстраивание процесса разработки: планирование, выстраивание скелета, наращивание мяса и кожи, слой за слоем, позволяет на каждом уровне абстрагироваться от не нужных деталей.
Выстраивание скелета — это как раз работа для gii и он с ней отлично справляется. Дальше дело за разработчиком, но и здесь yii 2.0 только в помощь.
4. Профессиональный рост
Результат работы gii — отличный код, который можно принять за эталон для начинающего разработчика. Опора на сгенерированный код поможет быстро встать на ноги и начать создавать собственные приложения, соответствующие современным требованиям.
Чем gii полезен для команды разработчиков?
1. Стандартизация рабочего процесса
Планирование и реализация проекта неразлучны. Каждый разработчик в команде выполняет свою роль и используя всю мощь gii, можно оптимально использовать имеющиеся человеко-часы.
2. Общая отправная точка
В большинстве случаев очень полезно начать работу с готовой моделью, которую позволяет создать gii. Шаблоны создания моделей, как и контроллеров и представлений, могут быть легко доработаны под нужны команды или проекта. Очевидно, что существуют некоторые исключения и ограничения, но в общем случае, такой подход помогает создавать легкоподдерживаемый и понятный всем участникам команды код.
3. Быстрый старт
Нередко возникает необходимость быстро накидать прототип приложения для того, что бы понять целесообразность выбранного подхода или архитектуры. Генератор кода gii, например, позволяет быстро создать модели и crud для аналогичных сущностей в разных субд, что поможет выбрать лучший из вариантов по быстродействию.
4. Практичность стандартизации
При уходе одного разработчика из команды его замена может стать большой проблемой. Но использование шаблонного подхода на много облегчает ротацию кадров. Так что, грамотное использование yii2 gii со всеми его возможностями, позволяет обезопасить команду разработчиков и избежать не нужных издержек.
Прекрасная гибкость генерации при помощи gii обусловлена отличной реализацией orm в yii 2.0. Благодаря ей, появилась возможность создавать логичный и легкочитаемый код, в том числе и в реализации mvc.
Все вышесказанное лишний раз убеждает меня в правильности выбора yii2, как лучшего php-фреймворка, на сегодняшний день.