diff options
Diffstat (limited to 'ru-ru')
-rw-r--r-- | ru-ru/php-composer-ru.html.markdown | 119 | ||||
-rw-r--r-- | ru-ru/yaml-ru.html.markdown | 189 |
2 files changed, 249 insertions, 59 deletions
diff --git a/ru-ru/php-composer-ru.html.markdown b/ru-ru/php-composer-ru.html.markdown index ef6e4912..4bdf1029 100644 --- a/ru-ru/php-composer-ru.html.markdown +++ b/ru-ru/php-composer-ru.html.markdown @@ -2,24 +2,26 @@ category: tool tool: composer contributors: - - ["Alesey Lysenko", "https://github.com/nasgul"] + - ["Brett Taylor", "https://github.com/glutnix"] +translators: + - ["Aleksey Lysenko", "https://github.com/nasgul"] filename: LearnComposer-ru.sh lang: ru-ru --- -[Composer](https://getcomposer.org/) это инструмент управления зависимостями в PHP. +[Composer](https://getcomposer.org/) — это инструмент управления зависимостями в PHP. Он позволяет вам декларировать библиотеки, от которых зависит ваш проект, -и он будет управлять (устанавливать / обновлять) их для вас. +и он будет управлять ими, то есть устанавливать/обновлять их для вас. # Установка ```sh # Устанавливаем composer.phar в текущую папку curl -sS https://getcomposer.org/installer | php -# Если вы используете этот подход, вам нужно будет вызвать композер следующим образом: +# Если вы используете этот подход, вам нужно будет вызвать Composer следующим образом: php composer.phar about -# Устанавливаем с бинарников ~/bin/composer +# Устанавливаем бинарный файл в ~/bin/composer # Примечание: убедитесь, что ~/bin находится в переменной PATH вашего окружения curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer ``` @@ -30,58 +32,59 @@ curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filena ## Подтверждение установки ```sh -# # Проверить версию и параметры списка +# # Проверить версию и перечислить параметры composer # Получить дополнительную помощь для параметров composer help require -# Проверьте, способен ли Composer делать то, что ему нужно, и если он обновлен -композитор диагностирует +# Проверить, способен ли Composer делать то, что ему нужно, и обновлён ли он composer diagnose -composer diag # shorthand +composer diag # краткий вариант -# Обновление Composer к последней версии +# Обновление Composer до последней версии composer self-update -composer self # shorthand +composer self # краткий вариант ``` # Использование -Композитор сохраняет ваши зависимости проекта в `composer.json`. -Вы можете отредактировать этот файл, но лучше всего позволить Composer управлять им для вас. +Composer сохраняет ваши зависимости проекта в `composer.json`. +Вы можете отредактировать этот файл, но лучше всего позволить Composer управлять им за вас. ```sh # Создать новый проект в текущей папке composer init # запускается интерактивная анкета с просьбой предоставить подробную информацию о вашем проекте. -# Оставляя их пустым, все прекрасно, если вы не делаете другие проекты зависимыми от этого. +# Вы прекрасно можете оставить ответы пустыми, если не делаете другие проекты +# зависимыми от создаваемого проекта. # Если файл composer.json уже существует, загрузите зависимости composer install -# Чтобы загрузить только производственные зависимости, т. Е. Исключая зависимости разработки +# Чтобы загрузить только зависимости для готового продукта, т.е. +# исключая зависимости для разработки composer install --no-dev -# Добавить зависимость от этого проекта +# Добавить зависимость для готового продукта к этому проекту composer require guzzlehttp/guzzle -# выяснит, какая последняя версия guzzlehttp / guzzle есть, -# загрузите ее и добавьте новую зависимость в поле require.console. +# выяснит, какая существует последняя версия guzzlehttp / guzzle, +# загрузит её и добавит новую зависимость в поле require файла composer.json. composer require guzzlehttp/guzzle:6.0.* -# будет загружать последнюю версию, соответствующую шаблону (например, 6.0.2), -# и добавить зависимость к полю require.json +# Загрузит последнюю версию, соответствующую шаблону (например, 6.0.2), +# и добавит зависимость к полю require файла composer.json composer require --dev phpunit/phpunit:~4.5.0 -# потребуется как зависимость от разработки. +# Добавит как зависимость для разработки. # Будет использовать последнюю версию> = 4.5.0 и <4.6.0 composer require-dev phpunit/phpunit:^4.5.0 -# потребуется как зависимость от разработки. Будет использовать последнюю версию> = 4.5.0 и <5.0 +# Добавит как зависимость для разработки. +# Будет использовать последнюю версию> = 4.5.0 и <5.0 # Для получения дополнительной информации о совместимости версий Composer см. -# [Документация композитора по версиям] (https://getcomposer.org/doc/articles/versions.md) -# для получения более подробной информации +# [Документацию Composer по версиям] (https://getcomposer.org/doc/articles/versions.md) # Чтобы узнать, какие пакеты доступны для установки и в настоящее время установлены composer show @@ -89,36 +92,37 @@ composer show # Чтобы узнать, какие пакеты в настоящее время установлены composer show --installed -# Чтобы найти пакет с «mailgun» в его названии или описании +# Чтобы найти пакет со строкой «mailgun» в названии или описании composer search mailgun ``` [Packagist.org](https://packagist.org/) является основным хранилищем для пакетов Composer. -Поиск там для существующих сторонних пакетов. +Существующие сторонние пакеты ищите там. -## `composer.json` vs `composer.lock` +## composer.json` и `composer.lock` -Файл `composer.json` хранит ваши параметры плавающей версии вашего проекта для каждой зависимости, -а также другую информацию. +Файл `composer.json` хранит параметры допустимых версий каждой зависимости +вашего проекта, а также другую информацию. -Файл `composer.lock` хранит точно, какую версию он загрузил для каждой зависимости. +Файл `composer.lock` хранит точную загруженную версию каждой зависимости. Никогда не редактируйте этот файл. -Если вы включите файл `composer.lock` в свой репозиторий git, -каждый разработчик установит текущую версию зависимостей. -Даже когда выпущена новая версия зависимости, Composer продолжит загрузку версии, -записанной в файле блокировки. +Если вы включите файл `composer.lock` в свой Git-репозиторий, +каждый разработчик установит версии зависимостей, которые вы используете. +Даже когда будет выпущена новая версия зависимости, Composer продолжит загрузку версии, +записанной в lock-файле. ```sh -# Если вы хотите обновить все зависимости до их новейшей версии, -# которые по-прежнему соответствуют вашим предпочтениям в версии обновление композитора +# Если вы хотите обновить все зависимости до новейших версий, +# которые по-прежнему соответствуют вашим предпочтениям для версий composer update -# Если вам нужна новая версия определенной зависимости: +# Если вам нужна новая версия определённой зависимости: composer update phpunit/phpunit -# Если вы хотите перенести пакет на более новую версию, +# Если вы хотите перенести пакет на более новую версию +#с изменением предпочитаемой версии, # вам может потребоваться сначала удалить старый пакет и его зависимости. composer remove --dev phpunit/phpunit composer require --dev phpunit/phpunit:^5.0 @@ -126,8 +130,8 @@ composer require --dev phpunit/phpunit:^5.0 ## Автозагрузчик -Composer создает класс автозагрузки, который вы можете потребовать от своего приложения. -Вы можете создавать экземпляры классов через их пространство имен. +Composer создаёт класс автозагрузки, который вы можете вызвать +из своего приложения. Вы можете создавать экземпляры классов через пространство имён. ```php require __DIR__ . '/vendor/autoload.php'; @@ -135,15 +139,12 @@ require __DIR__ . '/vendor/autoload.php'; $mailgun = new Mailgun\Mailgun("key"); ``` -### PSR-4 Autoloader +### PSR-4-совместимый автозагрузчик -### Автозагрузчик PSR-4 -Вы можете добавить свои собственные пространства имен в автозагрузчик. +Вы можете добавить в автозагрузчик свои собственные пространства имён. -Вы можете добавить свои собственные пространства имен в автозагрузчик. - -В `composer.json` добавьте поле 'autoload': +Добавьте поле `autoload` в `composer.json`: ```json { @@ -152,31 +153,31 @@ $mailgun = new Mailgun\Mailgun("key"); } } ``` -Это скажет автозагрузчику искать что-либо в пространстве имен `\ Acme \` в папке `src`. +Это скажет автозагрузчику искать что-либо в пространстве имён `\Acme` в папке `src`. Вы также можете использовать -[PSR-0, Classmap или просто список файлов для включения](https://getcomposer.org/doc/04-schema.md#autoload). -Также существует поле `autoload-dev` для пространств имен, предназначенных только для разработки. +[PSR-0, карту классов или просто список файлов для включения](https://getcomposer.org/doc/04-schema.md#autoload). +Также существует поле `autoload-dev` для пространств имён, предназначенных только для разработки. При добавлении или изменении ключа автозагрузки вам необходимо перестроить автозагрузчик: ```sh composer dump-autoload -composer dump # shorthand +composer dump # краткий вариант -# Оптимизирует пакеты PSR0 и PSR4 для загрузки классов. -# Медленно запускается, но улучшает производительность при производстве. +# Оптимизирует пакеты PSR0 и PSR4 для загрузки классов с помощью карты классов. +# Медленно запускается, но улучшает производительность готового продукта. composer dump-autoload --optimize --no-dev ``` -# Composer Кэш +# Кэш Composer ```sh -# Composer сохранит загруженные пакеты для использования в будущем. Очистите его с помощью: +# Composer хранит загруженные пакеты для использования в будущем. Очистите кэш с помощью: composer clear-cache ``` -# Поиск проблемы +# Устранение неполадок ```sh composer diagnose @@ -184,13 +185,13 @@ composer self-update composer clear-cache ``` -## Темы, которые пока (пока) не включены в этот учебник +## Темы, которые ещё (пока) не включены в этот учебник -* Создание и распространение ваших собственных пакетов на Packagist.org или в другом месте +* Создание и распространение ваших собственных пакетов на Packagist.org или в другом репозитории * Предварительные и пост-скриптовые перехватчики: запуск задач, -когда происходят определенные события композитора +когда происходят определенные события Composer -### Рекомендации +### Ссылки * [Composer - Dependency Manager for PHP](https://getcomposer.org/) * [Packagist.org](https://packagist.org/) diff --git a/ru-ru/yaml-ru.html.markdown b/ru-ru/yaml-ru.html.markdown new file mode 100644 index 00000000..6eb580d9 --- /dev/null +++ b/ru-ru/yaml-ru.html.markdown @@ -0,0 +1,189 @@ +--- +language: yaml +filename: learnyaml-ru.yaml +contributors: +- [Adam Brenecki, 'https://github.com/adambrenecki'] +- [Suhas SG, 'https://github.com/jargnar'] +translators: +- [Sergei Babin, 'https://github.com/serzn1'] +lang: ru-ru +--- + +YAML как язык сериализации данных предназначен прежде всего для использования людьми. + +Это строгое надмножество JSON с добавлением синтаксически значимых переносов строк и +отступов как в Python. Тем не менее, в отличие от Python, YAML запрещает +использование табов для отступов. + +```yaml +--- # начало документа + +# Комментарий в YAML выглядит как-то так. + +###################### +# Скалярные величины # +###################### + +# Наш корневой объект (который продолжается для всего документа) будет соответствовать +# типу map, который в свою очередь соответствует словарю, хешу или объекту в других языках. +key: value +another_key: Другое значение ключа. +a_number_value: 100 +scientific_notation: 1e+12 +# Число 1 будет интерпретировано как число, а не как логический тип. Если необходимо чтобы +# значение было интерпретировано как логическое, необходимо использовать true +boolean: true +null_value: null +key with spaces: value + +# Обратите внимание что строки используются без кавычек, но могут и с кавычками. +however: 'Строка заключенная в кавычки.' +'Ключ заключенный в кавычки.': "Полезно если нужно использовать ':' в вашем ключе." +single quotes: 'Содержит ''одну'' экранированную строку' +double quotes: "Содержит несколько: \", \0, \t, \u263A, \x0d\x0a == \r\n, экранированных строк." + +# Многострочные строковые значения могут быть записаны как 'строковый блок' (используя |), +# или как 'сложенный блок' (используя '>'). +literal_block: | + Значение всего текста в этом блоке будет присвоено ключу 'literal_block', + с сохранением переноса строк. + + Объявление продолжается до удаления отступа и выравнивания с ведущим отступом. + + Любые строки с большим отступом сохраняют остатки своего отступа - + эта строка будет содержать дополнительно 4 пробела. +folded_style: > + Весь блок этого тектса будет значением 'folded_style', но в данном случае + все символы новой строки будут заменены пробелами. + + Пустые строки будут преобразованы в перенос строки. + + Строки с дополнительными отступами сохраняют их переносы строк - + этот текст появится через 2 строки. + +################## +# Типы коллекций # +################## + +# Вложения используют отступы. Отступ в 2 пробела предпочтителен (но не обязателен). +a_nested_map: + key: value + another_key: Another Value + another_nested_map: + hello: hello + +# В словарях (maps) используются не только строковые значения ключей. +0.25: a float key + +# Ключи также могут быть сложными, например многострочными. +# Мы используем ? с последующим пробелом чтобы обозначить начало сложного ключа. +? | + Этот ключ + который содержит несколько строк +: и это его значение + +# YAML также разрешает соответствия между последовательностями со сложными ключами +# Некоторые парсеры могут выдать предупреждения или ошибку +# Пример +? - Manchester United + - Real Madrid +: [2001-01-01, 2002-02-02] + +# Последовательности (эквивалент списка или массива) выглядят как-то так +# (обратите внимание что знак '-' считается отступом): +a_sequence: + - Item 1 + - Item 2 + - 0.5 # последовательности могут содержать различные типы. + - Item 4 + - key: value + another_key: another_value + - + - Это последовательность + - внутри другой последовательности + - - - Объявления вложенных последовательностей + - могут быть сжаты + +# Поскольку YAML это надмножество JSON, вы можете использовать JSON-подобный +# синтаксис для словарей и последовательностей: +json_map: {"key": "value"} +json_seq: [3, 2, 1, "takeoff"] +в данном случае кавычки не обязательны: {key: [3, 2, 1, takeoff]} + +########################## +# Дополнительные функции # +########################## + +# В YAML есть удобная система так называемых 'якорей' (anchors), которые позволяют легко +# дублировать содержимое внутри документа. Оба ключа в примере будут иметь одинаковые значения: +anchored_content: &anchor_name Эта строка будет являться значением обоих ключей. +other_anchor: *anchor_name + +# Якоря могут использоваться для дублирования/наследования свойств +base: &base + name: Каждый будет иметь одинаковое имя + +# Регулярное выражение << называется ключом объединения независимо от типа языка. +# Он используется чтобы показать что все ключи одного или более словарей должны быть +# добавлены в текущий словарь. + +foo: &foo + <<: *base + age: 10 + +bar: &bar + <<: *base + age: 20 + +# foo и bar могли бы иметь имена: Каждый из них имеет аналогичное имя + +# В YAML есть теги (tags), которые используются для явного объявления типов. +explicit_string: !!str 0.5 +# В некоторых парсерах реализованы теги для конкретного языка, пример для Python +# пример сложного числового типа. +python_complex_number: !!python/complex 1+2j + +# Мы можем использовать сложные ключи с включенными в них тегами из определенного языка +? !!python/tuple [5, 7] +: Fifty Seven +# Могло бы быть {(5, 7): 'Fifty Seven'} в Python + +####################### +# Дополнительные типы # +####################### + +# Строки и числа не единственные величины которые может понять YAML. +# YAML также поддерживает даты и время в формате ISO. +datetime: 2001-12-15T02:59:43.1Z +datetime_with_spaces: 2001-12-14 21:59:43.10 -5 +date: 2002-12-14 + +# Тег !!binary показывает что эта строка является base64-закодированным +# представлением двоичного объекта. +gif_file: !!binary | + R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 + OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ + +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC + AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= + +# YAML может использовать объекты типа ассоциативных массивов (set), как представлено ниже: +set: + ? item1 + ? item2 + ? item3 +or: {item1, item2, item3} + +# Сеты (set) являются простыми эквивалентами словарей со значениями +# типа null; запись выше эквивалентна следующей: +set2: + item1: null + item2: null + item3: null + +... # конец документа +``` + +### Больше информации + ++ [YAML оффициальный вебсайт](http://yaml.org/) ++ [YAML онлайн валидатор](http://www.yamllint.com/) |