Перейти к содержимому

Yii2 gii как запустить

  • автор:

The Gii code generation tool ¶

Note: This section is under development.

Yii includes a handy tool, named Gii, that provides rapid prototyping by generating commonly used code snippets as well as complete CRUD controllers.

Gii provides a Web-based interface for you to interactively generate the code you want. It also provides a command line interface for people who prefer to work with their console windows most of the time.

Installing and configuring ¶

Gii is an official Yii extension. The preferred way to install this extension is through composer.

You can either run this command:

Or you can add this code to the require section of your composer.json file:

Once the Gii extension has been installed, you enable it by adding these lines to your application configuration file:

You can then access Gii through the following URL:

If you have enabled pretty URLs, you may use the following URL:

Note: if you are accessing gii from an IP address other than localhost, access will be denied by default. To circumvent that default, add the allowed IP addresses to the configuration:

If you have configured Gii similarly in your console application configuration, you may also access Gii through command window like the following:

Basic application ¶

In basic application template configuration structure is a bit different so Gii should be configured in config/web.php :

So in order to adjust IP address you need to do it like the following:

How to use it ¶

When you open Gii you first see the entry page that lets you choose a generator.

Gii entry page

By default there are the following generators available:

  • Model Generator — This generator generates an ActiveRecord class for the specified database table.
  • CRUD Generator — This generator generates a controller and views that implement CRUD (Create, Read, Update, Delete) operations for the specified data model.
  • Controller Generator — This generator helps you to quickly generate a new controller class, one or several controller actions and their corresponding views.
  • Form Generator — This generator generates a view script file that displays a form to collect input for the specified model class.
  • Module Generator — This generator helps you to generate the skeleton code needed by a Yii module.
  • Extension Generator — This generator helps you to generate the files needed by a Yii extension.

After choosing a generator by clicking on the «Start» button you will see a form that allows you to configure the parameters of the generator. Fill out the form according to your needs and press the «Preview» button to get a preview of the code that Gii is about to generate. Depending on the generator you chose and whether the files already existed or not, you will get an output similar to what you see in the following picture:

Gii preview

Clicking on the file name you can view a preview of the code that will be generated for that file. When the file already exists, Gii also provides a diff view that shows what is different between the code that exists and the one that will be generated. In this case you can also choose which files should be overridden and which not.

Tip: When using the Model Generator to update models after database change, you can copy the code from Gii preview and merge the changes with your own code. You can use IDE features like PHPStorms compare with clipboard, Aptana Studio or Eclipse based editor also allows compare with clipboard by using AnyEdit tools plugin for this, which allows you to merge in relevant changes and leave out others that may revert your own code.

After you have reviewed the code and selected the files to be generated you can click the «Generate» button to create the files. If all went fine you are done. When you see errors that Gii is not able to generate the files you have to adjust directory permissions so that your webserver is able to write to the directories and create the files.

Note: The code generated by Gii is only a template that has to be adjusted to your needs. It is there to help you create new things quickly but it is not something that creates ready to use code. We often see people using the models generated by Gii without change and just extend them to adjust some parts of it. This is not how it is meant to be used. Code generated by Gii may be incomplete or incorrect and has to be changed to fit your needs before you can use it.

Creating your own templates ¶

Every generator has a form field Code Template that lets you choose a template to use for code generation. By default Gii only provides one template default but you can create your own templates that are adjusted to your needs.

If you open the folder @app\vendor\yiisoft\yii2-gii\generators , you’ll see six folders of generators.

These names are the generator names. If you open any of these folders, you can see the folder default , which is the name of the template.

Copy the folder @app\vendor\yiisoft\yii2-gii\generators\crud\default to another location, for example @app\myTemplates\crud\ . Now open this folder and modify any template to fit your desires, for example, add errorSummary in views\_form.php :

Now you need to tell Gii about our template. The setting is made in the config file:

Open the CRUD generator and you will see that in the field Code Template of form appeared own template .

Yii2 gii как запустить

Всем привет! В этой статье рассмотрим генерацию кода для Yii2 из командной строки. С Yii я работаю достаточно давно, еще с первой версии. Одной из интересных особенностей фреймворка является встроенный кодогенератор Gii. С его помощью можно быстро сгенерировать модели данных, контроллеры и даже целые CRUD блоки на основании таблицы базы данных.

Это достаточно полезно для быстрого прототипирования или для создания основы приложения. Конечно, обычно код потом меняется под нужды конкретной задачи.

Gii предоставляет графический интерфейс для создания кода. Им достаточно просто и удобно пользоваться. Также по нему есть довольно подробная документация.

В то же время, Gii поддерживает генерацию кода из консоли. Это почти не описано в документации, однако может быть полезно при частом использовании.

Итак, из коробки Gii включает в себя 6 генераторов: Model, Crud, Controller, Form, Module, Extension. Я чаще всего использую Model и Crud generator.

Подготовка

Для проверки работы генераторов установим Yii2 и создадим тестовое приложение, как описано в документации После этого создадим таблицу task .

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

Создание модели

Теперь попробуем сгенерировать модель. Указываем название таблицы, название модели и namespace. Также можно указать дополнительные параметры. Например, сгенерировать query — класс, ктотрый будет содержать различные запросы.

В результате будет сгенерирован класс модели: models/Task.php .

Создание контроллера

