Composer phar install linux

Introduction#

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

Dependency management#

Composer is not a package manager in the same sense as Yum or Apt are. Yes, it deals with «packages» or libraries, but it manages them on a per-project basis, installing them in a directory (e.g. vendor ) inside your project. By default, it does not install anything globally. Thus, it is a dependency manager. It does however support a «global» project for convenience via the global command.

This idea is not new and Composer is strongly inspired by node’s npm and ruby’s bundler.

  1. You have a project that depends on a number of libraries.
  2. Some of those libraries depend on other libraries.
  1. Enables you to declare the libraries you depend on.
  2. Finds out which versions of which packages can and need to be installed, and installs them (meaning it downloads them into your project).
  3. You can update all your dependencies in one command.

See the Basic usage chapter for more details on declaring dependencies.

System Requirements#

Composer requires PHP 5.3.2+ to run. A few sensitive php settings and compile flags are also required, but when using the installer you will be warned about any incompatibilities.

To install packages from sources instead of plain zip archives, you will need git, svn, fossil or hg depending on how the package is version-controlled.

Composer is multi-platform and we strive to make it run equally well on Windows, Linux and macOS.

Installation — Linux / Unix / macOS#

Downloading the Composer Executable#

Composer offers a convenient installer that you can execute directly from the command line. Feel free to download this file or review it on GitHub if you wish to know more about the inner workings of the installer. The source is plain PHP.

There are in short, two ways to install Composer. Locally as part of your project, or globally as a system wide executable.

Locally#

To install Composer locally, run the installer in your project directory. See the Download page for instructions.

The installer will check a few PHP settings and then download composer.phar to your working directory. This file is the Composer binary. It is a PHAR (PHP archive), which is an archive format for PHP which can be run on the command line, amongst other things.

Now run php composer.phar in order to run Composer.

You can install Composer to a specific directory by using the —install-dir option and additionally (re)name it as well using the —filename option. When running the installer when following the Download page instructions add the following parameters:

Now run php bin/composer in order to run Composer.

Globally#

You can place the Composer PHAR anywhere you wish. If you put it in a directory that is part of your PATH , you can access it globally. On Unix systems you can even make it executable and invoke it without directly using the php interpreter.

After running the installer following the Download page instructions you can run this to move composer.phar to a directory that is in your path:

Читайте также:  Windows 10 заблокирована флешка

If you like to install it only for your user and avoid requiring root permissions, you can use

/.local/bin instead which is available by default on some Linux distributions.

Note: If the above fails due to permissions, you may need to run it again with sudo.

Note: On some versions of macOS the /usr directory does not exist by default. If you receive the error «/usr/local/bin/composer: No such file or directory» then you must create the directory manually before proceeding: mkdir -p /usr/local/bin .

Note: For information on changing your PATH, please read the Wikipedia article and/or use your search engine of choice.

Now run composer in order to run Composer instead of php composer.phar .

Installation — Windows#

Using the Installer#

This is the easiest way to get Composer set up on your machine.

Download and run Composer-Setup.exe. It will install the latest Composer version and set up your PATH so that you can call composer from any directory in your command line.

Note: Close your current terminal. Test usage with a new terminal: This is important since the PATH only gets loaded when the terminal starts.

Manual Installation#

Change to a directory on your PATH and run the installer following the Download page instructions to download composer.phar .

Create a new composer.bat file alongside composer.phar :

Add the directory to your PATH environment variable if it isn’t already. For information on changing your PATH variable, please see this article and/or use your search engine of choice.

Close your current terminal. Test usage with a new terminal:

Using Composer#

Now that you’ve installed Composer, you are ready to use it! Head on over to the next chapter for a short demonstration.

Found a typo? Something is wrong in this documentation? Fork and edit it!

Composer and all content on this site are released under the MIT license.

Источник

Composer. Установка под Linux. Настрока автозагрузки

Лаконичная заметка по установке, обновлению и настройке менеджера зависимостей под PHP — Composer. Я забегу немного на перед и порекомендую устанавливать composer на глобальном уровне. В дальнейшем будет на много проще работать с ним. Обновления будут разовыми для всех проектов (проблем с несовместимостью не было еще ни разу), не нужно возиться с правами на исполнение и алиасами.

Установка composer

  1. Локальная установка composer.phar в текущий каталог проекта:
  2. Глобальная установка/обновление composer на уровне системы:
Внимание!

Если вы прописывали alias на php composer.phar в

Удалите его!
Иначе вы получите ошибку: Не найден файл composer.phar при запуске команды composer .

Подключаем файл автозагрузки composer в проект (в случае, если вы не используете фреймворк):

Обновление composer

После обновления вы увидите сообщение о том, как откатится до предыдущей версии:

Примечание:

Для упрощения доступа к локально установленному Composer можно использовать следующие aliases :

