Установка Composer для “чайников” (настройка и базовые команды). Как создать собственный Composer пакет? Что умеет Composer

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 . Предоставляю услуги как разработчика сайта, так и консультанта , а при необходимости и менеджера проекта со стороны заказчика.

Обо мне

Что это и зачем оно мне надо?

Если у тебя возник этот вопрос, тогда не читай дальше статью и сперва спроси у google “что такое dependency injection?” и зачем тебе нужен dependency manager (в частности ).

Лично у меня уже не существует приложений без composer-а. Особенно при разработке под фреймворк. Вот лишь коренные преимущества использования менеджера зависимостей в проектах:

  • Удобная установка и обновление сторонних пакетов и библиотек
  • Правильный деплоймент
  • Чужой код от сторонних пакетов не коммитится в свой репозиторий, и не мусорит код и статистику
  • Гибкое управление версиями зависимостей

Установка

Тут все максимально просто, но сперва надо определиться с методом использования: один composer для всего localhost-а или каждому проекту свой composer? (можно конечно и комбинировать)

Первый вариант удобен разработчикам которые одновременно трудятся над множеством приложений и все держат в чистоте и свежести. Второй вариант используется при требовании от приложения иметь точную и единую версию composer-а у всех разработчиков, и тут он коммитится в репозиторий.

Держим Composer вместе с приложением

Команды Composer

install

Установив и собрав свой composer.json можно приступить к установке тех самых пакетов которые мы указали в своем json-файле в блоке “require” и “require-dev”. Для этого мы используем команду install .

Composer install ./composer.phar install php composer.phar install

* Первая команда (строка 1) для тех кто выбрал метод установки единого для всей операционной системы. Вторая и третья нужны всем остальным и отличаются лишь тем, дали вы права на запуск phar-файла либо нет.

При первом запуске команды install мы получим последнюю либо точную версию всех пакетов которые мы указали в json-файле (в зависимости от того как мы указали версию для каждого отдельного пакета). Повторный запуск команды install ни к чему не приведет – и это важный момент!

Во время исполнения install скачает все библиотеки в папку vendor нашего проекта (ниже опишу как сменить этот путь), а рядом с json -файлом будет создан новый файл composer.lock (это снепшот – слепок установленных пакетов с указанием их точных версий). Папку vendor стоит сразу же поместить в .gitignore , дабы случайно не смешать все со своим кодом. А вот lock -файл наоборот, нужно закомитить и отправить в репозиторий. Если удалить папку vendor или некоторые пакеты из него а потом опять вызвать команду install , то все пакеты будут восстановлены с точно теми же версиями которые были установлены при первом вызове install . Так происходит, потому что проверяет наличие lock -файла, и при его наличии игнорирует версии пакетов указанные в json-файле (только если те не были спущены!), и устанавливает версии указанные в lock -файле.

Таким образом, передавая единый lock -файл между всеми разработчиками, команда будет гарантировано иметь одинаковые версии пакетов (думаю не стоит пояснять зачем).

update

При необходимости же обновить версии пакетов до актуальных – вызываем команду update .

Composer update ./composer.phar update php composer.phar update

После чего все пакеты будут обновлены. Так же будет обновлен и lock -файл.

Тут стоит помнить что обновляться пакеты будут в соответствии с форматом версии указанным для каждого из них отдельно в json -файле. Синтаксис указания версий для пакетов хорошо описан в официальной документации .

self-update

Еще одна полезная команда, которая обновит сам .

Composer self-update ./composer.phar self-update php composer.phar self-update

show

./composer.phar show -s -t ./composer.phar show -i -t

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

Первый пример (с ключом -s ) отобразит дерево пакетов которые мы сами руками указали в json -файле.

Второй пример (с ключом -i ) отобразит абсолютно все установленные пакеты, рекурсивно включая зависимости всех наших первоначальных пакетов.

Ключ -t меняет отображение ответа в стиль дерева зависимостей.

vendor path или как сменить путь установки библиотек

Для изменения пути установки пакетов, необходимо использовать директиву vendor-dir в json -файле. Вот пример:

{ "name": "My Project", "description": "Project description", "homepage": "http://my-project.com/", "config": { "vendor-dir": "/vendor/custom/path" }, "require": { "php": ">=5.3.3", "zendframework/zendframework": "2.*" }, "require-dev": { "zendframework/zftool": "v0.1.0", "zendframework/zend-developer-tools": "dev-master" } }

Заключение

Я постарался описать все основное что может понадобится для знакомства с Composer-ом. Более глубокие фичи лучше изучать по документации . Например: как подключить загрузку собственной библиотеки с github .

А для удобного поиска необходимых пакетов советую пользоваться проектом packagist.org

Если же возникнут вопросы, смело пишите в комментарии.

