Skip to content

Commit

Permalink
Updates for Russian translation
Browse files Browse the repository at this point in the history
  • Loading branch information
samdark committed Mar 15, 2015
1 parent 08b54e5 commit 8c8c1f9
Show file tree
Hide file tree
Showing 9 changed files with 151 additions and 31 deletions.
8 changes: 7 additions & 1 deletion docs/guide-ru/caching-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,13 @@ $result = $db->cache(function ($db) {
});
```

Кэширование запросов может быть использованно как для [DAO](db-dao.md), так и для [ActiveRecord](db-active-record.md).
Кэширование запросов может быть использованно как для [DAO](db-dao.md), так и для [ActiveRecord](db-active-record.md):

```php
$result = Customer::getDb()->cache(function ($db) {
return Customer::find()->where(['id' => 1])->one();
});
```

> Информация: Некоторые СУБД (например, [MySQL](http://dev.mysql.com/doc/refman/5.1/en/query-cache.html)) поддерживают
кэширование запросов на стороне сервера БД. Вы можете использовать любой механизм кэширования запросов. Кэширование
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-ru/concept-aliases.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ $cache = new FileCache([
- `@app`: [[yii\base\Application::basePath|базовый путь]] текущего приложения.
- `@runtime`: [[yii\base\Application::runtimePath|директория runtime]] текущего приложения.
- `@vendor`: [[yii\base\Application::vendorPath|директория vendor Composer].
- `@webroot`: вебрут текущего веб приложения (там где `index.php`).
- `@webroot`: вебрут текущего веб приложения (там где находится [входной скрипт](structure-entry-scripts.md) `index.php`).
- `@web`: базовый URL текущего приложения.

Псевдоним `@yii` задаётся в момент подключения файла `Yii.php` во [входном скрипте](structure-entry-scripts.md).
Expand Down
5 changes: 3 additions & 2 deletions docs/guide-ru/concept-autoloading.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@

При использовании автозагрузчика классов Yii следует соблюдать два простых правила создания и именования классов:

* Каждый класс должен принадлежать пространству имён (то есть `foo\bar\MyClass`).
* Каждый класс должен принадлежать [пространству имён](http://php.net/manual/ru/language.namespaces.php)
(то есть `foo\bar\MyClass`).
* Каждый класс должен находиться в отдельном файле, путь к которому определятся следующим правилом:

```php
// $className — это абсолютное имя класса, начинающееся с "\"
// $className — это абсолютное имя класса без начального "\"
$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');
```

Expand Down
2 changes: 2 additions & 0 deletions docs/guide-ru/concept-components.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ echo DatePicker::widget([
Пример:

```php
<?php

namespace yii\components\MyClass;

use yii\base\Object;
Expand Down
33 changes: 32 additions & 1 deletion docs/guide-ru/concept-di-container.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,20 +71,51 @@ $container->get('Foo', [], [
]);
```

> Информация: Метод [[yii\di\Container::get()]] третьим аргументом принимает массив конфигурации, которым инициализируется
создаваемый объект. Если класс реализует интерфейс [[yii\base\Configurable]] (например, [[yii\base\Object]]),
то массив конфигурации передается в последний параметр конструктора класса. Иначе конфигурация применяется уже *после*
создания объекта.

### Внедрение зависимости через PHP callback <span id="php-callable-injection"></span>

В данном случае, контейнер будет использовать зарегистрированный PHP callback для создания новых экземпляров класса.
Каждый раз при вызове [[yii\di\Container::get()]] вызывается соответствующий callback.
Callback отвечает за разрешения зависимостей и внедряет их в соответствии с вновь создаваемыми объектами. Например,

```php
$container->set('Foo', function () {
return new Foo(new Bar);
$foo = new Foo(new Bar);
// ... дополнительная инициализация
return $foo;
});

$foo = $container->get('Foo');
```

Для того, чтобы скрыть сложную логику инициализации нового объекта, можно использовать статический метод, возвращающий
callable:

```php
class FooBuilder
{
public static function build()
{
return function () {
$foo = new Foo(new Bar);
// ... дополнительная инициализация
return $foo;
};
}
}

$container->set('Foo', FooBuilder::build());

