Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1703 from rcoelho/trans-module
Translated basics.module.txt to pt_br.
- Loading branch information
Showing
1 changed file
with
85 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Original file line | Diff line number | Diff line change |
---|---|---|---|
@@ -0,0 +1,85 @@ | |||
Módulo | |||
====== | |||
|
|||
Um módulo é uma unidade de software independente que consiste de [modelos](/doc/guide/basics.model), [visões](/doc/guide/basics.view), [controles](/doc/guide/basics.controller) e outros componentes auxiliares. em muitos aspectos, um módulo lembra uma [aplicação](/doc/guide/basics.application). A principal diferença é que um módulo não pode ser implantado sozinho e ele deve residir em uma aplicação. Usuários podem acessar os controles em um m´dulo da mesma maneira que o fazem com controles normais de uma aplicação. | |||
|
|||
Módulos são úteis em vários cenários. Para uma aplicalção de grande escala, nós podemos dividí-la em vários módulos, cada um deles desenvolvido e mantido separadamente. Algumas funcionalidades comumente usadas, como o gerenciamento de usuários e o gerenciamento de comentário podem ser desenvolvidas em módulos para que elas possam ser facilmente reutilizadas em projetos futuros. | |||
|
|||
|
|||
Criando um Módulo | |||
----------------- | |||
|
|||
Um módulo é organizado como um diretório cujo nome serve como a sua [ID|CWebModule::id] única. A estrutura do diretório de um módulo é similar ao do [diretório base da aplicação](/doc/guide/basics.application#application-base-directory). Está apresentado abaixo o layout típico da estrutura do diretório de um módulo de nome `forum`: | |||
|
|||
~~~ | |||
forum/ | |||
ForumModule.php o arquivo de classe do módulo | |||
components/ contém os componentes reutilizáveis do usuário | |||
views/ contém os arquivos de visão para os widgets | |||
controllers/ contém as classes dos controles | |||
DefaultController.php o arquivo de classe do controle padrão | |||
extensions/ contém extensões de terceiros | |||
models/ contém os arquivos de classe dos modelos | |||
views/ contém as visões dos controles e os arquivos de layout | |||
layouts/ contém os arquivos das visões de layout | |||
default/ contém os arquivos das visões do controle padrão | |||
index.php o arquivo da visão "index" | |||
~~~ | |||
|
|||
Um módulo deve ter uma classe de módulo que estende de [CWebModule]. O nome da classe é determinado usando a expressão `ucfirst($id).'Module'`, onde `$id` refere-se à ID do módulo (ou ao nome do diretório do módulo). Esta classe de módulo serve como o local central para o armazenamento de informações compartilhadas pelo código do módulo. Por exemplo, nós podemos usar [CWebModule::params] para armazenar os parâmetros do módulo, e usar [CWebModule::components] para compartilhar os [componentes da aplicação](/doc/guide/basics.application#application-component) no nível do módulo. | |||
|
|||
> Tip|Dica: Nó podemos usar o gerador de módulos do Gii para criar o esqueleto básico de um novo módulo. | |||
|
|||
|
|||
Usando Módulos | |||
-------------- | |||
|
|||
Para usar um módulo, primeiro coloque o diretório do módulo sub o diretório `modules` do [diretório base da aplicação](/doc/guide/basics.application#application-base-directory). Então declare a ID do módulo na propriedade [modules|CWebApplication::modules] da aplicação. Por exemplo, para usar o módulo `forum` acima, nós podemos usar a seguinte [configuração de aplicação](/doc/guide/basics.application#application-configuration): | |||
|
|||
~~~ | |||
[php] | |||
return array( | |||
...... | |||
'modules'=>array('forum',...), | |||
...... | |||
); | |||
~~~ | |||
|
|||
Um módulo pode também ser configurado com valores iniciais para as suas propriedades. Isto é muito similar a configurar [componentes da aplicação](/doc/guide/basics.application#application-component). Por exemplo, o módulo `forum` pode ter uma propriedade chamada `postPerPage` na sua classe de módulo que pode ser configurada na [configuração da aplicação](/doc/guide/basics.application#application-configuration) como se segue: | |||
|
|||
~~~ | |||
[php] | |||
return array( | |||
...... | |||
'modules'=>array( | |||
'forum'=>array( | |||
'postPerPage'=>20, | |||
), | |||
), | |||
...... | |||
); | |||
~~~ | |||
|
|||
A instância do módulo pode ser acessada através da propriedade [module|CController::module] do controle atualmente ativo. Através da instância do módulo, nós podemos então acessar as informações que são compartilhadas no nível do módulo. Por exemplo, para acessar a informação em `postPerPage` acima, nós podemos usar a seguinte expressão: | |||
|
|||
~~~ | |||
[php] | |||
$postPerPage=Yii::app()->controller->module->postPerPage; | |||
// ou o seguinte se $this refere-se a uma instância de um controle | |||
// $postPerPage=$this->module->postPerPage; | |||
~~~ | |||
|
|||
A ação de um controle em um módulo pode ser acessada usando a [rota](/doc/guide/basics.controller#route) `móduloID/controleID/açãoID`. Por exemplo, assumindo que o módulo `forum` acima tenha um controle chamado `PostController`, nós podemos usar a [rota](/doc/guide/basics.controller#route) `forum/post/create` para fazer referência à ação `create` neste controle. A URL correspondente a esta rota seria `http://www.example.com/index.php?r=forum/post/create`. | |||
|
|||
> Tip|Dica: Se um controle está em um subdiretório de `controllers`, nós ainda podemos usar o formato de [rota](/doc/guide/basics.controller#route) acima. Por exemplo. assumindo que `PostController` esteja sob `forum/controllers/admin`, nós podemos fazer uma referência à ação `create` usando `forum/admin/post/create`. | |||
|
|||
|
|||
Módulo Aninhado | |||
--------------- | |||
|
|||
Módulos podem ser aninhados em níveis ilimitados. Isto quer dizer que um módulo pode conter outro módulo, que pode conter outro módulo, que pode conter ainda outro módulo. Nós podemos chamar o o primeiro deles de *módulo pai* e o último deles de *módulo folho*. Um módulo filho deve ser declarado na propriedade [modules|CWebModule::modules] do seu módulo pai, da mesma maneira que declaramos módulos na configuração da aplicação, como mostrado acima. | |||
|
|||
Para acessar uma ação de um controle em um módulo filho, nós podemos usar a rota `móduloPaiID/móduloFilhoID/controleID/açãoID`. | |||
|
|||
|
|||
<div class="revision">$Id$</div> |