От автора: Очень часто при разработке веб-приложений, особенно крупных веб-проектов, необходимо использовать различные сторонние библиотеки. К примеру, это может быть 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, подключив который Вы подключите все скачанные библиотеки. После этого можно работать с установленными библиотеками.

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

) - это относительно новый и уже достаточно популярный менеджер зависимостей для PHP. Вы можете описать от каких библиотек зависит ваш проект и Composer установит нужные библиотеки за вас! Причём Composer - это не менеджер пакетов в классическом понимании. Да, он оперирует с сущностями, которые мы будем называть «пакетами» или библиотеками, но устанавливаются они внутрь каждого проекта отдельно, а не глобально (это одно из основных отличий от старого-доброго PEAR).

Кратко, как это работает:

  1. У вас есть проект, который зависит от нескольких библиотек.
  2. Некоторые из этих библиотек зависят от других библиотек.
  3. Вы описываете в своём проекте те библиотеки, от которых непосредственно зависит ваш код.
  4. Composer находит нужные версии требуемых библиотек для всего проекта, скачивает их и устанавливает в папку вашего проекта.
При создании Composer авторы черпали идеи и вдохновение из аналогичных проектов: npm для Node.js и Bundler для Ruby.

Изначально он был спроектирован и разработан двумя людьми Nils Adermann и Jordi Boggiano , сейчас в проекте участвует более двадцати контрибьюторов, Проект написан на PHP 5.3, распространяется под лицензией MIT и доступен на github .

Первые коммиты были сделаны апреле 2011 года и на сегодняшний день Composer находится в стадии «alpha3». Однако, он уже достаточно стабилен и используется многими популярными PHP проектами (например, Symfony 2 ). Список проектов использующих Composer можно посмотреть на сайте packagist.org - это официальный репозиторий Composer пакетов. Кстати, на недавней конференции Devconf 2012 разработчик фреймворка Yii в своём докладе упомянул, что Yii2 скорее всего тоже будет использовать Composer.

В этой статье я кратко опишу основные возможности Composer и мы попробуем создать демонстрационный проект использующий Composer для загрузки необходимых библиотек. Все примеры будут доступны на github.com и bitbucket.org.

Что умеет Composer?

  • Скачивать пакеты и их зависимости;
  • по умолчанию, пакеты скачиваются из официального репозитория packagist.org. Любой человек может свободно добавить туда свой пакет, чтобы сделать его установку максимально лёгкой и удобной для всего мира;
  • пакеты можно скачивать не только с packagist.org, но и из любого git, mercurial или svn репозитория;
  • при скачивании пакетов с github.com или bitbucket.org не требуется установленной системы контроля версий (git или hg), Composer работает через API этих сайтов;
  • git/hg/svn репозиторий с пакетом может находиться не только на одном из перечисленных выше сайтов, но в любом другом месте, например, в локальной сети предприятия или вообще на локальном жестком диске;
  • кроме того, устанавливаемая библиотека не обязательно должна быть оформлена в виде Composer-пакета, вы можете сделать установку из любого git/hg/svn репозитория произвольной структуры;
  • наконец, устанавливаемый пакет не обязательно должен быть git/hg/svn репозиторием, это может быть произвольный zip файл доступный по любому uri!
  • все пакеты устанавливаются в текущую директорию (откуда была выполнена команда install), это позволяет иметь несколько различных версий библиотек при работе над разными проектами параллельно;
  • команда update обновляет все установленные (или установит заново случайно удалённые) пакеты до свежих версий. А может и не обновлять версии до самых свежих, если создать специальный composer.lock файл - это позволяет зафиксировать комбинацию из стабильных версий всех используемых в проекте библиотек;
  • после установки пакетов автоматически генерируется autoload.php, с помощью которого можно подключить установленные библиотеки в коде вашего проекта. При подготовке Composer-пакета рекомендуется использовать PSR-0 - стандарт расположения и именования php файлов, чтобы autoload смог их легко найти. В любом случае, автор пакета может описать правила, по которым autoload будет искать файлы тех или иных классов или неймспейсов. Если вы устанавливаете библиотеку, которая не оформлена как Composer-пакет (например, произвольный git репозиторий с github), то задача описания правил autoload ложится на ваши плечи. Так что никакой магии с генерируемым autoload.php нет - он умеет загружать всё (даже библиотеки с набором функций вне классов), главное, чтобы были описаны правила (автором библиотеки или вами).

Рабочий пример: используем Composer в своём проекте

Чтобы разобраться, как пользоваться Composer"ом, напишем маленький проектик на PHP: «Super Hello World». Поскольку мы не хотим изобретать велосипед и писать код «с нуля», возьмём готовые библиотеки и фреймворки.

