<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/install.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'install.composer.intro.php',
    1 => 'Знакомство с пакетным менеджером Composer',
    2 => 'Знакомство с пакетным менеджером Composer',
  ),
  'up' => 
  array (
    0 => 'install.php',
    1 => 'Установка и настройка',
  ),
  'prev' => 
  array (
    0 => 'install.pecl.static.php',
    1 => 'Компиляция модулей PECL статически в PHP',
  ),
  'next' => 
  array (
    0 => 'install.pie.intro.php',
    1 => 'Введение в PIE',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'install/composer.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="install.composer.intro" class="sect1">
  <h2 class="title">Знакомство с пакетным менеджером Composer</h2>
  <p class="simpara">
   <a href="https://getcomposer.org/" class="link external">&raquo;&nbsp;Composer</a> — пакетный менеджер, который управляет зависимостями
   одних программных компонентов PHP-приложения от других.
   Composer помогает определять, а затем устанавливать и обновлять
   сторонние пакеты кода для проекта. Менеджер поддерживает встроенный
   <a href="language.oop5.autoload.php" class="link">механизм автозагрузки PHP-классов</a>,
   управляет репозиториями наподобие <a href="https://packagist.org" class="link external">&raquo;&nbsp;Packagist</a>,
   в которых хранятся PHP-пакеты, придерживается единообразной структуры проекта
   и соглашения о кодировании.
  </p>
  <p class="simpara">
   Примером работы с пакетным менеджером Composer могло бы быть PHP-приложение или сайт,
   которому потребовались уникальные идентификаторы <abbr class="abbrev">UUID</abbr>,
   тогда разработчик мог бы определить и установить через менеджер зависимостей пакет Бена Рэмси (Ben Ramsey) —
   <a href="https://packagist.org/packages/ramsey/uuid" class="link external">&raquo;&nbsp;<code class="literal">ramsey/uuid</code></a>,
   который генерирует разнотипные UUID-идентификаторы
   по стандарту <a href="https://datatracker.ietf.org/doc/html/rfc4122" class="link external">&raquo;&nbsp;RFC 4122</a> и умеет работать с такими идентификаторами.
  </p>
  <p class="simpara">
   Вкратце, для установки пакета в проекте создают файл
   <code class="literal">composer.json</code>, затем через пакетный менеджер Composer устанавливают
   последнюю версию пакета и включают в проект скрипт автозагрузки классов, который входит в Composer,
   чтобы сделать пакет доступным для кода. Подробнее о работе с менеджером зависимостей Composer
   рассказывает документация на сайте менеджера
   в главе <a href="https://getcomposer.org/doc/01-basic-usage.md" class="link external">&raquo;&nbsp;Basic Usage</a>.
  </p>
  <div class="example" id="example-1">
   <p><strong>Пример #1 
    Пример файла <code class="literal">composer.json</code>, который запрашивает один пакет
   </strong></p>
   <div class="example-contents">
<div class="annotation-chunk:false javascriptcode"><pre class="javascriptcode">{
    &quot;require&quot;: {
        &quot;ramsey/uuid&quot;: &quot;^4.7&quot;
    }
}</pre>
</div>
   </div>

  </div>

 </div><?php manual_footer($setup); ?>