mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-10 02:13:17 +08:00
Merge pull request #8461 from davidsonalencar/master
Updated guides pt-BR [ci skip]
This commit is contained in:
@ -35,6 +35,10 @@ Todas estas ferramentas são acessíveis através do comando `yii migrate`. Nest
|
||||
em detalhes como realizar várias tarefas usando estas ferramentas. Você também pode descobrir como usar
|
||||
cada ferramenta através do comando de ajuda `yii help migrate`.
|
||||
|
||||
> Observação: os migrations (migrações) podem afetar não só o esquema do banco de dados,
|
||||
mas também ajustar os dados existentes para se conformar ao novo esquema, como
|
||||
criar novas hierarquias de RBAC ou limpar dados de cache.
|
||||
|
||||
|
||||
## Criando Migrações <span id="creating-migrations"></span>
|
||||
|
||||
|
||||
@ -120,8 +120,8 @@ $object = Yii::createObject([
|
||||
], [$param1, $param2]);
|
||||
```
|
||||
|
||||
Mais detalhes sobre configurações podem ser encontradas na seção
|
||||
[Configurações de Objetos](concept-configurations.md).
|
||||
Mais detalhes sobre configurações podem ser encontradas na seção de
|
||||
[Configurações](concept-configurations.md).
|
||||
|
||||
|
||||
Eventos
|
||||
|
||||
@ -67,7 +67,7 @@ caracteres alfanuméricos ao especificar um ID de aplicação.
|
||||
A propriedade [[yii\base\Application::basePath|basePath]] especifica o diretório
|
||||
raiz de um sistema. É o diretório que contém todo o código fonte protegido de um
|
||||
sistema. Sob este diretório, você normalmente verá subdiretórios tais como
|
||||
`models`, `views`, `controllers`, que contém o código fonte correspondente ao
|
||||
`models`, `views` e `controllers`, que contém o código fonte correspondente ao
|
||||
padrão MVC.
|
||||
|
||||
Você pode configurar a propriedade [[yii\base\Application::basePath|basePath]]
|
||||
@ -92,7 +92,7 @@ configuradas porque elas variam em diferentes aplicações.
|
||||
|
||||
Esta propriedade permite que você defina um conjunto de
|
||||
[aliases](concept-aliases.md) em termos de um array. As chaves do array representam
|
||||
os nomes de alias, e os valores são as definições correspondentes. Por exemplo,
|
||||
os nomes de alias, e os valores são as definições correspondentes. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -103,8 +103,8 @@ os nomes de alias, e os valores são as definições correspondentes. Por exempl
|
||||
]
|
||||
```
|
||||
|
||||
Essa propriedade está disponível de modo que você possa definir aliases em termos
|
||||
de configurações da aplicação ao invés de chamadas ao método [[Yii::setAlias()]].
|
||||
Esta propriedade é fornecida para que você possa definir aliases na configuração
|
||||
da aplicação ao invés de chamar o método [[Yii::setAlias()]].
|
||||
|
||||
|
||||
#### [[yii\base\Application::bootstrap|bootstrap]] <span id="bootstrap"></span>
|
||||
@ -124,7 +124,7 @@ seguintes formatos:
|
||||
- um array de configuração.
|
||||
- uma função anônima que cria e retorna um componente.
|
||||
|
||||
Por exemplo,
|
||||
Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -168,7 +168,7 @@ também será chamado.
|
||||
|
||||
Outro exemplo prático está na configuração do [Template Básico de Projetos](start-installation.md),
|
||||
onde os módulos `debug` e `gii` estão configurados como componentes de inicialização
|
||||
quando a aplicação está rodando no ambiente de desenvolvimento,
|
||||
quando a aplicação está rodando no ambiente de desenvolvimento:
|
||||
|
||||
```php
|
||||
if (YII_ENV_DEV) {
|
||||
@ -196,7 +196,7 @@ em modo de manutenção e precisa tratar todas as requisições através de uma
|
||||
|
||||
A configuração é um array, cujo primeiro elemento especifica a rota para a action.
|
||||
O restante dos elementos do array (pares de chave-valor) especificam os parâmetros
|
||||
que devem ser atrelados à action. Por exemplo,
|
||||
que devem ser atrelados à action. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -213,7 +213,7 @@ que devem ser atrelados à action. Por exemplo,
|
||||
|
||||
Essa é a propriedade mais importante. Ela permite que você registre uma lista
|
||||
de componentes chamados [componentes de aplicação](structure-application-components.md)
|
||||
que você pode usar em outros lugares. Por exemplo,
|
||||
que você pode usar em outros lugares. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -284,7 +284,7 @@ diretório correspondente ao namespace. Por exemplo, dado um ID de controller
|
||||
|
||||
É importante que as classes completas e qualificadas possam ser [carregadas automaticamente](concept-autoloading.md)
|
||||
e que o namespace das suas classes de controller correspondam ao valor dessa
|
||||
propriedade. Doutra forma, você receberia um erro "Página Não Encontrada" ao
|
||||
propriedade. Doutra forma, você receberia um erro de "Página Não Encontrada" ao
|
||||
acessar a aplicação.
|
||||
|
||||
Caso você queira quebrar a convenção conforme descrito acima, você pode configurar
|
||||
@ -318,7 +318,7 @@ Essa propriedade especifica os [módulos](structure-modules.md) que uma aplicaç
|
||||
contém.
|
||||
|
||||
A propriedade recebe um array de classes de módulos ou [configurações](concept-configurations.md)
|
||||
com as chaves do array sendo os IDs dos módulos. Por exemplo,
|
||||
com as chaves do array sendo os IDs dos módulos. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -401,7 +401,7 @@ Essa propriedade é disponibilizada como uma maneira alternativa de definir a
|
||||
timezone do PHP em tempo de execução. Ao confiugrar essa propriedade, você está
|
||||
essencialmente chamando a função
|
||||
[date_default_timezone_set()](http://php.net/manual/en/function.date-default-timezone-set.php)
|
||||
do PHP. Por exemplo,
|
||||
do PHP. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -413,8 +413,8 @@ do PHP. Por exemplo,
|
||||
#### [[yii\base\Application::version|version]] <span id="version"></span>
|
||||
|
||||
Essa propriedade especifica a versão da aplicação. Seu valor padrão é `'1.0'`.
|
||||
Você nem sempre precisa configurar essa propriedade se nenhuma parte do seu código
|
||||
a está usando.
|
||||
Você não precisa configurar esta propriedade se nenhuma parte do seu código
|
||||
estiver utilizando-a.
|
||||
|
||||
|
||||
### Propriedades Úteis <span id="useful-properties"></span>
|
||||
@ -581,7 +581,7 @@ A sintaxe de uso de `on eventName` é descrita na seção
|
||||
|
||||
Alternativamente, você pode vincular manipuladores de evento durante o
|
||||
[processo de inicialização](runtime-bootstrapping.md) após a instância da aplicação
|
||||
ser criada. Por exemplo,
|
||||
ser criada. Por exemplo:
|
||||
|
||||
```php
|
||||
\Yii::$app->on(\yii\base\Application::EVENT_BEFORE_REQUEST, function ($event) {
|
||||
@ -622,7 +622,7 @@ O nome do evento é `beforeAction`.
|
||||
|
||||
O parâmetro do evento é uma instância de [[yii\base\ActionEvent]]. Um manipulador
|
||||
de evento pode definir o valor da propriedade [[yii\base\ActionEvent::isValid]]
|
||||
como `false` para interromper a execução da action. Por exemplo,
|
||||
como `false` para interromper a execução da action. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -649,7 +649,7 @@ O nome do evento é `afterAction`.
|
||||
|
||||
O parâmetro do evento é uma instância de [[yii\base\ActionEvent]]. Através da
|
||||
propriedade [[yii\base\ActionEvent::result]], um manipulador de evento pode
|
||||
acessar ou modificar o resultado da action. Por exemplo,
|
||||
acessar ou modificar o resultado da action. Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
|
||||
@ -119,7 +119,7 @@ Por exemplo, você pode usar o `article` como o ID do um controller para tratar
|
||||
dados de artigos.
|
||||
|
||||
Por padrão, os IDs dos controllers devem conter apenas esses caracteres:
|
||||
letras inglesas em caixa baixa, números, underscores (underline), traços e barras.
|
||||
letras inglesas em caixa baixa, números, underscores (underline), hífens e barras.
|
||||
Por exemplo, `article` e `post-comment` são ambos IDs de controllers válidos,
|
||||
enquanto `article?`, `PostComment`, `admin\post` não são.
|
||||
|
||||
@ -134,22 +134,22 @@ barras são usadas para separar os níveis dos subdiretórios (por exemplo, `pan
|
||||
### Nomenclatura da Classe do Controller <span id="controller-class-naming"></span>
|
||||
|
||||
Os nomes da classes dos controllers podem ser derivadas dos IDs dos controllers
|
||||
de acordo com as seguintes regras:
|
||||
de acordo com as seguintes procedimentos:
|
||||
|
||||
* Colocar em caixa alta a primeira letra de cada palavra separadas por traço.
|
||||
Observe que se o ID do controller possuir barras, a regra é aplicada apenas na
|
||||
parte após a última barra no ID.
|
||||
* Remover os traços e substituir todas as barras por barras invertidas.
|
||||
* Adicionar `Controller` como sufixo.
|
||||
* E preceder ao [[yii\base\Application::controllerNamespace|namespace controller]].
|
||||
1. Colocar em caixa alta a primeira letra de cada palavra separadas por traço.
|
||||
Observe que se o ID do controller possuir barras, a regra é aplicada apenas na
|
||||
parte após a última barra no ID.
|
||||
2. Remover os traços e substituir todas as barras por barras invertidas.
|
||||
3. Adicionar `Controller` como sufixo.
|
||||
4. Preceder ao [[yii\base\Application::controllerNamespace|namespace do controller]].
|
||||
|
||||
Segue alguns exemplos, assumindo que o [[yii\base\Application::controllerNamespace|namespace do controller]]
|
||||
tenha por padrão o valor `app\controllers`:
|
||||
|
||||
* `article` deriva-se de `app\controllers\ArticleController`;
|
||||
* `post-comment` deriva-se de `app\controllers\PostCommentController`;
|
||||
* `admin/post-comment` deriva-se de `app\controllers\admin\PostCommentController`;
|
||||
* `adminPanels/post-comment` deriva-se de `app\controllers\adminPanels\PostCommentController`.
|
||||
* `article` torna-se `app\controllers\ArticleController`;
|
||||
* `post-comment` torna-se `app\controllers\PostCommentController`;
|
||||
* `admin/post-comment` torna-se `app\controllers\admin\PostCommentController`;
|
||||
* `adminPanels/post-comment` torna-se `app\controllers\adminPanels\PostCommentController`.
|
||||
|
||||
As classes dos controllers devem ser [autoloadable](concept-autoloading.md).
|
||||
Por esta razão, nos exemplos anteriores, o controller `article` deve ser salvo
|
||||
@ -165,11 +165,11 @@ categorias e não quiser usar [módulos](structure-modules.md).
|
||||
|
||||
Você pode configurar um [[yii\base\Application::controllerMap|mapeamento de controllers]]
|
||||
para superar as barreiras impostas pelos IDs de controllers e pelos nomes de classes
|
||||
descritos acima. Isto é útil principalmente quando quiser esconder alguns controllers
|
||||
descritos acima. Isto é útil principalmente quando quiser esconder controllers
|
||||
de terceiros na qual você não tem controle sobre seus nomes de classes.
|
||||
|
||||
Você pode configurar o [[yii\base\Application::controllerMap|mapeamento de controllers]]
|
||||
na [configuração da aplicação](structure-applications.md#application-configurations) como o seguinte exemplo:
|
||||
na [configuração da aplicação](structure-applications.md#application-configurations). Por exemplo:
|
||||
|
||||
```php
|
||||
[
|
||||
@ -194,8 +194,7 @@ Quando uma requisição não especificar uma [rota](#id-da-rota), será utilizad
|
||||
rota especificada pela propriedade.
|
||||
Para as [[yii\web\Application|aplicações Web]], este valor é `'site'`, enquanto
|
||||
para as [[yii\console\Application|aplicações console]] é `help`. Portanto, se uma
|
||||
URL `http://hostname/index.php` for usada, significa que o controller `site` será
|
||||
usado nesta requisição.
|
||||
URL for `http://hostname/index.php`, o controller `site` será utilizado nesta requisição.
|
||||
|
||||
Você pode alterar o controller padrão como a seguinte [configuração da aplicação](structure-applications.md#application-configurations):
|
||||
|
||||
@ -240,13 +239,13 @@ um recurso. Por esta razão, os IDs das ações geralmente são verbos, tais com
|
||||
|
||||
Por padrão, os IDs das ações devem conter apenas esses caracteres: letras inglesas
|
||||
em caixa baixa, números, underscores (underline) e traços. Os traços em um ID da
|
||||
ação são usados para separar palavras. Por exemplo, `view`, `update2`, `comment-post`
|
||||
todos são IDs válidos, enquanto `view?`, `Update` não são.
|
||||
ação são usados para separar palavras. Por exemplo, `view`, `update2` e `comment-post`
|
||||
são IDs válidos, enquanto `view?` e `Update` não são.
|
||||
|
||||
Você pode criar ações de duas maneiras: ações inline (em sequência) e
|
||||
ações standalone (autônomas). Uma ação inline é definida pelo método
|
||||
de uma classe controller, enquanto uma ação standalone é uma classe que estende de
|
||||
[[yii\base\Action]] ou de suas classes filhas. As ações inline exigem menos esforço
|
||||
[[yii\base\Action]] ou de uma classe-filha. As ações inline exigem menos esforço
|
||||
para serem criadas e muitas vezes as preferidas quando não se tem a intenção de
|
||||
reutilizar estas ações. Ações standalone, por outro lado, são criados principalmente
|
||||
para serem utilizados em diferentes controllers ou para serem distribuídos como
|
||||
@ -258,11 +257,11 @@ para serem utilizados em diferentes controllers ou para serem distribuídos como
|
||||
As ações inline referem-se a os chamados métodos de ação, que foram descritos anteriormente.
|
||||
|
||||
Os nomes dos métodos de ações são derivadas dos IDs das ações de acordo com os
|
||||
seguintes critérios:
|
||||
seguintes procedimentos:
|
||||
|
||||
* Colocar em caixa alta a primeira letra de cada palavra do ID da ação;
|
||||
* Remover os traços;
|
||||
* Adicionar o prefixo `action`.
|
||||
1. Colocar em caixa alta a primeira letra de cada palavra do ID da ação;
|
||||
2. Remover os traços;
|
||||
3. Adicionar o prefixo `action`.
|
||||
|
||||
Por exemplo, `index` torna-se `actionIndex` e `hello-world` torna-se `actionHelloWorld`.
|
||||
|
||||
@ -280,7 +279,7 @@ lugares ou se deseja distribuir uma ação, deve considerar defini-la como uma *
|
||||
### Ações Standalone <span id="standalone-actions"></span>
|
||||
|
||||
Ações standalone são definidas por classes de ações que estendem de [[yii\base\Action]]
|
||||
ou de suas classes filhas.
|
||||
ou de uma classe-filha.
|
||||
Por example, nas versões do Yii, existe a [[yii\web\ViewAction]] e a [[yii\web\ErrorAction]], ambas são ações standalone.
|
||||
|
||||
Para usar uma ação standalone, você deve *mapear as ações* sobrescrevendo o método
|
||||
@ -457,7 +456,7 @@ ao seguinte ciclo de vida para concluir a requisição:
|
||||
* Se o ID da ação for encontrada para corresponder a um método de ação, uma ação inline será criada;
|
||||
* Caso contrário, uma exceção [[yii\base\InvalidRouteException]] será lançada.
|
||||
3. De forma sequencial, o controller chama o método `beforeAction()` da aplicação, o módulo (se o controller pertencer a um módulo) e o controller.
|
||||
* Se uma das chamadas retornar false, o restante dos métodos `beforeAction()` serão ignoradas e a execução da ação será cancelada.
|
||||
* Se uma das chamadas retornar false, o restante dos métodos subsequentes `beforeAction()` serão ignoradas e a execução da ação será cancelada.
|
||||
* Por padrão, cada método `beforeAction()` desencadeia a execução de um evento chamado `beforeAction` na qual você pode associar a uma função (handler).
|
||||
4. O controller executa a ação:
|
||||
* Os parâmetros da ação serão analizados e populados a partir dos dados obtidos pela requisição;
|
||||
@ -466,14 +465,14 @@ ao seguinte ciclo de vida para concluir a requisição:
|
||||
6. A aplicação obterá o resultado da ação e irá associá-lo na [resposta](runtime-responses.md).
|
||||
|
||||
|
||||
## Best Practices <span id="best-practices"></span>
|
||||
## Boas Práticas <span id="best-practices"></span>
|
||||
|
||||
Em uma aplicação bem projetada, frequentemente os controllers são bem pequenos na
|
||||
qual cada ação possui poucas linhas de códigos.
|
||||
Se o controller for um pouco complicado, geralmente indica que terá que refaze-lo
|
||||
e passar algum código para outro classe.
|
||||
|
||||
Em resumo, os controllers:
|
||||
Segue algumas boas práticas em destaque. Os controllers:
|
||||
|
||||
* podem acessar os dados de uma [requisição](runtime-requests.md);
|
||||
* podem chamar os métodos dos [models](structure-models.md) e outros componentes
|
||||
|
||||
@ -3,7 +3,7 @@ Scripts de Entrada
|
||||
|
||||
Scripts de entrada são o primeiro passo no processo de inicialização da aplicação.
|
||||
Uma aplicação (seja uma aplicação Web ou uma aplicação console) possui um único script de
|
||||
entrada. Os usuários finais fazem requisições a scripts de entrada que criam
|
||||
entrada. Os usuários finais fazem requisições nos scripts de entrada que criam
|
||||
as instâncias da aplicação e redirecionam as requisições para elas.
|
||||
|
||||
Os scripts de entrada para aplicações Web devem estar armazenados em diretórios
|
||||
|
||||
Reference in New Issue
Block a user