Чтобы эти сокращения были доступны после перезагрузки — добавьте их в файл

/.bashrc и выполните:

Также рекомендую обратить внимание на расширение oh-my-zsh для оболочки ZSH. Очень хорошо решает вопрос дополнения консольных команд разных фреймворков, утилит и библиотек.

Управление зависимостями

Для загрузки и обновления всех зависимостей, указанных в сomposer.json выполните:

Для загрузки последних используемых зависимостей из файла сomposer.lock запустите:

Обновление определенного пакета до указанной версии используйте require:

Внимание!

При ошибке composer exceeded the timeout of 300 seconds необходимо увеличить время выполнения скрипта:

Настройка composer.json

Описание основных настроек файла конфигурации composer.json:

Версии пакетов

Маски, применимые для указания версии пакета:

Советы
  1. Не устанавливайте жесткие ограничения, если на то нет обоснованных причин — это упростит обновление зависимостей в будущем. Но, при этом старайтесь указывать максимально доступную верхнюю границу версии.
  2. Если позволяет ситуация используйте * вместо dev-master .
  3. Не указывайте ограничение версии комбинируя условия сравнения и маски (wildcards), например: >=2.* — сomposer может не понять какую версию вы хотите.
Читайте также:  Yandex linux alt linux

Автозагрузка

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

Files

Подключение файлов перед инициализацией приложения

Classmap

Загрузка классов из каталога и загрузка отдельных конкретных классов, которые расположены в каталогах без соблюдения стандартов PSR*.

Этот стандарт требует указание пути к родительскому каталогу пакета (не к пакету, а именно к родительской директории в которой лежит каталог с библиотекой). Описание стандарта: http://www.php-fig.org/psr/psr-0/. Например, для PSR-0 «MyPackage»: «library/» файловая структура будет такой:

В этом стандарте для Namespace\\ указывается путь непосредственно к каталогу с пакетом!

Внимание!

Стандарты PSR-0 и PSR-4 чувствительны к регистру! Загрузчик не найдет namespace Model если классы расположены в подкаталоге model/.

Примеры

Пример использования loader‘а composer для авто подключения классов:

Указать каталог с классами без namespace (PSR-0):

Указать путь к родительской директории пакета:

Указать каталог в котором расположен пакет (PSR-4):

Указать соответствие между Namespace\Class и файлом:

Autoload в composer.json

Для управления автозагрузкой через composer.json используйте секцию конфига — autoload :

Описание секции autoload:

Пример кода для автозагрузки массива Namespace:

#composer, #autoload, #spl, #psr-0, #psr-4, #classmap

Источник

Composer для самых маленьких

Когда я первый раз разбирался с composer, я набросал для себя маленькую шпаргалку и теперь, спустя некоторое время представляю её на суд общественности в несколько доработанном виде.
Данная публикация актуальная для тех, кто в первый раз столкнулся с незаменимым менеджером пакетов для PHP.

Итак, Composer — менеджер пакетов для PHP.

Для чего нужен Composer и простейший пример его использования

Возьмем для примера этот проект
Если в двух словах: то это набор скриптов для работы в VK API
Соответственно, для работы этих скриптов нужно несколько библиотек
Библиотеки перечислены в файле composer.json — ключевой файл при работе с composer

В этом проекте используется 5 библиотек. Соответственно, если разработчик решит опубликовать этот проект на github, то ему достаточно закинуть в репу саму папку со скриптами и составить composer.json, в котором будут описаны библиотеки, необходимые для работы этого проекта. Простота очевидна: в репу не нужно вслед за файлами прицепом тащить все нужные библиотеки. Занимает меньше места, проще распространять проект.

В папке scripts лежат непосредственно скрипты проекта, для работы которых и требуются эти 5 пакетов.

Запускаем установку пакетов:

После установки появляется папка vendor, куда складываются установленные пакеты и формируется файл autoload.php

Этот файл подключаем к проекту и всё — библиотеки подключены, можно спокойно с ними работать.

Простота очевидна: не нужно скачивать и подключать библиотеки и их зависимости самостоятельно, composer всё сделает за Вас. И вся эта пачка подключается одним единственным файлом autoload.php
Все пакеты, которые лежат в vendor, добавляются в автозагрузчик. При этом composer опирается на файлы composer.json, которые должны быть у каждого пакета. Формирование composer.json пакета — это задача разработчика пакета, от потребителя пакета требуется лишь описать в composer.json проекта, какие пакеты нужно подключить.

Это пример composer.json проекта:

Это пример composer.json пакета:

В секции require прописана зависимость этого пакета — библиотека guzzle http, необходимая для работы библиотеки getjump/vk. В данном случае, т.е. с точки зрения потребителя пакетов, всевозможные зависимости пакетов — это не наша «забота», с зависимостями composer разберётся сам.

