mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-10 23:50:38 +08:00
Merge branch 'master' of github.com:yiisoft/yii2 into docs-ja-0519
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
|
||||
|
||||
177
docs/guide-ru/helper-url.md
Normal file
177
docs/guide-ru/helper-url.md
Normal file
@@ -0,0 +1,177 @@
|
||||
Url хелпер
|
||||
==========
|
||||
|
||||
Url хелпер предоставляет набор статических методов для управления URL.
|
||||
|
||||
|
||||
## Получение общих URL <span id="getting-common-urls"></span>
|
||||
|
||||
Вы можете использовать два метода получения общих URL: домашний URL (Home) и базовый URL (Base) текущего запроса.
|
||||
Используйте следующий код, чтобы получить домашний URL:
|
||||
|
||||
```php
|
||||
$relativeHomeUrl = Url::home();
|
||||
$absoluteHomeUrl = Url::home(true);
|
||||
$httpsAbsoluteHomeUrl = Url::home('https');
|
||||
```
|
||||
|
||||
Если вы не передали параметров, то получите относительный URL. Вы можете передать `true`, чтобы получить абсолютный URL
|
||||
для текущего протокола или явно указать протокол (`https`, `http`).
|
||||
|
||||
Чтобы получить базовый URL текущего запроса:
|
||||
|
||||
```php
|
||||
$relativeBaseUrl = Url::base();
|
||||
$absoluteBaseUrl = Url::base(true);
|
||||
$httpsAbsoluteBaseUrl = Url::base('https');
|
||||
```
|
||||
|
||||
Единственный параметр данного метода работает также как и `Url::home()`.
|
||||
|
||||
## Создание URL <span id="creating-urls"></span>
|
||||
|
||||
Чтобы создать URL для соответствующего роута используйте метод `Url::toRoute()`. Метод использует [[\yii\web\UrlManager]].
|
||||
Для того чтобы создать URL:
|
||||
|
||||
```php
|
||||
$url = Url::toRoute(['product/view', 'id' => 42]);
|
||||
```
|
||||
|
||||
Вы можете задать роут строкой, например, `site/index`. А также вы можете использовать массив, если хотите задать
|
||||
дополнительные параметры запроса для URL. Формат массива должен быть следующим:
|
||||
|
||||
```php
|
||||
// сгенерирует: /index.php?r=site/index¶m1=value1¶m2=value2
|
||||
['site/index', 'param1' => 'value1', 'param2' => 'value2']
|
||||
```
|
||||
|
||||
Если вы хотите создать URL с якорем, то вы можете использовать параметр массива с ключом `#`. Например:
|
||||
|
||||
```php
|
||||
// сгенерирует: /index.php?r=site/index¶m1=value1#name
|
||||
['site/index', 'param1' => 'value1', '#' => 'name']
|
||||
```
|
||||
|
||||
Роут может быть и абсолютным, и относительным. Абсолютный URL начинается со слеша (например, `/site/index`),
|
||||
относительный - без (например, `site/index` or `index`). Относительный URL будет сконвертирован в абсолютный по следующим
|
||||
правилам:
|
||||
|
||||
- Если роут пустая строка, то будет использовано текущее значение [[\yii\web\Controller::route|route]];
|
||||
- Если роут не содержит слешей (например, `index`), то он будет считаться экшеном текущего контролера и будет определен
|
||||
с помощью [[\yii\web\Controller::uniqueId]];
|
||||
- Если роут начинается не со слеша (например, `site/index`), то он будет считаться относительным роутом текущего модуля
|
||||
и будет определен с помощью [[\yii\base\Module::uniqueId|uniqueId]].
|
||||
|
||||
Начиная с версии 2.0.2, вы можете задавать роуты с помощью [псевдонимов](concept-aliases.md). В этом случае, сначала
|
||||
псевдоним будет сконвертирован в соответсвующий роут, который будет преобразован в абсолютный в соответсвии с вышеописанными
|
||||
правилами.
|
||||
|
||||
Примеры использования метода:
|
||||
|
||||
```php
|
||||
// /index.php?r=site/index
|
||||
echo Url::toRoute('site/index');
|
||||
|
||||
// /index.php?r=site/index&src=ref1#name
|
||||
echo Url::toRoute(['site/index', 'src' => 'ref1', '#' => 'name']);
|
||||
|
||||
// /index.php?r=post/edit&id=100 псевдоним "@postEdit" задан как "post/edit"
|
||||
echo Url::toRoute(['@postEdit', 'id' => 100]);
|
||||
|
||||
// http://www.example.com/index.php?r=site/index
|
||||
echo Url::toRoute('site/index', true);
|
||||
|
||||
// https://www.example.com/index.php?r=site/index
|
||||
echo Url::toRoute('site/index', 'https');
|
||||
```
|
||||
|
||||
Другой метод `Url::to()` очень похож на [[toRoute()]]. Единственное отличие: входным параметром должен быть массив.
|
||||
Если будет передана строка, то она будет воспринята как URL.
|
||||
|
||||
Первый аргумент может быть:
|
||||
|
||||
- массивом: будет вызван [[toRoute()]], чтобы сгенерировать URL. Например: `['site/index']`, `['post/index', 'page' => 2]`.
|
||||
В разделе [[toRoute()]] подробно описано как задавать роут;
|
||||
- Строка, начинающася с `@`, будет обработана как псевдоним. Будет возвращено соответствующее значение псевдонима;
|
||||
- Пустая строка: вернет текущий URL;
|
||||
- Обычная строка: вернет строку без имзенений
|
||||
|
||||
Когда у метода задан второй параметр `$scheme` (строка или true), то сгенерированный URL будет с протоколом
|
||||
(полученным из [[\yii\web\UrlManager::hostInfo]]). Если в `$url` указан протокол, то его значение будет заменено.
|
||||
|
||||
Пример использования:
|
||||
|
||||
```php
|
||||
// /index.php?r=site/index
|
||||
echo Url::to(['site/index']);
|
||||
|
||||
// /index.php?r=site/index&src=ref1#name
|
||||
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name']);
|
||||
|
||||
// /index.php?r=post/edit&id=100 псевдоним "@postEdit" задан как "post/edit"
|
||||
echo Url::to(['@postEdit', 'id' => 100]);
|
||||
|
||||
// Текущий URL
|
||||
echo Url::to();
|
||||
|
||||
// /images/logo.gif
|
||||
echo Url::to('@web/images/logo.gif');
|
||||
|
||||
// images/logo.gif
|
||||
echo Url::to('images/logo.gif');
|
||||
|
||||
// http://www.example.com/images/logo.gif
|
||||
echo Url::to('@web/images/logo.gif', true);
|
||||
|
||||
// https://www.example.com/images/logo.gif
|
||||
echo Url::to('@web/images/logo.gif', 'https');
|
||||
```
|
||||
|
||||
Начиная с версии 2.0.3, вы можете использовать [[yii\helpers\Url::current()]], чтобы создавать URL на основе текущего
|
||||
запрошенного роута и его GET-параметров. Вы можете изменить, удалить или добавить новые GET-параметры передав в метод
|
||||
параметр `$params`. Например:
|
||||
|
||||
```php
|
||||
// предположим $_GET = ['id' => 123, 'src' => 'google'], а текущий роут "post/view"
|
||||
|
||||
// /index.php?r=post/view&id=123&src=google
|
||||
echo Url::current();
|
||||
|
||||
// /index.php?r=post/view&id=123
|
||||
echo Url::current(['src' => null]);
|
||||
// /index.php?r=post/view&id=100&src=google
|
||||
echo Url::current(['id' => 100]);
|
||||
```
|
||||
|
||||
|
||||
## Запоминание URL <span id="remember-urls"></span>
|
||||
|
||||
Существуют задачи, когда вам необходимо запомнить URL и потом использовать его в процессе одного или нескольких
|
||||
последовательных запросов. Это может быть достигнуто следующим образом:
|
||||
|
||||
```php
|
||||
// Запомнить текущий URL
|
||||
Url::remember();
|
||||
|
||||
// Запомнить определенный URL. Входные параметры смотрите на примере Url::to().
|
||||
Url::remember(['product/view', 'id' => 42]);
|
||||
|
||||
// Запомнить URL под определенным именем
|
||||
Url::remember(['product/view', 'id' => 42], 'product');
|
||||
```
|
||||
|
||||
В следующем запросе мы можем получить сохраненный URL следующим образом:
|
||||
|
||||
```php
|
||||
$url = Url::previous();
|
||||
$productUrl = Url::previous('product');
|
||||
```
|
||||
|
||||
## Проверить относительность URL <span id="checking-relative-urls"></span>
|
||||
|
||||
Чтобы проверить относительный URL или нет (например, если в нем не содержится информации о хосте), вы можете использовать
|
||||
следующий код:
|
||||
|
||||
```php
|
||||
$isRelative = Url::isRelative('test/it');
|
||||
```
|
||||
@@ -1,7 +1,7 @@
|
||||
Модули
|
||||
=======
|
||||
|
||||
Модули - это законченные программные блоки, состоящие из [моделей](structure-models.md), [представлений](structure-views.md), [контроллеров](structure-controllers.md) и других вспомогательных компонентов. При установке модулей в [приложение](structure-applications.md), конечный пользователь получает доступ к их контроллерам. По этой причины модули часто рассматриваются как миниатюрные приложения. В отличии от [приложений](structure-applications.md), модули нельзя развертывать отдельно. Модули должны находиться внутри приложений.
|
||||
Модули - это законченные программные блоки, состоящие из [моделей](structure-models.md), [представлений](structure-views.md), [контроллеров](structure-controllers.md) и других вспомогательных компонентов. При установке модулей в [приложение](structure-applications.md), конечный пользователь получает доступ к их контроллерам. По этой причине модули часто рассматриваются как миниатюрные приложения. В отличии от [приложений](structure-applications.md), модули нельзя развертывать отдельно. Модули должны находиться внутри приложений.
|
||||
|
||||
|
||||
## Создание модулей <span id="creating-modules"></span>
|
||||
|
||||
@@ -9,18 +9,17 @@ on your application out of the box and can be fine-tuned further for production
|
||||
environment. As for the application, we'll provide some of the best practices
|
||||
along with examples on how to apply them to Yii.
|
||||
|
||||
Preparing environment
|
||||
---------------------
|
||||
|
||||
A well configured environment to run PHP application really matters. In order to get maximum performance:
|
||||
## Preparing Environment <span id="preparing-environment"></span>
|
||||
|
||||
- Always use the latest stable PHP version. Each major release brings significant performance improvements and reduced
|
||||
memory usage.
|
||||
- Use [APC](http://ru2.php.net/apc) for PHP 5.4 and less or [Opcache](http://php.net/opcache) for PHP 5.5 and more. It
|
||||
gives a very good performance boost.
|
||||
A well configured environment to run PHP application really matters. In order to get maximum performance,
|
||||
|
||||
Preparing framework for production
|
||||
----------------------------------
|
||||
- Use the latest stable PHP version. Major releases of PHP may bring significant performance improvement.
|
||||
- Enable bytecode caching with [Opcache](http://php.net/opcache) (PHP 5.5 or later) or [APC](http://ru2.php.net/apc)
|
||||
(PHP 5.4 or earlier).
|
||||
|
||||
|
||||
## Adjusting Framework Configurations <span id="adjusting-framework"></span>
|
||||
|
||||
### Disabling Debug Mode
|
||||
|
||||
|
||||
Reference in New Issue
Block a user