summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--ru-ru/php-composer-ru.html.markdown195
1 files changed, 195 insertions, 0 deletions
diff --git a/ru-ru/php-composer-ru.html.markdown b/ru-ru/php-composer-ru.html.markdown
new file mode 100644
index 00000000..6c97eacd
--- /dev/null
+++ b/ru-ru/php-composer-ru.html.markdown
@@ -0,0 +1,195 @@
+---
+category: tool
+tool: composer
+contributors:
+ - ["Alesey Lysenko", "https://github.com/nasgul"]
+filename: LearnComposer.sh
+lang: ru-ru
+---
+
+[Composer](https://getcomposer.org/) это инструмент управления зависимостями в PHP.
+Он позволяет вам декларировать библиотеки, от которых зависит ваш проект,
+и он будет управлять (устанавливать / обновлять) их для вас.
+
+# Установка
+
+```sh
+# Устанавливаем composer.phar в текущую папку
+curl -sS https://getcomposer.org/installer | php
+# Если вы используете этот подход, вам нужно будет вызвать композер следующим образом:
+php composer.phar about
+
+# Устанавливаем с бинарников ~/bin/composer
+# Примечание: убедитесь, что ~/bin находится в переменной PATH вашего окружения
+curl -sS https://getcomposer.org/installer | php -- --install-dir=~/bin --filename=composer
+```
+
+Пользователи Windows должны следовать
+[Инструкциям по установке в Windows ](https://getcomposer.org/doc/00-intro.md#installation-windows)
+
+## Подтверждение установки
+
+```sh
+# # Проверить версию и параметры списка
+composer
+
+# Получить дополнительную помощь для параметров
+composer help require
+
+# Проверьте, способен ли Composer делать то, что ему нужно, и если он обновлен
+ композитор диагностирует
+composer diagnose
+composer diag # shorthand
+
+# Обновление Composer к последней версии
+composer self-update
+composer self # shorthand
+```
+
+# Использование
+
+Композитор сохраняет ваши зависимости проекта в `composer.json`.
+Вы можете отредактировать этот файл, но лучше всего позволить Composer управлять им для вас.
+```sh
+# Создать новый проект в текущей папке
+composer init
+# запускается интерактивная анкета с просьбой предоставить подробную информацию о вашем проекте.
+# Оставляя их пустым, все прекрасно, если вы не делаете другие проекты зависимыми от этого.
+
+# Если файл composer.json уже существует, загрузите зависимости
+composer install
+
+# Чтобы загрузить только производственные зависимости, т. Е. Исключая зависимости разработки
+composer install --no-dev
+
+# Добавить зависимость от этого проекта
+composer require guzzlehttp/guzzle
+# выяснит, какая последняя версия guzzlehttp / guzzle есть,
+# загрузите ее и добавьте новую зависимость в поле require.console.
+
+composer require guzzlehttp/guzzle:6.0.*
+# будет загружать последнюю версию, соответствующую шаблону (например, 6.0.2),
+# и добавить зависимость к полю require.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
+
+# Для получения дополнительной информации о совместимости версий Composer см.
+# [Документация композитора по версиям] (https://getcomposer.org/doc/articles/versions.md)
+# для получения более подробной информации
+
+# Чтобы узнать, какие пакеты доступны для установки и в настоящее время установлены
+composer show
+
+# Чтобы узнать, какие пакеты в настоящее время установлены
+composer show --installed
+
+# Чтобы найти пакет с «mailgun» в его названии или описании
+composer search mailgun
+```
+
+[Packagist.org](https://packagist.org/) является основным хранилищем для пакетов Composer.
+Поиск там для существующих сторонних пакетов.
+## `composer.json` vs `composer.lock`
+
+Файл `composer.json` хранит ваши параметры плавающей версии вашего проекта для каждой зависимости,
+а также другую информацию.
+
+
+Файл `composer.lock` хранит точно, какую версию он загрузил для каждой зависимости.
+Никогда не редактируйте этот файл.
+
+Если вы включите файл `composer.lock` в свой репозиторий git,
+каждый разработчик установит текущую версию зависимостей.
+Даже когда выпущена новая версия зависимости, Composer продолжит загрузку версии,
+записанной в файле блокировки.
+
+```sh
+# Если вы хотите обновить все зависимости до их новейшей версии,
+# которые по-прежнему соответствуют вашим предпочтениям в версии обновление композитора
+composer update
+
+# Если вам нужна новая версия определенной зависимости:
+composer update phpunit/phpunit
+
+# Если вы хотите перенести пакет на более новую версию,
+# вам может потребоваться сначала удалить старый пакет и его зависимости.
+composer remove --dev phpunit/phpunit
+composer require --dev phpunit/phpunit:^5.0
+
+```
+
+## Автозагрузчик
+
+Composer создает класс автозагрузки, который вы можете потребовать от своего приложения.
+Вы можете создавать экземпляры классов через их пространство имен.
+
+```php
+require __DIR__ . '/vendor/autoload.php';
+
+$mailgun = new Mailgun\Mailgun("key");
+```
+
+### PSR-4 Autoloader
+
+### Автозагрузчик PSR-4
+
+Вы можете добавить свои собственные пространства имен в автозагрузчик.
+
+Вы можете добавить свои собственные пространства имен в автозагрузчик.
+
+В `composer.json` добавьте поле 'autoload':
+
+```json
+{
+ "autoload": {
+ "psr-4": {"Acme\\": "src/"}
+ }
+}
+```
+Это скажет автозагрузчику искать что-либо в пространстве имен `\ Acme \` в папке `src`.
+
+Вы также можете использовать
+[PSR-0, Classmap или просто список файлов для включения] (https://getcomposer.org/doc/04-schema.md#autoload).
+Также существует поле `autoload-dev` для пространств имен, предназначенных только для разработки.
+
+При добавлении или изменении ключа автозагрузки вам необходимо перестроить автозагрузчик:
+
+```sh
+composer dump-autoload
+composer dump # shorthand
+
+# Оптимизирует пакеты PSR0 и PSR4 для загрузки классов.
+# Медленно запускается, но улучшает производительность при производстве.
+composer dump-autoload --optimize --no-dev
+```
+
+# Composer Кэш
+
+```sh
+# Composer сохранит загруженные пакеты для использования в будущем. Очистите его с помощью:
+composer clear-cache
+```
+
+# Поиск проблемы
+
+```sh
+composer diagnose
+composer self-update
+composer clear-cache
+```
+
+## Темы, которые пока (пока) не включены в этот учебник
+
+* Создание и распространение ваших собственных пакетов на Packagist.org или в другом месте
+* Предварительные и пост-скриптовые перехватчики: запуск задач,
+когда происходят определенные события композитора
+
+### Рекомендации
+
+* [Composer - Dependency Manager for PHP](https://getcomposer.org/)
+* [Packagist.org](https://packagist.org/)