Рубрики
Uncategorized

Составитель обзора PHP

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

Для перепечатки, пожалуйста, укажите источник статьи: https://tlanyan.me/php -обзор…

Каталог ретроспективных серий PHP

  • Основа PHP
  • веб-запрос
  • печенье
  • Веб-ответ
  • сессия
  • Работа с базой данных
  • Шифрование и дешифрование

Composer-это инструмент управления зависимостями, рекомендованный сообществом PHP. Композитор для PHP то же, что NPM для узла. Это почти необходимый навык для современной разработки PHP. В этой статье кратко рассматриваются соответствующие концепции и использование Composer.

Расширение и упаковка

Связанными понятиями являются фреймворки и библиотеки. О различиях между фреймворками и библиотеками вы можете прочитать в моей предыдущей статье.

Расширение и пакет-два очень похожих понятия. В мире PHP мы можем в целом понять и различить два: расширение и модуль эквивалентны, которые являются наборами функций, написанными на языке C; пакет и библиотека эквивалентны, которые в основном являются наборами функций, реализованными на PHP; расширение загружается в виде библиотеки динамических ссылок (dll или около того), а пакет загружается способом require/include. В большинстве случаев сочетание этих двух факторов не вызовет трудностей в понимании.

Распространенные расширения включают GD, ZIP, XML, MySQLi, OPCache и т.д. Распространенные пакеты включают PHPMailer, PHP Office, очиститель HTML и т.д.

ГРУША и ПЕКЛ

До того, как Composer стал популярным, PEAR и PECL были двумя инструментами (сообществами), более известными разработчикам PHP. PEAR-это аббревиатура расширения PHP и репозитория приложений. Официальный сайт является http://pear.php.net; PECL-это аббревиатура библиотеки сообщества расширений PHP. Официальный сайт является http://pecl.php.net.

Различия между ними можно различить по расширениям и пакетам: управляемые расширения PECL, исходный код для файлов C, таких как APC, AMPQ; управляемые пакеты PEAR, функции, реализованные в PHP, такие как PHP CodeSniffer, HTTP-запрос; PEAR, соответствующий командам pear, PECL, соответствующий командам PECL, может использовать эти две команды для установки и управления расширениями и пакетами (pear). сборка/рассол Подкоманды также могут компилировать расширения в PECL. Эти двое дополняют друг друга, и официальный сайт описывает отношения между ними как сестер.

PECL является дополнением к официальному расширению, и он все еще находится в активном состоянии. Некоторое отличное расширение может стать официальным расширением. Расширение swool Хань Тянь фэна также проходит в ПЕКЛЕ, который имеет очень высокую репутацию на внутреннем рынке. ГРУША, напротив, – это завтрашний золотой цветок. PEAR2 и Pyrus (следующее поколение инструментов для установки пакетов PEAR, основанных на PHP 5.3+, появление официального сайта http://pear2.php.net) также не удалось спасти ГРУШУ. Упадок ГРУШИ сопровождается подъемом Композитора, главного героя этой статьи.

PEAR позиционируется как “предоставление повторно используемых компонентов PHP” для централизованного предоставления функциональных пакетов разработчикам. Централизованная публикация обеспечивает качество кода, но также создает неудобства при обслуживании: пакеты могут быть выпущены только после проверки, а пакеты устарели. Пакеты, установленные PEAR, являются глобальными. Пакеты зависимостей не могут быть установлены для отдельных проектов. Непривилегированные пользователи не могут самостоятельно устанавливать пакеты зависимостей. Другие недостатки включают плохое управление зависимостями. С ростом популярности Github и появлением Composer управление пакетами вошло в эпоху композитора. ГРУША выполнила свою историческую миссию и может идти спокойно.

Композитор

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

Композитор решит эту проблему за вас таким образом:

А) У вас есть проект, который зависит от нескольких библиотек.

Б) Некоторые из этих библиотек зависят от других библиотек.

В) Вы заявляете, от чего вы зависите.

D) Composer выяснит, какие версии пакетов необходимо установить, и установит их (загрузите их в свой проект).

