mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 13:58:55 +08:00
Merge pull request #6932 from davidsonalencar/master
docs/guide-pt-BR/structure-extensions.md - translate [ci skip]
This commit is contained in:
525
docs/guide-pt-BR/structure-extensions.md
Normal file
525
docs/guide-pt-BR/structure-extensions.md
Normal file
@ -0,0 +1,525 @@
|
||||
Extensões
|
||||
=========
|
||||
|
||||
As extensões são pacotes de software redistribuíveis especialmente projetadas
|
||||
para serem usadas em aplicações Yii e fornecem recursos prontos para o uso. Por
|
||||
exemplo, a extensão [yiisoft/yii2-debug](tool-debugger.md) adiciona uma barra de
|
||||
ferramentas de depuração na parte inferior de todas as páginas em sua aplicação
|
||||
para ajudar a compreender mais facilmente como as páginas são geradas. Você pode
|
||||
usar as extensões para acelerar o processo de desenvolvimento. Você também pode
|
||||
empacotar seus códigos como extensões para compartilhar com outras pessoas o seu
|
||||
bom trabalho.
|
||||
|
||||
> Informação: Usamos o termo "extensão" para referenciar os pacotes de software
|
||||
específicos do Yii. Para propósito geral, os pacotes de software que podem ser
|
||||
usados sem o Yii, referenciamos sob o termo de "pacote" ou "biblioteca".
|
||||
|
||||
|
||||
## Usando Extensões <a name="using-extensions"></a>
|
||||
|
||||
Para usar uma extensão, você precisa instalá-lo primeiro. A maioria das extensões
|
||||
são distribuídas como pacotes do [Composer](https://getcomposer.org/) que podem
|
||||
ser instaladas seguindo dois passos:
|
||||
|
||||
1. modifique o arquivo `composer.json` de sua aplicação e especifique quais
|
||||
extensões (pacotes do Composer) você deseja instalar.
|
||||
2. execute `composer install` para instalar as extensões especificadas.
|
||||
|
||||
Observe que você pode precisa instalar o [Composer](https://getcomposer.org/)
|
||||
caso você não tenha feito isto antes.
|
||||
|
||||
Por padrão, o Composer instala pacotes registados no [Packagist](https://packagist.org/) -
|
||||
o maior repositório open source de pacotes do Composer. Você também pode [criar
|
||||
o seu próprio repositório](https://getcomposer.org/doc/05-repositories.md#repository)
|
||||
e configurar o Composer para usá-lo. Isto é útil caso você desenvolva extensões
|
||||
privadas que você deseja compartilhar apenas em seus projetos.
|
||||
|
||||
As extensões instaladas pelo Composer são armazenadas no diretório `BasePath/vendor`,
|
||||
onde o `BasePath` refere-se ao [caminho base](structure-applications.md#basePath)
|
||||
da aplicação. Como o Composer é um gerenciador de dependências, quando ele instala
|
||||
um pacote, também instala todos os pacotes dependentes.
|
||||
|
||||
Por exemplo, para instalar a extensão `yiisoft/yii2-imagine`, modifique seu
|
||||
`composer.json` conforme o seguinte exemplo:
|
||||
|
||||
```json
|
||||
{
|
||||
// ...
|
||||
|
||||
"require": {
|
||||
// ... other dependencies
|
||||
|
||||
"yiisoft/yii2-imagine": "*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Depois da instalação, você deve enxergar o diretório `yiisoft/yii2-imagine` sob
|
||||
o diretório `BasePath/vendor`. Você também deve enxergar outro diretório
|
||||
`imagine/imagine` que contém os pacotes dependentes instalados.
|
||||
|
||||
> Informação: O `yiisoft/yii2-imagine` é uma extensão nativa desenvolvida e mantida
|
||||
pela equipe de desenvolvimento do Yii. Todas as extensões nativas estão hospedadas
|
||||
no [Packagist](https://packagist.org/) e são nomeadas como `yiisoft/yii2-xyz`,
|
||||
onde `xyz` varia para cada extensão.
|
||||
|
||||
Agora, você pode usar as extensões instaladas como parte de sua aplicação. O
|
||||
exemplo a seguir mostra como você pode usar a classe `yii\imagine\Image`
|
||||
fornecido pela extensão `yiisoft/yii2-imagine`:
|
||||
|
||||
```php
|
||||
use Yii;
|
||||
use yii\imagine\Image;
|
||||
|
||||
// gera uma imagem thumbnail
|
||||
Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)
|
||||
->save(Yii::getAlias('@runtime/thumb-test-image.jpg'), ['quality' => 50]);
|
||||
```
|
||||
|
||||
> Informação: As classes de extensão são carregadas automaticamente pela
|
||||
[classe autoloader do Yii](concept-autoloading.md).
|
||||
|
||||
|
||||
### Instalando Extensões Manualmente <a name="installing-extensions-manually"></a>
|
||||
|
||||
Em algumas raras ocasiões, você pode querer instalar algumas ou todas extensões
|
||||
manualmente, ao invés de depender do Composer.
|
||||
Para fazer isto, você deve:
|
||||
|
||||
1. fazer o download da extensão com os arquivos zipados e os dezipe no diretório `vendor`
|
||||
2. instalar as classes autoloaders fornecidas pela extensão, se houver.
|
||||
3. fazer o download e instalar todas as extensões dependentes que foi instruído.
|
||||
|
||||
Se uma extensão não tiver uma classe autoloader seguindo a
|
||||
[norma PSR-4](http://www.php-fig.org/psr/psr-4/), você pode usar a classe
|
||||
autoloader fornecida pelo Yii para carregar automaticamente as classes de
|
||||
extensão. Tudo o que você precisa fazer é declarar uma
|
||||
[alias root](concept-aliases.md#defining-aliases) para o diretório root da
|
||||
extensão. Por exemplo, assumindo que você instalou uma extensão no diretório
|
||||
`vendor/mycompany/myext` e que a classe da extensão está sob o namespace `myext`,
|
||||
você pode incluir o código a seguir na configuração de sua aplicação:
|
||||
|
||||
```php
|
||||
[
|
||||
'aliases' => [
|
||||
'@myext' => '@vendor/mycompany/myext',
|
||||
],
|
||||
]
|
||||
```
|
||||
|
||||
|
||||
## Criando Extensões <a name="creating-extensions"></a>
|
||||
|
||||
Você pode considerar criar uma extensão quando você sentir a necessidade de
|
||||
compartilhar o seu bom código para outras pessoas.
|
||||
Uma extensão pode conter qualquer código que você deseja, tais como uma classe
|
||||
helper, um widget, um módulo, etc.
|
||||
|
||||
É recomendado que você crie uma extensão através do
|
||||
[pacote doComposer](https://getcomposer.org/) de modo que possa ser mais
|
||||
facilmente instalado e usado por outros usuário, como descrito na última subseção.
|
||||
|
||||
Abaixo estão as básicas etapas que você pode seguir para criar uma extensão como
|
||||
um pacote do Composer.
|
||||
|
||||
1. Crie uma projeto para sua extensão e guarde-o em um repositório CVS, como o
|
||||
[github.com](https://github.com). O trabalho de desenvolvimento e de manutenção
|
||||
deve ser feito neste repositório.
|
||||
2. Sob o diretório root do projeto, crie um arquivo chamado `composer.json` como
|
||||
o requerido pelo Composer. Por favor, consulte a próxima subseção para mais
|
||||
detalhes.
|
||||
3. Registre sua extensão no repositório do Composer, como o
|
||||
[Packagist](https://packagist.org/), de modo que outros usuário possam achar
|
||||
e instalar suas extensões usando o Composer.
|
||||
|
||||
|
||||
### `composer.json` <a name="composer-json"></a>
|
||||
|
||||
Cada pacote do Composer deve ter um arquivo `composer.json` no diretório root. O
|
||||
arquivo contém os metadados a respeito do pacote. Você pode achar a especificação
|
||||
completa sobre este arquivo no [Manual do Composer](https://getcomposer.org/doc/01-basic-usage.md#composer-json-project-setup).
|
||||
O exemplo a seguir mostra o arquivo `composer.json` para a extensão `yiisoft/yii2-imagine`:
|
||||
|
||||
```json
|
||||
{
|
||||
// nome do pacote
|
||||
"name": "yiisoft/yii2-imagine",
|
||||
|
||||
// tipo de pacote
|
||||
"type": "yii2-extension",
|
||||
|
||||
"description": "The Imagine integration for the Yii framework",
|
||||
"keywords": ["yii2", "imagine", "image", "helper"],
|
||||
"license": "BSD-3-Clause",
|
||||
"support": {
|
||||
"issues": "https://github.com/yiisoft/yii2/issues?labels=ext%3Aimagine",
|
||||
"forum": "http://www.yiiframework.com/forum/",
|
||||
"wiki": "http://www.yiiframework.com/wiki/",
|
||||
"irc": "irc://irc.freenode.net/yii",
|
||||
"source": "https://github.com/yiisoft/yii2"
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "Antonio Ramirez",
|
||||
"email": "amigo.cobos@gmail.com"
|
||||
}
|
||||
],
|
||||
|
||||
// dependências do pacote
|
||||
"require": {
|
||||
"yiisoft/yii2": "*",
|
||||
"imagine/imagine": "v0.5.0"
|
||||
},
|
||||
|
||||
// especifica as classes autoloading
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"yii\\imagine\\": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### Nome do Pacote <a name="package-name"></a>
|
||||
|
||||
Cada pacote do Composer deve ter um nome que identifica unicamente o pacote
|
||||
entre todos os outros. Os nomes dos pacotes devem seguir o formato
|
||||
`vendorName/projectName`. Por exemplo, no nome do pacote `yiisoft/yii2-imagine`,
|
||||
o nome do vendor e o nome do projeto são `yiisoft` e `yii2-imagine`,
|
||||
respectivamente.
|
||||
|
||||
NÃO utilize `yiisoft` como nome do seu vendor já que ele é usado pelo Yii para
|
||||
os códigos nativos.
|
||||
|
||||
Recomendamos que você use o prefixo `yii2-` para o nome do projeto dos pacotes
|
||||
de extensões em Yii 2, por exemplo, `myname/yii2-mywidget`. Isto permitirá que
|
||||
os usuários encontrem mais facilmente uma extensão Yii 2.
|
||||
|
||||
|
||||
#### Tipo de Pacote <a name="package-type"></a>
|
||||
|
||||
É importante que você especifique o tipo de pacote de sua extensão como
|
||||
`yii2-extension`, de modo que o pacote possa ser reconhecido como uma extensão
|
||||
do Yii quando for instalado.
|
||||
|
||||
Quando um usuário executar `composer install` para instalar uma extensão, o
|
||||
arquivo `vendor/yiisoft/extensions.php` será atualizada automaticamente para
|
||||
incluir informações referentes a nova extensão. A partir deste arquivo, as
|
||||
aplicações Yii podem saber quais extensões estão instaladas (a informação pode
|
||||
ser acessada através da propriedade [[yii\base\Application::extensions]]).
|
||||
|
||||
|
||||
#### Dependências <a name="dependencies"></a>
|
||||
|
||||
Sua extensão depende do Yii (claro!). Sendo assim, você deve listar (`yiisoft/yii2`)
|
||||
na entrada `require` do `composer.json`. Se sua extensão também depender de outras
|
||||
extensões ou de bibliotecas de terceiros, você deve lista-los também. Certifique-se
|
||||
de listar as constantes de versões apropriadas (por exemplo, `1.*`, `@stable`)
|
||||
para cada pacote dependente. Utilize dependências estáveis quando sua extensão
|
||||
estiver em uma versão estável.
|
||||
|
||||
A maioria dos pacotes JavaScript/CSS são gerenciados pelo [Bower](http://bower.io/)
|
||||
e/ou pelo [NPM](https://www.npmjs.org/), ao invés do Composer. O Yii usa o
|
||||
[plugin de asset do Composer](https://github.com/francoispluchino/composer-asset-plugin)
|
||||
para habilitar a gerência destes tipos de pacotes através do Composer. Se sua
|
||||
extensão depender do pacote do Bower, você pode simplesmente listar a dependência
|
||||
no `composer.json` conforme o exemplo a seguir:
|
||||
|
||||
```json
|
||||
{
|
||||
// package dependencies
|
||||
"require": {
|
||||
"bower-asset/jquery": ">=1.11.*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
O código anterior indica que a extensão depende do pacote `jquery` do Bower. Em
|
||||
geral, no `composer.json`, você pode usar o `bower-asset/PackageName` para
|
||||
referenciar um pacote do Bower no `composer.json`, e usar o `npm-asset/PackageName`
|
||||
para referenciar um pacote do NPM, por padrão o conteúdo do pacote será instalado
|
||||
sob os diretórios `@vendor/bower/PackageName` e `@vendor/npm/Packages`,
|
||||
respectivamente.
|
||||
Estes dois diretórios podem ser referenciados para usar alias mais curtas como
|
||||
`@bower/PackageName` e `@npm/PackageName`.
|
||||
|
||||
Para mais detalhes sobre o gerenciamento de asset, por favor, consulte a seção
|
||||
[Assets](structure-assets.md#bower-npm-assets).
|
||||
|
||||
#### Classe Autoloading <a name="class-autoloading"></a>
|
||||
|
||||
Para que suas classes sejam carregadas automaticamente pela classe autoloader do
|
||||
Yii ou da classe autoloader do Composer, você deve especificar a entrada `autoload`
|
||||
no arquivo `composer.json`, conforme mostrado a seguir:
|
||||
|
||||
```json
|
||||
{
|
||||
// ....
|
||||
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"yii\\imagine\\": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Você pode listar um ou vários namespaces e seus caminhos de arquivos correspondentes.
|
||||
|
||||
Quando a extensão estiver instalada em uma aplicação, o Yii irá criar para cada
|
||||
namespace listada uma [alias](concept-aliases.md#extension-aliases) que se
|
||||
referenciará ao diretório correspondente ao namespace.
|
||||
Por exemplo, a declaração acima do `autoload` corresponderá a uma alias chamada
|
||||
`@yii/imagine`.
|
||||
|
||||
|
||||
### Práticas Recomendadas <a name="recommended-practices"></a>
|
||||
|
||||
Como as extensões são destinadas a serem usadas por outras pessoas, você precisará,
|
||||
por muitas vezes, fazer um esforço extra durante o desenvolvimento. A seguir,
|
||||
apresentaremos algumas práticas comuns e recomendadas na criação de extensões de
|
||||
alta qualidade.
|
||||
|
||||
|
||||
#### Namespaces <a name="namespaces"></a>
|
||||
|
||||
Para evitar conflitos de nomes e criar classes autocarregáveis em sua extensão,
|
||||
você deve usar namespaces e nomear as classes seguindo o
|
||||
[padrão PSR-4](http://www.php-fig.org/psr/psr-4/) ou o
|
||||
[padrão PSR-0](http://www.php-fig.org/psr/psr-0/).
|
||||
|
||||
Seus namespaces de classes devem iniciar com `vendorName\extensionName`, onde a
|
||||
`extensionName` é semelhante ao nome da extensão, exceto que ele não deve conter
|
||||
o prefixo `yii2-`. Por exemplo, para a extensão `yiisoft/yii2-imagine`, usamos o
|
||||
`yii\imagine` como namespace para suas classes.
|
||||
|
||||
Não use `yii`, `yii2` ou `yiisoft` como nome do seu vendor. Estes nomes são
|
||||
reservados para serem usados para o código nativo do Yii.
|
||||
|
||||
|
||||
#### Inicialização das Classes <a name="bootstrapping-classes"></a>
|
||||
|
||||
As vezes, você pode querer que sua extensão execute algum código durante o
|
||||
[processo de inicialização](runtime-bootstrapping.md) de uma aplicação. Por
|
||||
exemplo, a sua extensão pode querer responder ao evento `beginRequest` da
|
||||
aplicação para ajustar alguma configuração do ambiente. Embora você possa
|
||||
instruir os usuários que usam a extensão para associar explicitamente a sua
|
||||
função ao evento `beginRequest`, a melhor maneira é fazer isso é automaticamente.
|
||||
|
||||
Para atingir este objetivo, você pode criar uma *classe de inicialização*
|
||||
implementando o [[yii\base\BootstrapInterface]].
|
||||
Por exemplo,
|
||||
|
||||
```php
|
||||
namespace myname\mywidget;
|
||||
|
||||
use yii\base\BootstrapInterface;
|
||||
use yii\base\Application;
|
||||
|
||||
class MyBootstrapClass implements BootstrapInterface
|
||||
{
|
||||
public function bootstrap($app)
|
||||
{
|
||||
$app->on(Application::EVENT_BEFORE_REQUEST, function () {
|
||||
// fazer alguma coisa aqui
|
||||
});
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Em seguida, liste esta classe no arquivo `composer.json` de sua extensão conforme
|
||||
o seguinte,
|
||||
|
||||
```json
|
||||
{
|
||||
// ...
|
||||
|
||||
"extra": {
|
||||
"bootstrap": "myname\\mywidget\\MyBootstrapClass"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Quando a extensão for instalada em uma aplicação, o Yii instanciará
|
||||
automaticamente a classe de inicialização e chamará o método
|
||||
[[yii\base\BootstrapInterface::bootstrap()|bootstrap()]] durante o processo de
|
||||
inicialização para cada requisição.
|
||||
|
||||
|
||||
#### Trabalhando com Banco de Dados <a name="working-with-databases"></a>
|
||||
|
||||
Sua extensão pode precisar acessar banco de dados. Não pressupunha que as
|
||||
aplicações que usam sua extensão SEMPRE usam o `Yii::$db` como a conexão do
|
||||
banco de dados. Em vez disso, você deve declarar a propriedade `db` para as
|
||||
classes que necessitam acessar o banco de dados.
|
||||
A propriedade permitirá que os usuários de sua extensão personalizem quaisquer
|
||||
conexão de banco de dados que gostariam de usar.
|
||||
Como exemplo, você pode consultar a classe [[yii\caching\DbCache]] e ver como
|
||||
declara e usa a propriedade `db`.
|
||||
|
||||
Se sua extensão precisar criar uma tabela específica no banco de dados ou fazer
|
||||
alterações no esquema do banco de dados, você deve:
|
||||
|
||||
- fornecer [migrations](db-migrations.md) para manipular o esquema do banco de
|
||||
dados, ao invés de usar arquivos simples de SQL;
|
||||
- tentar criar migrations aplicáveis em diferentes SGDB;
|
||||
- evitar o uso de [Active Record](db-active-record.md) nas migrations.
|
||||
|
||||
|
||||
#### Usando Assets <a name="using-assets"></a>
|
||||
|
||||
Se sua extensão usar um widget ou um módulo, pode ter grandes chances de requerer
|
||||
algum [assets](structure-assets.md) para funcionar.
|
||||
Por exemplo, um módulo pode exibir algumas páginas que contém imagens, JavaScript
|
||||
e CSS. Como os arquivos de uma extensão estão todos sob o diretório que não é
|
||||
acessível pela Web quando instalado em uma aplicação, você tem duas escolhas
|
||||
para tornar estes arquivos de asset diretamente acessíveis pela Web:
|
||||
|
||||
- informe aos usuários da extensão copiar manualmente os arquivos de asset para
|
||||
uma pasta determinada acessível pela Web;
|
||||
- declare um [asset bundle](structure-assets.md) e conte com o mecanismo de
|
||||
publicação de asset para copiar automaticamente os arquivos listados no asset
|
||||
bundle para uma pasta acessível pela Web.
|
||||
|
||||
Recomendamos que você use a segunda abordagem de modo que sua extensão possa ser
|
||||
usada com mais facilidade pelos usuários. Por favor, consulte a seção
|
||||
[Assets](structure-assets.md) para mais detalhes sobre como trabalhar com assets
|
||||
em geral.
|
||||
|
||||
|
||||
#### Internacionalização e Localização <a name="i18n-l10n"></a>
|
||||
|
||||
Sua extensão pode ser usada por aplicações que suportam diferentes idiomas!
|
||||
Portanto, se sua extensão exibir conteúdo para os usuários finais, você deve
|
||||
tentar usar [internacionalização e localização](tutorial-i18n.md). Em particular,
|
||||
|
||||
- Se a extensão exibir mensagens aos usuários finais, as mensagens devem usadas
|
||||
por meio do método `Yii::t()` de modo que eles possam ser traduzidas. As
|
||||
mensagens voltadas para os desenvolvedores (como mensagens internas de exceções)
|
||||
não precisam ser traduzidas.
|
||||
- Se a extensão exibir números, datas, etc., devem ser formatadas usando a classe
|
||||
[[yii\i18n\Formatter]] com as regras de formatação apropriadas.
|
||||
|
||||
Para mais detalhes, por favor, consulte a seção [Internacionalização](tutorial-i18n.md).
|
||||
|
||||
|
||||
#### Testes <a name="testing"></a>
|
||||
|
||||
Você quer que sua extensão execute com perfeição sem trazer problemas para outras
|
||||
pessoas. Para alcançar este objetivo, você deve testar sua extensão antes de
|
||||
liberá-lo ao público.
|
||||
|
||||
É recomendado que você crie várias unidades de testes para realizar simulações
|
||||
no código de sua extensão ao invés de depender de testes manuais.
|
||||
Toda vez que liberar uma nova versão de sua extensão, você pode simplesmente
|
||||
rodar as unidades de teste para garantir que tudo esteja em boas condições. O
|
||||
Yii fornece suporte para testes, que podem ajuda-los a escrever mais facilmente
|
||||
testes unitários, testes de aceitação e testes funcionais. Para mais detalhes,
|
||||
por favor, consulte a seção [Testing](test-overview.md).
|
||||
|
||||
|
||||
#### Versionamento <a name="versioning"></a>
|
||||
|
||||
Você deve dar para cada liberação de sua extensão um numero de versão (por exemplo,
|
||||
`1.0.1`). Recomendamos que você siga a prática [versionamento semântico](http://semver.org)
|
||||
ao determinar qual número de versão será usado.
|
||||
|
||||
|
||||
#### Liberando Versões <a name="releasing"></a>
|
||||
|
||||
Para que outras pessoas saibam sobre sua extensão, você deve liberá-lo ao público.
|
||||
|
||||
Se é a primeira vez que você está liberando uma extensão, você deve registrá-lo
|
||||
no repositório do Composer, como o [Packagist](https://packagist.org/). Depois
|
||||
disso, tudo o que você precisa fazer é simplesmente criar uma tag de liberação
|
||||
(por exemplo, `v1.0.1`) no repositório CVS de sua extensão e notificar o
|
||||
repositório do Composer sobre a nova liberação. As pessoas, então, serão capazes
|
||||
de encontrar a nova versão e instalá-lo ou atualizá-lo através do repositório do
|
||||
Composer.
|
||||
|
||||
As versões de sua extensão, além dos arquivos de códigos, você deve também
|
||||
considerar a inclusão de roteiros para ajudar as outras pessoas aprenderem a usar
|
||||
a sua extensão:
|
||||
|
||||
* Um arquivo readme no diretório root do pacote: descreve o que sua extensão faz
|
||||
e como faz para instalá-lo e usá-lo. Recomendamos que você escreva no formato
|
||||
[Markdown](http://daringfireball.net/projects/markdown/) e o nome do arquivo
|
||||
como `readme.md`.
|
||||
* Um arquivo changelog no diretório root do pacote: lista quais mudanças foram
|
||||
feitas em cada versão. O arquivo pode ser escrito no formato Markdown e
|
||||
nomeado como `changelog.md`.
|
||||
* Uma arquivo de atualização no diretório root do pacote: fornece as instruções
|
||||
de como atualizar a extensão a partir de versões antigas. O arquivo deve ser
|
||||
escrito no formato Markdown e nomeado como `upgrade.md`.
|
||||
* Tutoriais, demos, screenshots, etc.: estes são necessários se sua extensão
|
||||
fornece muitos recursos que podem não ser totalmente cobertos no arquivo readme.
|
||||
* Documentação da API: seu código deve ser bem documentado para permitir que
|
||||
outros usuários possam ler e entender mais facilmente.
|
||||
Você pode consultar o [arquivo da classe Object](https://github.com/yiisoft/yii2/blob/master/framework/base/Object.php)
|
||||
para aprender como documentar o seu código.
|
||||
|
||||
> Informação: Os seus comentários no código podem ser escritos no formato Markdown.
|
||||
A extensão `yiisoft/yii2-apidoc` fornece uma ferramenta para gerar uma documentação
|
||||
da API com base nos seus comentários.
|
||||
|
||||
> Informação: Embora não seja um requisito, sugerimos que sua extensão se conforme
|
||||
a determinados estilos de codificação. Você pode consultar o
|
||||
[estilo de codificação do framework](https://github.com/yiisoft/yii2/wiki/Core-framework-code-style).
|
||||
|
||||
|
||||
## Extensões Nativas <a name="core-extensions"></a>
|
||||
|
||||
O Yii fornece as seguintes extensões que são desenvolvidas e mantidas pela equipe
|
||||
de desenvolvimento do Yii. Todos são registrados no [Packagist](https://packagist.org/)
|
||||
e podem ser facilmente instalados como descrito na subseção [Usando Extensões](#using-extensions).
|
||||
|
||||
- [yiisoft/yii2-apidoc](https://github.com/yiisoft/yii2-apidoc):
|
||||
fornece um gerador de API de documentação extensível e de alto desempenho.
|
||||
Também é usado para gerar a API de documentação do framework.
|
||||
- [yiisoft/yii2-authclient](https://github.com/yiisoft/yii2-authclient):
|
||||
fornece um conjunto comum de autenticadores de clientes, como Facebook OAuth2
|
||||
client, GitHub OAuth2 client.
|
||||
- [yiisoft/yii2-bootstrap](https://github.com/yiisoft/yii2-bootstrap):
|
||||
fornece um conjunto de widgets que encapsulam os componentes e plug-ins do
|
||||
[Bootstrap](http://getbootstrap.com/).
|
||||
- [yiisoft/yii2-codeception](https://github.com/yiisoft/yii2-codeception):
|
||||
fornece suporte a testes baseados no [Codeception](http://codeception.com/).
|
||||
- [yiisoft/yii2-debug](https://github.com/yiisoft/yii2-debug):
|
||||
fornece suporte a depuração para aplicações Yii. Quando esta extensão é usada,
|
||||
uma barra de ferramenta de depuração aparecerá na parte inferior de cada página.
|
||||
A extensão também fornece um conjunto de páginas independentes para exibir mais
|
||||
detalhes das informações de depuração.
|
||||
- [yiisoft/yii2-elasticsearch](https://github.com/yiisoft/yii2-elasticsearch):
|
||||
fornece suporte para o uso de [Elasticsearch](http://www.elasticsearch.org/).
|
||||
Este inclui suporte a consultas/pesquisas básicas e também implementa o padrão
|
||||
[Active Record](db-active-record.md) que permite que você armazene os active
|
||||
records no Elasticsearch.
|
||||
- [yiisoft/yii2-faker](https://github.com/yiisoft/yii2-faker):
|
||||
fornece suporte para o uso de [Faker](https://github.com/fzaninotto/Faker) para
|
||||
gerar dados falsos para você.
|
||||
- [yiisoft/yii2-gii](https://github.com/yiisoft/yii2-gii):
|
||||
fornece um gerador de código baseado na Web que é altamente extensível e pode
|
||||
ser usado para gerar rapidamente models (modelos), formulários, módulos, CRUD, etc.
|
||||
- [yiisoft/yii2-imagine](https://github.com/yiisoft/yii2-imagine):
|
||||
fornece funções de manipulação de imagens comumente utilizados com base no
|
||||
[Imagine](http://imagine.readthedocs.org/).
|
||||
- [yiisoft/yii2-jui](https://github.com/yiisoft/yii2-jui):
|
||||
fornece um conjunto de widgets que encapsulam as interações e widgets do
|
||||
[JQuery UI](http://jqueryui.com/).
|
||||
- [yiisoft/yii2-mongodb](https://github.com/yiisoft/yii2-mongodb):
|
||||
fornece suporte para o uso do [MongoDB](http://www.mongodb.org/). Este inclui
|
||||
recursos como consultas básicas, Active Record, migrations, cache, geração de
|
||||
códigos, etc.
|
||||
- [yiisoft/yii2-redis](https://github.com/yiisoft/yii2-redis):
|
||||
fornece suporte para o uso do [redis](http://redis.io/). Este inclui recursos
|
||||
como consultas básicas, Active Record, cache, etc.
|
||||
- [yiisoft/yii2-smarty](https://github.com/yiisoft/yii2-smarty):
|
||||
fornece um motor de template baseado no [Smarty](http://www.smarty.net/).
|
||||
- [yiisoft/yii2-sphinx](https://github.com/yiisoft/yii2-sphinx):
|
||||
fornece suporte para o uso do [Sphinx](http://sphinxsearch.com). Este inclui
|
||||
recursos como consultas básicas, Active Record, geração de códigos, etc.
|
||||
- [yiisoft/yii2-swiftmailer](https://github.com/yiisoft/yii2-swiftmailer):
|
||||
fornece recursos para envio de e-mails baseados no [swiftmailer](http://swiftmailer.org/).
|
||||
- [yiisoft/yii2-twig](https://github.com/yiisoft/yii2-twig):
|
||||
fornece um motor de template baseado no [Twig](http://twig.sensiolabs.org/).
|
||||
Reference in New Issue
Block a user