$foo = $container->get('Foo');
```

Как вы можете видеть, метод `FooBuilder::build()` возвращает анонимную функцию. Тот, кто будет настраивать класс `Foo`,
теперь не обязан знать, как этот класс устроен.


Регистрация зависимостей <span id="registering-dependencies"></span>
------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/guide-ru/concept-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

- глобальную функцию PHP, указав строку с именем функции (без скобок), например, `'trim'`;
- метод объекта, указав массив, содержащий строки с именами объекта и метода (без скобок), например, `[$object, 'methodName']`;
- статический метод класса, указав массив, содержащий строки с именами класса и метода (без скобок), например, `[$class, 'methodName']`;
- статический метод класса, указав массив, содержащий строки с именами класса и метода (без скобок), например, `['ClassName', 'methodName']`;
- анонимную функцию, например, `function ($event) { ... }`.

Сигнатура обработчика события выглядит следующим образом:
Expand Down
38 changes: 35 additions & 3 deletions docs/guide-ru/concept-service-locator.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ $cache = $locator->cache;

Поскольку Service Locator часто используется с [конфигурациями](concept-configurations.md), в нём имеется доступное
для записи свойство [[yii\di\ServiceLocator::setComponents()|components]]. Это позволяет настроить и зарегистрировать
сразу несколько компонентов. Следующий код демонстрирует конфигурационный массив, который может использоваться одновременно
для настройки приложения и регистрации компонентов "db", "cache" и "search":
сразу несколько компонентов. Следующий код демонстрирует конфигурационный массив, который может использоваться
для регистрации компонентов "db", "cache" и "search" в (то есть в [приложении](structure-applications.md)):

```php
return [
Expand All @@ -76,8 +76,40 @@ return [
],
'cache' => 'yii\caching\ApcCache',
'search' => function () {
return new app\components\SolrService;
$solr = new app\components\SolrService('127.0.0.1');
// ... дополнительная инициализация ...
return $solr;
},
],
];
```

Есть алтернативный приведённому выше способ настройки компонента "search". Вмето анонимной функции, котрая
отдаёт экземпляр `SolrService` можно использовать статический метод, возвращающий такую анонимную функцию:

```php
class SolrServiceBuilder
{
public static function build($ip)
{
return function () use ($ip) {
$solr = new app\components\SolrService($ip);
// ... дополнительная инициализация ...
return $solr;
};
}
}

