Установка Propel в наш проект через Composer
Подтянем в наш проект ORM Propel2 с помощью Composer. Рассмотрим смежные пакеты, которые нужны для Propel2.
Установка глобально Composer на Ubuntu 14.04 описан здесь.
Первым этапом ознакомления станет
Главным источником подключаемых библиотек и готовых решений будет
composer.json:
composer.json - основной файл, в котором будут прописываться нужные библиотеки, правила их установок и инные тонкие настройки.
Пример composer.json:
{
"require": {
"php":">=7.0"
}
}
Данный пример будет проверять соответствие нашей версии php, с требуемой в файле. Так как у меня php 5.6, то выдаст ошибку.
Problem 1
- This package requires php >=7.0 but your PHP version (5.6.36) does not satisfy that requirement.
composer.lock:
composer.lock - файл инсталируемых версий. При install создается если не создан, но не обновляется при повторном install. В нем хранятся версии используемых библиотек. Чтобы обновить версии, то используется update.
Рассмотрим основные команды для начала работыс composer:
1. Init - создает composer.json:
В корне сайта (например /var/www/proj.loc), командой init, требуется создать composer.json.
composer init
После ввода init, будет требоваться ввод данных по проекту. После завершения ввода создастся файл composer.json.
Создаст файл со стандартной инфой о проекте, пользователе, но с пустым перечнем подключаемых библиотек.
{
"name": "username/proj.loc",
"description": "Description",
"type": "proj.loc",
"license": "free",
"authors": [
{
"name": "username",
"email": "ad@min.loc"
}
],
"require": {}
}
2. Require - добавление нового пакета из packegist.org в composer.json:
Находимся в директории где находится нужный composer.json (в моем случае /var/www/proj.loc).
composer require symfony/var-dumper
Данная команда подтянет symfony/var-dumper, его смежные используемые пакеты и сделает install. Данный пакет развернется в стандартной директории проекта в папке vendor и перегенерирует файл autoload.php, который отвечает за подключение всех установленных библиотек.
Но так же присутствует возможность добавлять нужные пакеты вручную, и делать install или update.
Пример:
{
"name": "username/proj.loc",
"description": "Description",
"type": "proj.loc",
"license": "free",
"authors": [
{
"name": "userbame",
"email": "ad@min.loc"
}
],
"require": {
"symfony/var-dumper": "^3.4"
}
}
3. Install - в зависимости от блока require в composer.json делает установку всех прописанных в нем пакетов, полтягивает связи используемые этими пакетами.
composer install
После этого создается папка vendor возле файла composer.json и в нее подтягиваются пакеты. Если composer.lock не создан, то создастся с версиями пакетов на момент инсталяции. Если повторно сделать install, то composer.lock не перегенерируется, а версии будут подтянуты те, что прописаны в сomposer.lock
4. Update - обновляет версии пакетов в файле composer.lock. Не трогает версии в composer.json.
composer update
В отличии от install - подтягивает последние версии нужных библиотек и вписует их в composer.lock, и уже при следующем install будут браться новые версии у всех, если присутствует composer.lock (так как он в приоритете).
С этой командой следует быть осторожным, так как могут подтянуться обновления, в которых используемые вами методы вызываются иначе и тем самым можно завалить сборку.
Полный перечень команд можно найти
Подтянем в наш проект ORM Propel2 с помощью Composer. Рассмотрим смежные пакеты, которые нужны для Propel2.
Разобравшись что такое Compser и для чего он нужен, следует разобраться как его использовать на сайте. В статье рассмотрим подключение библиотек подтянутых через Composer.