Carsten Brandt
10 years ago
1 changed files with 125 additions and 0 deletions
@ -0,0 +1,125 @@ |
|||||||
|
Gerando Código com Gii |
||||||
|
======================== |
||||||
|
|
||||||
|
Essa seção irá descrever como usar o [Gii](tool-gii.md) para automaticamente gerar código que implementa algumas funcionalidades comuns de sites. Usar o Gii para gerar código é simples, trata-se apenas de uma questão de entrar com as informações corretas de acordo com as instruções mostradas nas páginas do Gii. |
||||||
|
|
||||||
|
Através desse tutorial, você irá aprender a: |
||||||
|
|
||||||
|
* Habilitar o Gii em sua aplicação |
||||||
|
* Usar o Gii para gerar uma classe Active Record |
||||||
|
* Usar o Gii para gerar código que implementa as operações CRUD para uma tabela do BD |
||||||
|
* Customizar o código gerado pelo Gii |
||||||
|
|
||||||
|
|
||||||
|
Começando a usar o Gii <a name="starting-gii"></a> |
||||||
|
------------ |
||||||
|
|
||||||
|
[Gii](tool-gii.md) é fornecido com o Yii como um [módulo](structure-modules.md). Você pode habilitar o Gii ao configurá-lo na propriedade [[yii\base\Application::modules|modules]] da aplicação. Dependendo de como você criou sua aplicação, você pode já encontrar o seguinte código no arquivo de configuração `config/web.php`: |
||||||
|
|
||||||
|
```php |
||||||
|
$config = [ ... ]; |
||||||
|
|
||||||
|
if (YII_ENV_DEV) { |
||||||
|
$config['bootstrap'][] = 'gii'; |
||||||
|
$config['modules']['gii'] = 'yii\gii\Module'; |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
A configuração acima declara que quando se está em [ambiente de desenvolvimento](concept-configurations.md#environment-constants), a aplicação deve incluir um módulo chamado `gii`, da classe [[yii\gii\Module]]. |
||||||
|
|
||||||
|
Se você checar o [script inicial](structure-entry-scripts.md) `web/index.php` da sua aplicação, você encontrará a seguinte linha, que essencialmente faz com que o `YII_ENV_DEV` seja verdadeiro. |
||||||
|
|
||||||
|
```php |
||||||
|
defined('YII_ENV') or define('YII_ENV', 'dev'); |
||||||
|
``` |
||||||
|
|
||||||
|
Graças a essa linha, sua aplicação está em modo de desenvolvimento e estará com o Gii habilitado, pela configuração acima. Agora você pode acessar o Gii pela URL: |
||||||
|
|
||||||
|
``` |
||||||
|
http://hostname/index.php?r=gii |
||||||
|
``` |
||||||
|
|
||||||
|
> Observação: Se você está acessando o Gii por um endereço IP que não seja o localhost, o acesso será negado por padrão. |
||||||
|
> Para mudar isso, adicione a lista de endereços IP permitidos à configuração: |
||||||
|
> |
||||||
|
```php |
||||||
|
'gii' => [ |
||||||
|
'class' => 'yii\gii\Module', |
||||||
|
'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // ajuste de acordo com suas necessidades |
||||||
|
], |
||||||
|
``` |
||||||
|
|
||||||
|
![Gii](images/start-gii.png) |
||||||
|
|
||||||
|
|
||||||
|
Gerando uma classe Active Record <a name="generating-ar"></a> |
||||||
|
--------------------------------- |
||||||
|
|
||||||
|
Para usar o Gii para gerar uma classe Active Record, selecione o "Model Generator" clicando no link na página inicial do Gii. Preencha o formulário como indicado abaixo: |
||||||
|
|
||||||
|
* Nome da tabela: `country` |
||||||
|
* Classe do modelo: `Country` |
||||||
|
|
||||||
|
![Gerador de Modelo](images/start-gii-model.png) |
||||||
|
|
||||||
|
Em seguida, clique no botão "Preview". Você verá o `models/Country.php` listado como arquivo a ser criado. Você pode clicar no nome do arquivo para pré-visualizar seu conteúdo. |
||||||
|
|
||||||
|
Ao usar o Gii, se você já havia criado o mesmo arquivo e pretende sobrescrevê-lo, clique no botão `diff` próximo ao nome do arquivo para ver as diferenças entre o código a ser gerado e a versão já existente. |
||||||
|
|
||||||
|
![Pré-visualização do Gerador de Modelo](images/start-gii-model-preview.png) |
||||||
|
|
||||||
|
Quando estiver sobrescrevendo um arquivo, marque a caixa próxima a "sobrescrever" e clique no botão "Gerar". Se estiver criando um arquivo novo, apenas clique em "Gerar". |
||||||
|
|
||||||
|
Em seguida, você verá uma página de confirmação indicando que o código foi gerado com sucesso. Se você já tinha um arquivo, também verá uma mensagem indicando que ele foi sobrescrito com o novo código. |
||||||
|
|
||||||
|
|
||||||
|
Gerando código CRUD <a name="generating-crud"></a> |
||||||
|
-------------------- |
||||||
|
|
||||||
|
CRUD corresponde a Create, Read, Update, and Delete (criar, ler, atualizar e apagar), representando as quatro tarefas comuns feitas com os dados na maioria dos sites. Para criar funcionalidades CRUD usando o Gii, selecione "Gerador CRUD" clicando no link na página inicial do Gii. Seguindo o exemplo "country", preencha o formulário com as seguintes informações: |
||||||
|
|
||||||
|
* Classe do Modelo: `app\models\Country` |
||||||
|
* Classe da Busca: `app\models\CountrySearch` |
||||||
|
* Classe do Controller: `app\controllers\CountryController` |
||||||
|
|
||||||
|
![Gerador de CRUD](images/start-gii-crud.png) |
||||||
|
|
||||||
|
Em seguida, clique no botão "Preview". Você verá uma lista de arquivos a serem gerados, como mostrado abaixo. |
||||||
|
|
||||||
|
![Pré-visualização do Gerador de CRUD](images/start-gii-crud-preview.png) |
||||||
|
|
||||||
|
Se você criou anteriormente os arquivos `controllers/CountryController.php` e |
||||||
|
`views/country/index.php` (na seção de banco de dados deste guia), marque a caixa "overwrite" para substitui-los. (As versões anteriores não tinham suporte completo às operações CRUD.) |
||||||
|
|
||||||
|
|
||||||
|
Checando os resultados <a name="trying-it-out"></a> |
||||||
|
------------- |
||||||
|
|
||||||
|
Para ver como ficou, use seu navegador para acessar a seguinte URL: |
||||||
|
|
||||||
|
``` |
||||||
|
http://hostname/index.php?r=country/index |
||||||
|
``` |
||||||
|
|
||||||
|
Você verá uma tabela mostrando os países do seu banco de dados. Você pode ordená-los ou filtrá-los inserindo condições nos cabeçalhos das colunas. |
||||||
|
|
||||||
|
Para cada país exibido na tabela, você pode visualizar detalhes, editar ou excluir. |
||||||
|
Você também pode clicar no botão “Create Country” no topo da tabela para ter acesso a um formulário de criação de um novo país. |
||||||
|
|
||||||
|
![Tabela de Países](images/start-gii-country-grid.png) |
||||||
|
|
||||||
|
![Editando um País](images/start-gii-country-update.png) |
||||||
|
|
||||||
|
Essa é uma lista de arquivos gerados pelo Gii, caso você queira investigar como essas funcionalidades são implementadas ou adaptá-las: |
||||||
|
|
||||||
|
* Controller: `controllers/CountryController.php` |
||||||
|
* Modelo: `models/Country.php` e `models/CountrySearch.php` |
||||||
|
* Views: `views/country/*.php` |
||||||
|
|
||||||
|
> Info: o Gii é projetado para ser uma ferramenta altamente adaptável e extensível. Usando-o sabiamente, você irá acelerar o desenvolvimento da sua aplicação. Para mais detalhes, por favor siga para a seção [Gii](tool-gii.md). |
||||||
|
|
||||||
|
|
||||||
|
Resumo <a name="summary"></a> |
||||||
|
------- |
||||||
|
|
||||||
|
Nessa seção, você aprendeu a usar o Gii para gerar código que implementa funcionalidades CRUD para o conteúdo guardado em uma tabela do banco de dados. |
Loading…
Reference in new issue