return [
// ...
'components' => [
// ...
'search' => SolrServiceBuilder::build('127.0.0.1'),
],
];
```

Это особенно полезно если вы создаёте компонент для Yii, являющийся обёрткой над какой-либо сторонней библиотекой.
Подобный приведённому выше статический метод позволяет скрыть от конечного пользователя сложную логику настройки
сторонней библиотеки. Пользователю будет достаточно вызвать статический метод.

42 changes: 21 additions & 21 deletions docs/guide-ru/helper-array.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ ArrayHelper
В добавок к [богатому набору функций](http://php.net/manual/en/book.array.php) для работы с массивами, которые есть в самом PHP, Yii Array helper предоставляет свои статические функции, которые могут быть вам полезны.


### Получение одной переменной
## Получение значений <span id="getting-values"></span>

Извлечение значений из массива, объекта или структуры состоящей из них обоих с помощью стандартных средств PHP является довольно скучным занятием. Сперва вам нужно проверить есть ли соответствующий ключ, с помощью `isset` , и, если есть получить, если нет – подставить значение по-умолчанию

Expand Down Expand Up @@ -57,9 +57,10 @@ $type = ArrayHelper::remove($array, 'type');
После выполнения этого кода переменная `$array` будет содержать `['options' => [1, 2]]` , а в переменной `$type` будет значение `А` . В отличие от метода `getValue`, метод `remove` поддерживает только простое имя ключа.


### Проверка наличия ключа
## Проверка наличия ключей <span id="checking-existence-of-keys"></span>

`ArrayHelper::keyExists` работает так же как и стандартный [array_key_exists](http://php.net/manual/en/function.array-key-exists.php). Разница лишь в том, что вы можете установить третий аргумент в `false`. Тогда проверка ключа будет проводиться без учета регистра
`ArrayHelper::keyExists` работает так же как и стандартный [array_key_exists](http://php.net/manual/en/function.array-key-exists.php),
но также может проверять ключи без учёта регистра:

```php
$data1 = [
Expand All @@ -75,9 +76,9 @@ if (!ArrayHelper::keyExists('username', $data1, false) || !ArrayHelper::keyExist
}
```

### Извлечение колонки
## Извлечение колонок <span id="retrieving-columns"></span>

Часто нужно извлечь колонку значений из многомерного массива или объекта..
Часто нужно извлечь колонку значений из многомерного массива или объекта. Например, список ID.

```php
$data = [
Expand All @@ -97,10 +98,12 @@ $result = ArrayHelper::getColumn($array, function ($element) {
});
```

Индексирование массива по определенному ключу
----------------------------
## Переиндексация массивов <span id="reindexing-arrays"></span>

Чтобы проиндексировать массив в соответствии с определенным ключом, используется метод `index` . Входящий массив должен быть многомерным или массивом объектов. Ключом может быть имя ключа вложенного массива, имя свойства объекта или анонимная функция, которая будет возвращать значение ключа по переданному массиву.

Чтобы проиндексировать массив в соответствии с определенным ключом, используется метод `index` . Входящий массив должен
быть многомерным или массивом объектов. Ключом может быть имя ключа вложенного массива, имя свойства объекта или
анонимная функция, которая будет возвращать значение ключа по переданному массиву.

Если значение ключа равно `null`, то соответствующий элемент массива будет опущен и не попадет в результат.

Expand All @@ -124,10 +127,9 @@ $result = ArrayHelper::index($array, function ($element) {



Map array
---------
## Получение пар ключ-значение <span id="building-maps"></span>

Для получения map (пар ключ-значение) из многомерного массива или из массива объектов вы можете использовать метод `map`.
Для получения пар ключ-значение из многомерного массива или из массива объектов вы можете использовать метод `map`.

Параметры `$from` и `$to` определяют имена ключей или свойств, которые будут использованы в map. Так же, третьим необязательным параметром вы можете задать правила группировки.

Expand Down Expand Up @@ -160,8 +162,7 @@ $result = ArrayHelper::map($array, 'id', 'name', 'class');
```


Сортировка массива
----------
## Многомерная сортировка <span id="multidimensional-sorting"></span>

Метод `multisort` помогает сортировать массивы объектов или вложенные массивы по одному или нескольким ключам. Например:

Expand Down Expand Up @@ -196,8 +197,8 @@ ArrayHelper::multisort($data, function($item) {
Последний аргумент – это флаг, который используется в стандартной функции PHP `sort()`. Посмотреть его возможные значения можно [тут](http://php.net/manual/en/function.sort.php).


Определение типа массива
-----------------------------
## Определение типа массива <span id="detecting-array-types"></span>

Удобный способ для определения, является массив индексным или ассоциативным. Вот пример:

```php
Expand All @@ -211,8 +212,8 @@ echo ArrayHelper::isAssociative($associative);
```


HTML-encoding и HTML-decoding значений
--------------------------------------
## HTML-кодирование и HTML-декодирование значений <span id="html-encoding-values"></span>


Для того, чтобы закодировать или раскодировать специальные символы в массиве строк в HTML-сущности, вы можете пользоваться методами ниже:

Expand All @@ -223,8 +224,8 @@ $decoded = ArrayHelper::htmlDecode($data);

По умолчанию кодируются только значения. Если установит второй параметр в `false`, вы можете так же кодировать и ключи массива. Кодирование использует кодировку приложения, которая может быть изменена с помощью третьего аргумента.

Слияние массивов
--------------
## Слияние массивов <span id="merging-arrays"></span>

Слияние двух или больше массивов в один рекурсивно.
Если каждый массив имеет одинаковый ключ, последний будет перезаписывать предыдущий ( в отличие от функции array_merge_recursive).
Рекурсивное слияние проводится когда все массивы имеют элемент одного и того же типа с одним и тем же ключом. Для элементов, ключом которого является значение типа integer, элементы из последнего будут добавлены к предыдущим массивам. Вы можете добавлять дополнительные массивы для слияние третьи, четвертым, пятым (и так далее) параметром.
Expand All @@ -233,8 +234,7 @@ $decoded = ArrayHelper::htmlDecode($data);
ArrayHelper::merge($a, $b);
```

Получение массива из объекта
-------------------------
## Получение массива из объекта <span id="converting-objects-to-arrays"></span>

Часто нужно конвертировать объект в массив. Наиболее распространенный случай – конвертация модели Active Record в массив.

Expand Down
Loading

0 comments on commit 8c8c1f9

Please sign in to comment.