Ну что, на прошлом уроке мы фактически закончили писать ядро нашего сайта, и с этого момента я предлагаю завязать с велосипедостроением и припасть к достижениям мирового сообщества.

А именно - начать использовать менеджер зависимостей для PHP - Composer . Он позволит нам легко устанавливать разные полезные вещи на сайт, обновлять их и даже удалять. Если вы уже работали с менеджером пакетов GNU/Linux - то вам всё это будет очень знакомо.

В качестве разминки, удалим Fenom из директории core и установим через Composer. Для этого нужно в корне сайта создать файл composer.json и прописать в нём требуемые пакеты (подробнее можно прочитать на Хабре):
{ "require": { "php":">=5.3.0", "fenom/fenom": "2.*" } } Теперь нужно только скачать composer.phar и запустить его в корне сайта:
php composer.phar install На modhost.pro и качать ничего не нужно - просто запускаем composer в директории:
composer install И волшебным образом у нас появляется директория /vendor/ с установленным Fenom. Что же с ним делать дальше?

Принцип работы

Давайте немного остановимся, и я объясню, как именно функционирует Composer, если вы еще не знаете.

Composer - это менеджер пакетов, который работает с ними согласно правил в composer.json . То, что мы там напишем, и будет устанавливаться.

При установке пакетов Composer пробегается по их правилам и генерирует самый важный файл - /vendor/autoload.php , который загружает все скачанные классы. Нам, выходит, нужно только подключить этот файл в своём проекте, и с этих пор мы можем запускать свои классы без require :
$Fenom = new Fenom::factory($tplDir, $compileDir); То есть, система уже знает, где физически находится Fenom и нам не нужно делать reuire_once("путь к fenom"). Также нам не нужно держать сам Fenom в своём проекте, достаточно хранить там наш composer.json .

Еще раз, для закрепления:

  1. Пишем composer.json
  2. Устанавливаем пакеты через composer.phar
  3. Подключаем в проект /vendor/autoload.php
  4. Используем любые установленные классы через new Class()
Лишних файлов в проекте нет, лишних require нет, установленные пакеты обновляются через тот же composer:
php composer.phar update Всё очень просто и удобно. Стоит только раз использовать такую схему работы и велосипедить дальше уже просто невозможно!

Подключаем Fenom

