diff --git a/docs/guide-pt-BR/db-migrations.md b/docs/guide-pt-BR/db-migrations.md index d2e6d416ec6..b45d45ca144 100644 --- a/docs/guide-pt-BR/db-migrations.md +++ b/docs/guide-pt-BR/db-migrations.md @@ -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 diff --git a/docs/guide-pt-BR/intro-upgrade-from-v1.md b/docs/guide-pt-BR/intro-upgrade-from-v1.md index 2695016094f..811334d7c68 100644 --- a/docs/guide-pt-BR/intro-upgrade-from-v1.md +++ b/docs/guide-pt-BR/intro-upgrade-from-v1.md @@ -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 diff --git a/docs/guide-pt-BR/structure-applications.md b/docs/guide-pt-BR/structure-applications.md index 4ccc6050b34..a70d09c0349 100644 --- a/docs/guide-pt-BR/structure-applications.md +++ b/docs/guide-pt-BR/structure-applications.md @@ -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]] @@ -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]] 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 @@ -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 [ diff --git a/docs/guide-pt-BR/structure-controllers.md b/docs/guide-pt-BR/structure-controllers.md index a8412715f3f..36fbaff198e 100644 --- a/docs/guide-pt-BR/structure-controllers.md +++ b/docs/guide-pt-BR/structure-controllers.md @@ -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 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 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 +## Boas Práticas 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 diff --git a/docs/guide-pt-BR/structure-entry-scripts.md b/docs/guide-pt-BR/structure-entry-scripts.md index ca718e2e619..2984cfc7417 100644 --- a/docs/guide-pt-BR/structure-entry-scripts.md +++ b/docs/guide-pt-BR/structure-entry-scripts.md @@ -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