Пространство имён пакета прописано в секции autoload

getjump\\Vk\\ — наименование пространства имён
src/getjump/Vk/ — директория, в которой лежат файлы с классами пакета
Работа с этой библиотекой в проекте:

Core и Friends — это классы библиотеки, которые разложены и прописаны в папке src в соответствии со стандартом PSR-4. Опять же формирование структуры пакета — это работа создателя пакета.
Нам, как потребителю пакета, достаточно прописать в наш проект
include ‘../vendor/autoload.php’;
и все эти классы и пространства имён будут отлично работать.
При этом нам не нужно заморачиваться и писать автозагрузчик. Composer это сделает сам при выполнении команды install.

Читайте также:  Canoscan 8600f драйвер windows 10

Установка

Установка Composer глобально

1) Для начала нужно что бы путь к директории с интерпретатором PHP был прописан в переменной окружения path.
Проверим, так ли это:
php –version

Если вывод получился типа такого, то этот шаг можно пропустить
На примере Windows 7
Система -> Дополнительные параметры системы -> Дополнительно -> Переменные среды

Далее нас будет интересовать переменная path:

Вписываем путь к интерпретатору

*С давних времён у меня на компьютере лежит сборка xampp, сама сборка здесь нафиг не нужна, а вот интерпретатор с неё вполне подойдёт (версия PHP – 5.6).

2) Перезапускаем терминал.
Создаём директорию и ставим composer (я ставил на диск D)
D:
cd /
mkdir bin
cd bin
php -r «readfile(‘https://getcomposer.org/installer’);» | php
echo php «%

3) Добавим в переменную окружения path путь к composer.bat, например для D:\bin должно получиться:

Дополнительно можно добавить в path
D:\Users\%userName%\AppData\Roaming\Composer\vendor\bin\
для того, что-бы было удобнее использовать инструменты, глобально установленные через Composer.
(У меня папка Users располагается на диске D, а на C создан симлинк на неё).
Всё, composer установлен и полностью готов к работе.

Ещё: при установке можно словить ошибку
[RuntimeException]
The APPDATA or COMPOSER_HOME environment variable must be set for composer to run correctly
Решение нашлось здесь github.com/composer/composer/issues/2033
Добавляем переменную APPDATA со значением D:\Users\GSU\AppData\Roaming

Установка Composer локально

Есть вариант ещё поставить composer локально, но в большинстве случаев в этом нет явной необходимости.
Однако тут установка ещё проще.
Т.к. программа глобально не установлена, нужен загрузочный файл(мини-программа composer), для его загрузки пишем команду:
php -r «readfile(‘https://getcomposer.org/installer’);» | php
теперь в директории проекта появился файл composer.phar
Всё, можно использовать.
php composer.phar require [название пакета]

Отличия глобальной и локальной установки

Команды запускаются по разному при локальной и глобальной установках:

Например:
Локально: php composer.phar require silex/silex

1.1
Глобально: composer require silex/silex

При локальной установке нужно каждый раз скачивать установочный файл в папку текущего проекта
php -r «readfile(‘https://getcomposer.org/installer’);» | php

При глобальной установке этот файл не нужен. Composer запускается при любой текущей директории.

Команды

install — установка пакетов, прописанных в composer.json
update – обновление пакетов
dumpautoload — пересборка автозагрузчика
require somepackage/somepackage:someversion — добавление нового пакета (по умолчанию пакеты ставятся из оф. репозитория). При установке пакет прописывается в composer.json
update —lock — обновление файла блокировки composer.lock
config —global cache-files-maxsize «2048MiB» — пример изменения параметра конфигурации
—profile — добавление этого параметра к любой команде включит показ времени выполнения и объёма использованной памяти
—verbose — подробная инфомация о выполняемой операции
show —installed — список установленных пакетов с описанием каждого
show —platform — сведения о PHP
—dry-run — репетиция выполнения команды. Может добавляться к командам install и update. Эмулирует выполнение команды без её непосредственного выполнения. Необходим для того, чтобы проверить пройдёт ли установка пакетов и зависимостей успешно.
remove — удаление пакета. Точная противоположность require

Синтаксис composer.json

Именование пакетов и варианты описания пакетов

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

Если пакет оформлен в соответствии со стандартом PSR-4, но опубликован не на packagist.org, а на github, то вместо версии пакета нужно прописать ветку и репозиторий для этого пакета:

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

Pqr/superlib — эта та самая «неправильная» библиотека.

В секции repositories для неё пишем такую конструкцию

Ключевой момент — секция autoload, здесь указываем нужные нам файлы с классами и функциями.
Структура библиотеки:

Соответственно в проекте вызов getCurrentTime() будет выглядеть примерно так:
$timer = new pqr\superlib\TimerClass;
echo $timer->getCurrentTime();

Источник

Оцените статью