Теперь создадим контроллер. Здесь полностью указать название вместе с namespace. Также можно указать список action и другие параметры.

В результате будет сгенерирован контроллер controllers/TestController.php и файлы отображения views/test/index.php .

Создание CRUD

Дальше самое интересное — создадим CRUD. CRUD — акроним от слов "create", "read", "update", "delete" — базовых операций по работе с хранилищем данных. Соответственно, будет создана почти полноценная админка для нашей сушности.

В результате будет сгенерирован контроллер controllers/TaskController.php и все необходимые вьюхи views/task/_form.php

Итоги

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

Генерация кода при помощи Gii

Информация о материале Родительская категория: Полное руководство по Yii 2.0 Категория: Первое знакомство Yii 2 Генерация кода при помощи GiiYii 2 Генерация кода при помощи Gii

Генерация кода при помощи Gii

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

В этом руководстве вы узнаете:

  • Как активировать Gii в приложении;
  • Как использовать Gii для создания Active Record класса;
  • Как использовать Gii для генерации кода, реализующего CRUD для таблицы БД.
  • Как настроить код, генерируемый Gii.

Запускаем Gii

Gii представлен в Yii как модуль. Вы можете активировать Gii, настроив его в свойстве [[yii\base\Application::modules|modules]]. В зависимости от того, каким образом вы создали приложение, вы можете удостовериться в наличии следующего кода в конфигурационном файле config/web.php ,

Приведенная выше конфигурация показывает, что находясь в режиме разработки, приложение должно включать в себя модуль с именем gii , который реализует класс [[yii\gii\Module]].

Если вы посмотрите входной скрипт web/index.php вашего приложения, вы увидите следующую строку, устанавливающую константу YII_ENV_DEV в значение true .

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

Note: Если вы пытаетесь получить доступ к Gii не с локального хоста, по умолчанию, в целях обеспечения безопасности, доступ будет запрещён. Вы можете изменить настройки Gii, чтобы добавить разрешённые IP адреса, как указано ниже

Gii представлен в Yii как модуль.

Генерация класса Active Record

Чтобы использовать Gii для генерации класса Active Record, выберите «Генератор модели» (нажав на ссылку на главной странице Gii). И заполните форму следующим образом:

  • Имя таблицы: country
  • Класс модели : Country

Генератор модели класса Active Record yii 2

Затем нажмите на кнопку «Предварительный просмотр». Вы увидите, что models/Country.php перечислен в результатах создаваемых файлов классов. Вы можете нажать на имя файла класса для просмотра его содержимого.

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

Предварительный просмотр генератора модели yii 2

Для перезаписи существующего файла установите флажок рядом с «overwrite» и нажмите кнопку «Generate». Для создания нового файла вы можете просто нажать «Generate».

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

Создание CRUD кода

CRUD расшифровывается как Create, Read, Update и Delete, предоставляющий четыре основные функции, выполняемые над данными на большинстве веб-сайтов. Чтобы создать функциональность CRUD используя Gii, выберите «CRUD Генератор» (нажав на ссылку на главной странице Gii). Для нашей таблицы «country» заполните полученную форму следующим образом:

  • Model Class: app\models\Country
  • Search Model Class: app\models\CountrySearch
  • Controller Class: app\controllers\CountryController

CRUD генератор gii yii 2

Затем нажмите на кнопку «Preview». Вы увидите список файлов, которые будут созданы, как показано ниже.

CRUD генератор: предпросмотр yii 2 gii

Если вы уже создали файлы controllers/CountryController.php и views/country/index.php (в разделе о базах данных), установите флажок «overwrite», чтобы заменить их. (Предыдущие версии не поддерживают CRUD полностью)

Испытываем в действии

Чтобы увидеть как всё это работает, перейдите по следующему URL, используя ваш браузер:

Вы увидите таблицу, показывающую страны из таблицы БД. Вы можете сортировать, а также фильтровать данные, указывая условия фильтрации в заголовках столбцов.

Для каждой отображающейся в таблице страны вы можете просмотреть подробную информацию, обновить или удалить её. Вы также можете нажать на кнопку «Создать страну» в верхней части таблицы для получения формы создания новой страны.

Таблица данных стран yii 2 gii

Обновление страны yii 2 gii

Ниже приведен список файлов, созданных с помощью Gii, в том случае, если вы захотите исследовать реализацию этих функций, или изменить их:

  • Контроллер: controllers/CountryController.php
  • Модели: models/Country.php и models/CountrySearch.php
  • Вид: views/country/*.php

Info: Gii разработан как тонконастраиваемый и расширяемый инструмент генерации кода. Используя его с умом, вы можете значительно ускорить скорость разработки приложений. Для более подробной информации, пожалуйста, обратитесь к разделу Gii.

Заключение

В этом разделе вы узнали, как использовать Gii для генерации кода, реализующего полную функциональность CRUD для данных, хранящихся в таблице базы данных.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉

Как включить Gii и Debugger на сайте Yii 2.x?

По умолчанию в режиме разработчика в файле config/web.php есть исходный код, который активирует и деактивирует Gii и Debugger.

Особенность заключается в том, что данный код работает только на локальном сервере, т.е с адреса 127.0.0.1. При переносе сайта на удаленный сервер и отладчик, и генератор кода перестает работать. Для решение этой проблемы необходимо выяснить ip адрес сервера и добавить адрес в список разрешенных ip адресов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *