Рубрики
Uncategorized

Пять Советов Композитора, Которые должны знать разработчики PHP

Автор оригинала: David Wong.

Composer-это новое поколение инструментов управления зависимостями PHP. Его введение и базовое использование можно увидеть в новой эре управления зависимостями PHP Composer. В этой статье представлены пять советов по использованию Composer, которые помогут вам упростить разработку PHP.

1. Обновите только одну библиотеку

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

composer update foo/bar

Кроме того, этот метод также может быть использован для решения “проблемы с предупреждающей информацией”. Вы, должно быть, видели такое предупреждающее сообщение:

Warning: The lock file is not up to date with the latest changes in composer.json, you may be getting outdated dependencies, run update to update them.

Вытри, что случилось? Не паникуйте! Если вы отредактируете его composer.json Вы должны увидеть эту информацию. Например, если вы добавляете или обновляете сведения, такие как описания библиотек, авторы, дополнительные параметры или даже просто добавляете пробел, вы изменяете md5sum файла. Затем Composer предупредит вас о значениях хэша и composer.блокировка Разница записана.

Так что же нам делать? обновление Команда может обновить файл блокировки, но если добавлено только несколько описаний, она не должна предназначаться для обновления каких-либо библиотек. В этом случае только ничего не обновляйте :

$ composer update nothing
Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Writing lock file
Generating autoload files

Таким образом, Composer не будет обновлять библиотеку, но обновит ее. композитор.блокировка . Будьте осторожны ничего Вообще ничего обновление Ключевое слово команды. Просто еще нет. ничего Результат этого пакета. Если вы наберете foo bar , результат будет тот же.

Если вы используете новую версию Composer, вы можете использовать ее напрямую. --блокировка Параметры:

composer update --lock

2. Без редактирования composer.json Установите библиотеку в случае

Вы можете почувствовать, что каждая установленная вами библиотека нуждается в изменении. композитор.json Слишком много проблем, тогда вы можете использовать его напрямую. требуется Заказ.

composer require "foo/bar:1.0.0"

Этот метод также можно использовать для быстрого запуска нового проекта. в нем Порядок --требуется Параметры, которые могут быть записаны автоматически composer.json (Обратите внимание на наше использование.) -n , поэтому вам не нужно отвечать на вопросы.

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {
        "foo/bar": "1.0.0"
    }
}

3. Вывод легко

При инициализации вы попробовали это сделать. создать-проект Заказы?

composer create-project doctrine/orm path 2.2.0

Это автоматически клонирует репозиторий и проверяет указанную версию. Эту команду легко использовать при клонировании библиотек. Нет необходимости искать исходный URI.

4. Рассмотрите возможность кэширования, пакеты dist имеют приоритет

Composer автоматически заархивирует пакет dist, загруженный вами в прошлом году. По умолчанию пакеты dist используются для помеченных версий, таких как "symfony/symfony": "v2.1.4" Или подстановочные знаки или интервалы версий, "2.1.*" или ">=2.2,<2.3-dev" (Если вы используете стабильный Как у вас минимальная стабильность

Пакеты Dist также можно использовать, например dev-master Для подобных ветвей Github позволяет загружать справочный пакет сжатия git. Чтобы принудительно использовать сжатые пакеты вместо клонирования исходного кода, вы можете использовать параметры установка и обновление Из --prefer-dist .

Вот пример (я использовал его) --профиль Параметры для отображения времени выполнения:

$ composer init --require="twig/twig:1.*" -n --profile
Memory usage: 3.94MB (peak: 4.08MB), time: 0s

$ composer install --profile
Loading composer repositories with package information
Installing dependencies
  - Installing twig/twig (v1.12.2)
    Downloading: 100%

Writing lock file
Generating autoload files
Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

$ rm -rf vendor

$ composer install --profile
Loading composer repositories with package information
Installing dependencies from lock file
  - Installing twig/twig (v1.12.2)
    Loading from cache

Generating autoload files
Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

Здесь, веточка/веточка:1.12.2 Сжатый пакет сохраняется в ~/.composer/cache/files/twig/twig/1.12.2.0-v1.12.2.zip 。 Используйте его непосредственно при переустановке пакетов.

5. Сначала рассмотрите возможность модификации исходного кода

Клонирование исходного кода проще, чем загрузка пакетов, когда вам нужно изменить библиотеки. Ты можешь им воспользоваться. --prefer-source Для принудительного выбора клонированного исходного кода.

composer update symfony/yaml --prefer-source

Затем вы можете изменить файл:

composer status -v
You have changes in the following dependencies:
/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:
    M Dumper.php

При попытке обновить измененную библиотеку Composer напомнит вам, следует ли отказаться от изменения:

$ composer update
Loading composer repositories with package information
Updating dependencies
  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)
    The package has modified files:
    M Dumper.php
    Discard changes [y,n,v,s,?]?

Подготовка к производственной среде

Наконец, при развертывании кода в рабочей среде не забывайте оптимизировать автоматическую загрузку:

composer dump-autoload --optimize

То же самое можно использовать при установке пакетов --optimize-автозагрузчик . Без этой опции вы можете столкнуться с потерей производительности от 20% до 25%.

Если вам нужна помощь или вы хотите узнать подробности команды, вы можете прочитать официальный документ или ознакомиться с интерактивной памяткой, сделанной JoliCode.

Оригинальные 5 функций, которые нужно знать о неисправности сегмента перевода PHP Composer