Мы будем использовать cледующие библиотеки:

  1. микрофреймворк Silex
  2. шаблонизатор Twig (доступен в виде Composer пакета на packagist.org),
  3. наш собственный логер посещений SuperLogger , который я оформил в виде Composer-пакета и опубликовал на github
  4. нашу старую, но любимую легаси-библиотеку superlib , которая состоит из мешанины классов без неймспейсов и функций без классов; библиотека опубликована на github, но не является оформленным Composer-пакетом
Как мы это делали раньше: скачивали нужные нам фреймворки и библиотеки, думали куда их распаковать, писали в проекте кучу require (или require_once для надёжности).

Как мы это сделаем теперь: используем Composer - он сам скачает все библиотеки и сгенерирует для нас autoload.php. Кроме того, если мы захотим показать «Super Hello World» коллегам, достаточно будет опубликовать код нашего проекта на github (или ещё где-нибудь), не включая всех требуемых библиотек в репозиторий и не готовя длинной инструкции по их установке. Нашим коллегам достаточно будет скачать (склонировать) «Super Hello World» и выполнить команду
php composer.phar install
Composer распространяется в виде одного файла composer.phar (phar - это php-архив) - по сути это PHP скприт, который может принимать несколько команд (install, update, ...) и умеет скачивать и распаковывать библиотеки.

Кстати, немного о синтаксисе запуска.
Если вы работаете под Windows, то скорее всего вы будете писать что-то вроде
php C:\path\to\composer.phar install
Можно упростить себе жизнь, создав composer.bat и положив его в %PATH%.

В Linux и OS X можно настроить на исполнение команду типа
composer install

composer.json
Итак, мы готовы написать наш Super Hello World проект. И я его только что написал: http://github.com/pqr/superhelloworld . Код состоит из одного index.php файла в директории web и шаблона layout.twig в директории views.

Голова всему - это файл composer.json . Он должен быть в корне проекта, в нашем случае рядом с директориями web и view. В этом файле необходимо указать от каких библиотек зависит наш проект. Кроме того, если эти библиотеки не являются оформленными Composer-пакетами, то нужно указать некоторую дополнительную информацию об устанавливаемой библиотеке (например, описать правила автозагрузки классов и функций для autoload.php).

Composer.json, как вы догадались, имеет формат данных JSON. На вопрос "почему именно JSON? " разработчики Composer отвечают "Потому что. Просто примите это. ".

Нам нужно описать один js-объект, в котором будут находиться все инструкции. Первая и самая главная инструкция: require .

Подключаем пакеты с сайта packagist.org
{ "require": { "php":">=5.3.0", "silex/silex":"dev-master", "twig/twig":">=1.8,<2.0-dev" } }
Здесь я описал зависимость проекта от PHP версии 5.3.0 и выше, от silex (микрофреймворк) и от twig (шаблонизатор). Silex и Twig доступны в виде Composer-пакетов на сайте packagist.org, поэтому дополнительных настроек не требуют. Замечу, что Silex в свою очередь зависит ещё от нескольких пакетов - все они будут скачены и установлены автоматически.

Имя пакета состоит из двух частей разделёных косой чертой: названия поставщика (vendor name) и названия библиотеки . Названием поставщика зачастую является ник автора или имя компании. Иногда, название поставщика совпадает с именем самой библиотеки или фреймворка.

Для каждого пакета обязательно нужно указать номер версии. Это может быть бранч в репозитории, например, «dev-master» - приставка dev сигнализирует, что это имя бранча, а сам бранч соответсвенно называется «master». Для mercurial репозитория аналогичная запись будет выглядеть как «dev-default». В качестве номера версии можно указать и более сложные правила, используя операторы сравнения. Кстати, если вы скачиваете код из удалённого репозитория, то Composer сканирует теги и имена веток в этом репозитории на предмет чего-то похожего на номера версий, например тег «v1.2.3» будет использован как указатель на версию 1.2.3.