Композитор может делать все, что может делать PEAR (включая установку расширений PECL), а некоторые могут делать лучше. По умолчанию Composer устанавливает пакеты в каталог проекта, чтобы обычные пользователи могли их правильно использовать (официальный представитель Composer рекомендует не выполнять команды composer от имени root); поощряет соблюдение рекомендаций (то есть хорошо известной спецификации PSR, см. https://www.php-fig.org на официальном сайте PHP-FIG), что значительно способствует стандартизации стиля кодирования сообщества PHP; Composer-децентрализованная платформа для всех. Как преемник PEAR, Composer выдержал испытание сообщества и стал де-факто стандартным инструментом управления зависимостями.

Composer сформировал огромную экосистему, и его пакеты гораздо многочисленнее, чем PEAR. Поскольку любой может свободно публиковать пакеты без проверки, у пакетов в экосистеме Composer могут возникнуть некоторые проблемы, такие как неравномерное качество кода, разные стили кода и уязвимости черного хода. Кроме того, управление зависимостями Composer основано на проекте, и один и тот же пакет может быть установлен несколько раз на одной машине. В целом, Composer значительно изменил экологию разработки PHP и способствовал обмену кодом и развитию сообщества.

Использование композитора

Композитор является зависимостью управляемого проекта и композитора. Файл JSON в проекте является основой его работы. Наиболее важной частью этого файла является раздел “Требуется”, в котором указывается, какие пакеты и версии Composer ожидает установить, например:

{
    "name": "tlanyan/foo",
    "version": "1.0.0",
    ....
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.6",
        "yiisoft/yii2-swiftmailer": "*",
        "yiisoft/yii2-redis": ">=2.0.0",
        "smarty/smarty": "< =3.1.25",
        "yiisoft/yii2-smarty": ">=2.0.0",
        "phpoffice/phpexcel": ">=1.8.0",
        "tecnickcom/tcpdf": "~6.2.0"
    },
    ....
}

Затем запустите команду composer install , Composer автоматически проанализирует зависимости и установит наиболее подходящий пакет в поставщику В каталоге. При добавлении параметра – V (- V v, – v v v) выводятся подробные сведения о процессе выполнения команды. После установки поставщик Каталог создаст autoload.php Документы. Включите этот файл в файл ввода проекта: требуется ______"./vendor/autoload.php"; Далее, вы можете ссылаться на интерфейсы и классы в пакетах зависимостей в любом месте проекта.

кроме команды install , Composer предоставляет множество других зависимостей для управления командами. Общие сценарии команд включают поиск зависимостей, введение зависимостей, установку зависимостей и обновление зависимостей. Соответствующие команды являются:

  1. поиск по композитору Поиск пакетов зависимостей на основе ключевых слов, таких как пакеты, опубликованные мной: поиск по композитору tlanyan . Эта команда эквивалентна поиску пакетов по адресу https://packagist.org выше.
  2. composer требует Введения зависимостей, объявления о том, что проект или глобальный (глобальный, имя пользователя, несистемный глобальный) зависит от пакета, например, объявления о том, что требуется пакет swiftmailer: composer требует [глобального] "swiftmailer/swiftmailer:dev-master" Команда обновляет файл composer.json и по умолчанию устанавливает зависимости немедленно (опция – без обновления предотвращает установку по умолчанию); эффект эквивалентен редактированию файла composer.json и последующему выполнению команды установки;
  3. установка композитора Установите пакеты зависимостей, объявленные composer. json и окончательная версия установленных пакетов зависимостей могут зависеть от наличия композитора. заблокировать файл или нет.
  4. обновление композитора Обновление зависит от последней версии, что эквивалентно удалению композитора. блокировка файла и его выполнение установка композитора

Вышеприведенные четыре команды охватывают большинство сценариев с использованием Composer. Ниже приведены некоторые часто используемые вспомогательные команды, связанные с анализом зависимостей:

  1. информация о композиторе Просмотр информации о пакете зависимостей установки и как композиторы Эквивалентность;
  2. composer dumpautoload Оптимизированный загрузчик можно получить, добавив опцию – O.
  3. композитор почему(-нет) Проверьте (не) причину установки пакета.

резюме

Начиная с копирования кода сторонних разработчиков в проекты (1994), пакетов зависимостей для установки PEAR (1999) и заканчивая появлением Composer (2012), сообщество PHP прошло почти 20 лет исследований. PHP, древний язык, постоянно развивается и обновляется, и он блестяще зарекомендовал себя в области Интернета. Composer, как лучший инструмент для управления зависимостями пакетов PHP, стоит того, чтобы им овладел каждый разработчик PHP.

Справочные ресурсы

  1. Справочные ресурсы
  2. Справочные ресурсы
  3. Справочные ресурсы