Для работы с установленными пакетами нам нужно просто добавить autoload.php в наш класс Core :
function __construct(array $config = array()) { $this->config = array_merge(array("controllersPath" => dirname(__FILE__) . "/Controllers/", "templatesPath" => dirname(__FILE__) . "/Templates/", "cachePath" => dirname(__FILE__) . "/Cache/", "fenomOptions" => array("auto_reload" => true, "force_verify" => true,),), $config); // Например, вот тут require_once dirname(dirname(__FILE__)) . "/vendor/autoload.php"; } Из метода getFenom() теперь можно выбросить проверку и подключение файлов, а также загрузку его классов. Итоговый метод выглядит так:
public function getFenom() { if (!$this->fenom) { try { if (!file_exists($this->config["cachePath"])) { mkdir($this->config["cachePath"]); } $this->fenom = Fenom::factory($this->config["templatesPath"], $this->config["cachePath"], $this->config["fenomOptions"]); } catch (Exception $e) { $this->log($e->getMessage()); return false; } } return $this->fenom; } Просто вызываем Fenom::factrory - и он сам загрузится. Вот коммит с изменениями - смотрите, сколько кода мы убрали сразу из своего проекта!

Зачем нам таскать с собой Fenom и обновлять его вручную, если давно придуман Composer, который об этом позаботится гораздо лучше? Всё, что нам нужно - положить в корень проекта composer.json .

Давайте теперь отрефакторим и наш собственный проект, чтобы он также подключался в autoload.php.

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

Отсюда следует два вывода: Composer можно использовать только в PHP 5.3+, и наш проект нужно переписать так, чтобы он использовал пространства имён.

Первым делом, нужно определить имя для нашего проекта. Пусть будет Brevis - от латинского «короткий». Теперь наша директория /core/ - это пространство имён Brevis. Значит:

  • Класс Core становится \Brevis\Core и находится в core\Core.php
  • Класс Controller становится \Brevis\Controller и находится в core\Controller.php
  • Класс Controlles_Home становится \Brevis\Controllers\Home и находится в core\Controllers\Home.php
  • Класс Controlles_Test становится \Brevis\Controllers\Test и находится в core\Controllers\Test.php
Обратите внимание, что физическое расположение файлов совпадает с пространством имён. Это потому, что мы уже следуем стандарту PSR-4 .

Теперь в начале каждого класса пишем используемое пространство имён. У основных классов это:
PhpStorm сразу начинает подсвечивать нам все использования Exception и Fenom как неправильные, потому что они вызываются внутри пространства имён, но без указания полного имени. Тут 2 варианта исправления:

  1. Пробежаться по всему коду и добавить к именам этих классов \, чтобы было \Exception и \Fenom
  2. Не страдать фигнёй, а использовать псевдонимы - возможность указать короткое имя для класса
Конечно, выбираем второй вариант:
Теперь переименовываем контроллеры и указываем в них псевдонимы:

Перемещаем autoload.php из класса \Brevis\Core в index.php, потому что пространство имён Brevis у нас скоро и само будет работать через автозагрузку и лишние require ему не нужны.

Index.php теперь выглядит вот так:
require_once dirname(__FILE__) . "/vendor/autoload.php"; $Core = new \Brevis\Core(); $req = !empty($_REQUEST["q"]) ? trim($_REQUEST["q"]) : ""; $Core->handleRequest($req);
Метод \Brevis\Core::handleRequest() переписываем, убирая всякие проверки файлов. Нам нужно проверять только наличие класса, используя get_class() :
public function handleRequest($uri) { $request = explode("/", $uri); $className = "\Brevis\Controllers\\" . ucfirst(array_shift($request)); /** @var Controller $controller */ if (!class_exists($className)) { $controller = new Controllers\Home($this); } else { $controller = new $className($this); } $initialize = $controller->initialize($request); if ($initialize === true) { $response = $controller->run(); } elseif (is_string($initialize)) { $response = $initialize; } else { $response = "Возникла неведомая ошибка при загрузке страницы"; } echo $response; } Как видите, мы определяем полное имя загружаемого контроллера, проверяем его наличие, а если такого контроллера нет - загружаем \Brevis\Controllers\Home .

В общем, вся логика осталась прежней, а количество кода сократилось. Нет ручной работы с файлами, нет никаких require, вся работа по подключению классов лежит на autoload.php. Соотвественно, и параметр controllersPath из системного конфига пропадает.

Осталось добавить и наш собственный проект в автозагрузку. Для этого меняем composer.json вот так:
{ "name": "Brevis", "autoload": { "psr-4": { "Brevis\\": "core/" } }, "require": { "php": ">=5.3.0", "fenom/fenom": "2.*" } } Блок autoload указывает, что загружать дополнительно, кроме установленных пакетов. Ключ psr-4 указывает, как именно загружать наш проект, и указывает директорию core/ как основную для пространства имён Brevis .

Запускаем
php composer.phar update и наши классы попадают в автозагрузку. Всё должно работать, смотрим изменения на GitHub .

Заключение

Вот мы и переписали наш проект в соотвествии с последними стандартами в мире программирования на PHP. Согласитесь, было не так уж и страшно?

Зато теперь наш код чистенький, опрятненький, соотвествует стандартам и отлично работает!

На следующем занятии мы установим через Composer xPDO 3.0 (да-да, он уже переписан и поддерживает namespaces, хоть пока и только в dev-ветке) и подключим его к нашей БД.

Напишем схему, сгенерируем по ней модель и создадим пару таблиц.

2014

Как установить Composer на OpenServer ?

Наверное наиболее часто задаваемым вопросом является использование и установка утилиты Composer. Это де-факто стандарт в области менеджеров зависимостей для PHP. При работе с ним можно не бояться об использовании старых библиотек, которые использует ваш проект, ведь Composer установит нужные библиотеки за вас! В этой статье я не буду рассматривать как использовать этот замечательный инструмент, но расскажу как настроить его взаимодействие с OpenServer.

Обычно, при попытки установить Composer на Windows с установленным и запущенным OpenServer"ом вызывает проблему: Composer не хочет устанавливаться по причине ошибки openssl, которая в вашем проекте выключена.Конечно же, при открытии php.ini через openserver вы обнаружите что соблюли все требования, однако Композер все равно будет ругаться.

Решить это можно довольно просто, всего в 3 шага:

  • Шаг 1 - устанавливаем нужные нам версию PHP и Apache в настройках openserver"а.
    Помните! Версия должна быть не ниже PHP 5.3.2!
  • Шаг 2 - В OpenServer открываем: Дополнительно -> Конфигурация -> PHP .....
    Проверяем наличие раскомментированного extension=php_openssl.dll
  • Шаг 3 - Включаем Консоль OpenServer"a: Дополнительно -> Консоль.
    Коммандами консоли windows переходим в папку используемого php. Я использую php-5.5.6 и моя команда выглядит так: cd modules/php/PHP-5.5.6/

    Затем выполняем комманду:

    Php -r "readfile("https://getcomposer.org/installer");" | php

    После чего, если все успешно вы увидите надпись:

    All settings correct for using Composer Downloading... Composer succesfully installed to: /Composer.phar User it: php composer.phar

Готово! Composer установился и набрав комманду:

Php composer.phar -V

Вы должны увидеть запись подобного рода:

Composer version

Echo @php "%~dp0composer.phar" %*>composer.bat

Она создаст.bat файл и в дальнейшем можно будет работать без указания php composer.phar, просто указывая composer Т.е. команда проверки версии (которая была выше) будет выглядеть так:

Composer -V

Что согласитесь гораздо удобнее.


Меня зовут Андрей Николаев , я разработчик-фрилансер с более чем четырехлетним опытом работы в сфере веб-технологий. Последнее время занимаюсь разработкой и поддержкой lowload и midload проектов, разработкой веб-сайтов на платформе 1С-Битрикс, Yii, Laravel . Предоставляю услуги как разработчика сайта, так и консультанта , а при необходимости и менеджера проекта со стороны заказчика.

Обо мне

От автора: Очень часто при разработке веб-приложений, особенно крупных веб-проектов, необходимо использовать различные сторонние библиотеки. К примеру, это может быть php-фреймворк, либо шаблонизатор, либо движок форума, или все эти компоненты вместе. В данном уроке мы с Вами рассмотрим менеджер зависимостей Composer, при помощи которого можно легко скачать и установить необходимые библиотеки

Если мы используем несколько сторонних библиотек, все их необходимо правильно установить и подключить к разрабатываемому скрипту. В лучшем случае у каждой библиотеки – необходимо подключить один главный файл, при этом, если мы используем три сторонних библиотеки, значит необходимо подключить три файла.

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

Поэтому в данном уроке мы с Вами рассмотрим менеджер зависимостей Composer, при помощи которого можно легко скачать и установить необходимые библиотеки.

Установка Composer

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

Как я сказал ранее Composer — это менеджер зависимостей для интерпретатора языка PHP, а значит устанавливается данный инструмент непосредственно в интерпретатор данного языка. При этом, сейчас мы с Вами говорим о интерпретаторе, который установлен на Вашем домашнем компьютере, потому как зачастую, на сервере (на реальном хостинге в интернете) у нас нет доступа к интерпретатору языка PHP. Да и это вовсе не нужно, так как в основном скрипты разрабатываются на домашнем компьютере и переносятся на хостинг по окончанию работы. Конечно, интерпретатор языка PHP у всех может быть установлен по разному, к примеру кто то использует программное обеспечение Denwer, кто то OpenServer, кто отдельную установку PHP, Apache, Mysql, но это совсем не важно так как процесс установки менеджера зависимостей Composer аналогичен для всех случаев.

Перед установкой, давайте ознакомимся с официальным сайтом менеджера зависимостей Composer — https://getcomposer.org/ :

Здесь на странице Documentation приведено подробное описание по установке и работе с данным менеджером (правда, на английском языке).

Composer можно установить на операционную систему Windows двумя способами:

вручную, используя командную строку;

автоматически, используя специальный файл, ссылку на который Вы найдете на странице документации, в разделе установки под ОС Windows.

В данном уроке мы с Вами рассмотрим ручной способ установки инструмента Composer. Сразу же хотел бы отметить, что Сomposer, представляет собой файл composer.phar, который обычно располагается в папке с интерпретатором языка PHP. Поэтому перед установкой желательно просмотреть данную папку, потому как, к примеру в программном обеспечении OpenServer (в модулях PHP), Composer уже установлен.

Итак, запустив веб-сервер, открываем командную строку (напомню, что для Windows 7 командную строку можно открыть, если в поиске меню Пуск ввести cmd), и переходим в папку, в которую установлен интерпретатор языка PHP. Для этого используется команда cd: cd путь к папке

Теперь в соответствии с документацией, необходимо выполнить следующую команду: php -r «readfile(‘https://getcomposer.org/installer’);» | php

Которая, выполнит PHP код readfile(‘https://getcomposer.org/installer’), то есть мы прочитаем удаленный файл. Здесь хотел бы отметить, что в Вашем интерпретаторе, языка PHP, должно быть подключено расширение php_openssl.dll, иначе команда не выполнится.

После выполнения команды мы видим сообщение о том, что установка успешно завершена. Проверить, действительно ли был установлен Composer, можно используя команду, которая покажет его версию: php composer.phar -v

Теперь для удобства работы с ним, давайте выполним еще одну команду: echo @php «%~dp0composer.phar» %*>composer.bat

Данная команда, создаст в папке интерпретатора языка PHP, специальный файл composer.bat, при помощи которого, можно обращаться к менеджеру зависимостей, используя только имя composer, и при этом, находясь в любой папке из под командной строки. Но при этом в системной переменной path, необходимо прописать путь к папке, в которую установлен интерпретатор языка PHP:

Установка необходимых библиотек

Для начала давайте условимся, что для нашего скрипта потребуются следующие библиотеки:

Теперь, необходимо в специальном файле composer.json (данный файл создаем в папке с разрабатываемым скриптом) описать, что вышеперечисленные библиотеки необходимы для работы будущего скрипта:

{ "require": { "slim/slim":"2.*", "twig/twig":"~1.0", "phpbb/phpbb": "3.1.3-RC2" } }

"require" : {

"slim/slim" : "2.*" ,

"twig/twig" : "~1.0" ,

"phpbb/phpbb" : "3.1.3-RC2"

Как Вы видите, данный файл должен содержать объект в виде json строки. У которого, в свойстве require, описаны те библиотеки, от которых зависит будущий скрипт. Причем, require – это в свою очередь так же объект, свойства которого и есть те библиотеки, которые необходимо скачать. Где имя свойства — это название библиотеки, а значение – это версия скачиваемой библиотеки. Причем название состоит из двух подстрок, разделенных /. Строка до разделителя – это имя поставщика, строка после – это название библиотеки.

Названия и версии библиотек, которые необходимо указывать в файле composer.json, приводятся на официальных сайтах, в разделе установка. К примеру, для шаблонизатора Twig, в документации, в разделе Installation, приведена строка, которую я вписал в файл composer.json:

После составления файла composer.json, открываем командную строку, переходим в папку, разрабатываемого скрипта, и выполняем команду: composer install

И сразу же запускается установка необходимых библиотек.

После установки, в папке разрабатываемого скрипта, мы найдем папку vendor, в которую были скачаны все необходимые библиотеки и их зависимости, а так же был сгенерирован файл autoload.php, подключив который Вы подключите все скачанные библиотеки. После этого можно работать с установленными библиотеками.

На этом данный урок завершен. Всего Вам доброго и удачного кодирования!

Посредством визуального редактора Kompozer создание Web страниц превращается в легкое и увлекательное занятие. Больше не требуется изучать язык разметки HTML или разбираться в каскадных таблицах стилей. Все, что следует - запустить описываемую программу, с помощью специальных инструментов выбрать фоновый рисунок будущего сайта и наполнить его текстовой и графической информацией. Любой компьютерный пользователь способен разобраться в функционале данного визуального редактора и создать привлекательную Web страницу.

Причем выгрузить ее в Интернет получится не выходя из программы (для этого разработчики предусмотрели удобный FTP проводник, подключающийся непосредственно к хостингу после введения пароля и логина).

Основные возможности Kompozer

Главная возможность Композер - верстка страниц простым добавлением элементов с панели управления. Пользователь способен быстро создавать таблицы, управляющие формы и информационное наполнение. Параметры любых элементов (расположение и размер) изменяются простым перетаскиванием. Также интересная возможность этого визуального редактора заключается в ручном редактировании кода. Она предназначена для опытных пользователей, желающих подправить шаблон или задать собственные характеристики, недоступные через встроенную панель управления. HTML и CSS коды редактируются в удобном встроенном редакторе, поэтому экспортировать их в другие приложения нет необходимости. Выгрузить сайт на хостинг возможно через FTP.

Как пользоваться редактором

Для начала желательно Kompozer на русском скачать, чтобы не возникло проблем с пониманием интерфейса и функций. Затем в программе нужно ввести пароль и логин доступа к хостингу - чтобы подключиться к нему и открыть нужные страницы. Файлы и директории сервера отобразятся в правом столбце. Для выбора достаточно нажать по наименованию страницы и подождать, пока она откроется в визуальном редакторе. Дальше пользователь может управлять элементами с помощью панели управления, активируя тот или иной инструмент. С помощью инструментов легко добавлять новые заголовки, изменять информационное наполнение и редактировать код. После работы нужно сохранить изменения и отредактированная страница загрузиться на сервер.


Версия: 0.8b3 RU
Лицензия: Бесплатная
Обновление:
Разработчик: Fabien Cazenave
Язык: Русский, Английский
ОС: Windows 10 / 8 / 7 / Vista / XP: (32 / 64-bit)
Размер файла: 6.6 Mb

C omposer – это менеджер зависимостей для PHP. Composer будет использовать все необходимые пакеты PHP, от которых зависит ваш проект и управление ими.

В этой статье мы покажем вам, как установить и использовать Composer на сервере Ubuntu 18.04.

Хотя эта статья написана для Ubuntu 18.04, те же самые шаги можно использовать для Ubuntu 16.04.

Предпосылки

Прежде чем продолжить эту статью, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo, и у вас установлен PHP на вашей системе Ubuntu 18.04.

Установка Composer

Чтобы установить Composer в вашу систему Ubuntu, выполните следующие действия:

  1. Перед загрузкой и установкой Composer сначала нам нужно установить пакет CLI PHP, который доступен в репозиториях Ubuntu: sudo apt install php-cli
  2. Теперь, когда у нас установлен php cli на нашей машине, мы можем скачать установщик Composer с помощью: php -r "copy("https://getcomposer.org/installer", "composer-setup.php");"

    Приведенная выше команда загрузит файл composer-setup.php в текущий рабочий каталог.

  3. Затем нам нужно проверить целостность данных сценария, сравнив SHA-384 хэш-код с последним хешем установщика, найденным на странице « Публичные ключи/подписи Composer». Мы будем использовать следующую команду wget, чтобы загрузить ожидаемую подпись последнего установщика Composer со страницы Github Composer и сохранить ее в переменной с именем HASH: HASH="$(wget -q -O - https://composer.github.io/installer.sig)"

    Теперь запустите следующую команду, чтобы убедиться, что сценарий установки не поврежден:

    php -r "if (hash_file("SHA384", "composer-setup.php") === "$HASH") { echo "Installer verified"; } else { echo "Installer corrupt"; unlink("composer-setup.php"); } echo PHP_EOL;"

    Если хеши совпадают, вы увидите следующий вывод:

    Installer verified

    Если хеши не совпадают, вы увидите Installer corrupt . В этом случае вам нужно будет повторно загрузить сценарий установки Composer и дважды проверить значение $HASH переменной. echo $HASH . Как только программа установки будет проверена, вы можете продолжить следующий шаг.

  4. Следующая команда установит Composer в каталог /usr/local/bin: sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer All settings correct for using Composer Downloading... Composer (version 1.7.2) successfully installed to: /usr/local/bin/composer Use it: php /usr/local/bin/composer

    composer устанавливается как общесистемная команда, и он будет доступен для всех пользователей.

  5. Последний шаг – проверить установку: composer

    Вышеприведенная команда напечатает версию, команды и аргументы Composer.

    ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 1.7.2 2018-08-16 16:57:12 Usage: command

Если вы хотите установить Composer для каждого проекта, используйте следующую команду, php composer-setup.php , которая создаст файл, указанный composer.phar в вашем текущем рабочем каталоге. Вы можете использовать Composer, запустив./composer.phar .

Начало работы с Composer

Теперь, когда Composer установлен в вашей системе Ubuntu, мы покажем вам, как использовать Composer в проекте PHP.

Первый шаг – создать каталог, который будет корневым каталогом проекта и удерживать файл composer.json . Этот файл описывает ваш проект PHP, включая зависимости PHP и другие метаданные.

Создайте каталог проекта и переключитесь на него с помощью:

Mkdir ~/my-first-composer-project cd ~/my-first-composer-project

Следующим шагом будет инициализация нового composer.json с помощью команды composer require И определение пакета, который мы хотим загрузить.

В этом примере мы создадим пример приложения, которое будет печатать текущее время с помощью пакета под названием carbon.

Выполните следующую команду для инициализации нового composer.json и установки пакета Carbon:

Composer require nesbot/carbon Using version ^1.33 for nesbot/carbon ./composer.json has been created Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 3 installs, 0 updates, 0 removals - Installing symfony/polyfill-mbstring (v1.9.0): Downloading (100%) - Installing symfony/translation (v4.1.4): Downloading (100%) - Installing nesbot/carbon (1.33.0): Downloading (100%) symfony/translation suggests installing symfony/config symfony/translation suggests installing symfony/yaml symfony/translation suggests installing psr/log-implementation (To use logging capability in translator) Writing lock file Generating autoload files

Как видно из выхода выше, Composer создаст файл composer.json , и он будет загружать и устанавливать carbon и все его зависимости.

Если вы перечисляете директорию вашего проекта, вы увидите, что он содержит два файла composer.json и composer.lock , и каталог vendor .

Ls -l -rw-r--r-- 1 linuxize users 60 Aug 02 14:04 composer.json -rw-r--r-- 1 linuxize users 6.8K Aug 02 14:04 composer.lock drwxr-xr-x 5 linuxize users 4.0K Aug 02 14:04 vendor

  • Каталог vendor , в котором зависимости проекта сохраняется.
  • composer.lock содержит список всех установленных пакетов, в том числе точных версий пакетов.
  • Описание composer.json PHP-проекта и всех зависимостей PHP.

Вы можете поискать репозиторий Composer Packagist для пакетов PHP.

Composer предоставляет возможности автозагрузки, которые позволяют нам использовать классы PHP без необходимости использования файлов require или include .

Создайте файл с именем testing.php и добавьте следующий код:

Давайте проанализируем код по строкам.

В первой строке после открытия php-тега мы включаем файл vendor/autoload.php , который автоматически генерируется Composer, который будет автоматически загружать все библиотеки.

Затем преобразуем Carbon\Carbon как Carbon и с последней строкой, мы печатаем текущее время с использованием метода now Carbon.

Запустите скрипт, набрав:

Php testing.php

Результат должен выглядеть примерно так:

Текущее время: 2018-08-02 14:25:05

Позже, если вы хотите обновить свои пакеты PHP, вы можете просто запустить:

Composer update

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

Вывод

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

Чтобы найти дополнительную информацию о Composer, посетите официальную страницу документации Composer.

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий ниже.