Подключаем на собственный Compsoer-пакет
Далее, подключим наш собственный пакет SuperLogger, который правильно оформлен, но опубликован не на packagist.org, а на github:
{ "require": { "php":">=5.3.0", "silex/silex":"dev-master", "twig/twig":">=1.8,<2.0-dev", "mycompany/superlogger":"dev-master" }, "repositories":[ { "type":"git", "url":"http://github.com/pqr/superlogger" } ] }
Чтобы Composer знал где искать пакет «mycompany/superlogger», мы добавили массив repositories со ссылкой на соотвествующий github репозиторий. Обратим внимание, что записи в массиве repositories напрямую никак не связаны с блоком require - между пакетами и репозиториями не указано соответствие. На сколько я понял, Composer ищет все требуемые пакеты во всех указанных репозиториях (в т.ч. на сайте packagist.org) и скачивает найденные совпадения по каким-то внутренним приоритетам. Более глубоко я в этом моменте ещё не разбирался, поправьте меня, если кто-то знает детали.
Подключаем произвольный git репозиторий
Теперь подключим нашу легаси-библиотеку superlib, которая лежит на github, но не является оформленным Composer-пакетом, т.к. она очень старая.
{ "require":{ "php":">=5.3.0", "silex/silex":"dev-master", "twig/twig":">=1.8,<2.0-dev", "mycompany/superlogger":"dev-master", "pqr/superlib":"1.2.3" }, "repositories":[ { "type":"git", "url":"http://github.com/pqr/superlogger" }, { "type":"package", "package":{ "name":"pqr/superlib", "version":"1.2.3", "source":{ "type":"git", "url":"http://github.com/pqr/superlib", "reference":"master" }, "autoload":{ "classmap":["timer.php"], "files":["lib_functions.php"] } } } ] }
В массив repositories добавился объект, который целиком описывает пакет pqr/superlib. По сути, это то описание, которое должен был бы сделать автор библиотеки и положить его внутри своего репозитория. Но по условиям задачи, superlib не является оформленным Composer-пакетом, поэтому нам пришлось создать его описание в рамках Super Hello World проекта. Аналогичным образом можно подключить любую другую библиотеку, в т.ч. простой zip файл.
Подключаем простой zip файл
Например, вот как могло бы выглядеть описание зависимости от шаблонизатора Smarty, распространяемого в виде zip файла с исходниками в svn:
{ "repositories":[ { "type":"package", "package":{ "name":"smarty/smarty", "version":"3.1.7", "dist":{ "url":"http://www.smarty.net/files/Smarty-3.1.7.zip", "type":"zip" }, "source":{ "url":"http://smarty-php.googlecode.com/svn/", "type":"svn", "reference":"tags/Smarty_3_1_7/distribution/" } } } ], "require":{ "smarty/smarty":"3.1.*" } }
Инстукция autoload
Вернёмся к нашему проекту.
Описывая «pqr/superlib», мы добавили инструкцию autoload . В ней указан файл timer.php, в котором будущий автозагрузчик будет искать классы и указали файл с функциями lib_functions.php - он будет принудительно подключаться в начале autoload.php.

Итак, наш проект состоит из:

  • в корне лежит файл composer.json;
  • в корне находятся директории web и views;
  • внутри директории web лежит файл с «бизнес-логикой» нашего приложения: index.php;
  • внутри директории views лежит файл шаблона layout.twig;
  • дополнительно, в папку web я положил.htaccess (для apache) и web.config (для IIS 7.5) с правилами mod_rewrite/url rewriter - непосредсвенно к настройке Composer они отношения не имеют.
Всё готово к запуску.
Запускаем composer install
php composer.phar install
Composer клонирует репозитории и распаковывает их на нужной версии в директорию vendor , которую он сам создаёт в корне проекта. После распаковки, в директории vendor мы найдём:
  • файл autoload.php
  • служебные директории.composer и composer
  • pimple - пакет, который подтянулся вместе с микрофреймворком Silex
  • silex - сам микрофреймворк, его мы явным образом затребовали при описании зависимостей
  • symfony - некоторые компоненты из Symfony 2, которые требуются для работы Silex
  • twig - шаблонизатор, который мы также явно запросили
  • mycompany - внутри этой директории будет находиться репозиторий superlogger скаченный с github
  • pqr - внутри этой директории будет находиться репозиторий superlib, также скаченный с github
Остаётся только подключить autoload.php в начале файла web/index.php (require "../vendor/autoload.php") и все библиотеки и функции будут доступны!
Как создать собственный Composer пакет?
В этом проекте мы использовали Composer с точки зрения потребителя библиотек. А как самому создать Composer пакет, чтобы любой другой человек смог им воспользоваться?

На самом деле, один из таких пакетов я создал, когда подготавливал примеры для этой статьи. В корне репозитория superlogger лежит файл composer.json похожей структуры, который описывает сам пакет и его зависимости (в случае с superlogger зависимостей нет). Другие примеры: репозитории silex и twig, которые скачались в папку vendor - все они имеют файл composer.json в корне - смотрите, изучайте!

И, конечно, не забывайте про документацию на официальном сайте getcomposer.org/doc/ .
Эту тему я оставлю вам для самостоятельной проработки.

Подведём итоги

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

Самое время попробовать!

  1. Скачате Composer (getcomposer.org/download/)
  2. Скачате superhelloworld (git clone git://github.com/pqr/superhelloworld.git)
  3. Установите зависимости (cd superhelloworld && php composer.phar install)
  4. Изучите появившуюся папку vendor и сгенерированный autoload.php
  5. Используте Composer в своих проектах
  6. PROFIT!!!

На добавку пара ссылок

Посредством визуального редактора 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