Upgrade guides for composer 1.x to 2.0

Welcome to the KompoZer l10n project!

For the new contributors to this project (and for the former ones), please mind to contact:

  • the KompoZer l10n mailing list: http://ml.kompozer.net/listinfo/l10n
  • your respective Mozilla localization team, to coordinate and maybe get some help — as KompoZer should merge with the SeaMonkey Project in the /l10n Mozilla repository.

You can also contact us on the #kompozer IRC chan.

We will make once a day the pushes with your modifications:

/l10n/compare-locales
lists of all strings that are not translated yet
/l10n/langpacks
daily snapshot of the langpacks, for testing purposes
/l10n/jars
daily snapshot of the locale archives, for those who don’t use the Mercurial repository (see below)

Composer Versions vs VCS Versions#

Because Composer is heavily geared toward utilizing version control systems
like git, the term «version» can be a little ambiguous. In the sense of a
version control system, a «version» is a specific set of files that contain
specific data. In git terminology, this is a «ref», or a specific commit,
which may be represented by a branch HEAD or a tag. When you check out that
version in your VCS — for example, tag or commit —, you’re
asking for a single, known set of files, and you always get the same files back.

In Composer, what’s often referred to casually as a version — that is,
the string that follows the package name in a require line (e.g., or
) — is actually more specifically a version constraint. Composer
uses version constraints to figure out which refs in a VCS it should be
checking out (or to verify that a given library is acceptable in
the case of a statically-maintained library with a specification
in ).

Installing dependencies#

To install the defined dependencies for your project, run the
command.

When you run this command, one of two things may happen:

Installing without

If you have never run the command before and there is also no file present,
Composer resolves all dependencies listed in your file and downloads
the latest version of their files into the directory in your project. (The
directory is the conventional location for all third-party code in a project). In our
example from above, you would end up with the Monolog source files in
. If Monolog listed any dependencies, those would also be in
folders under .

When Composer has finished installing, it writes all of the packages and the exact versions
of them that it downloaded to the file, locking the project to those specific
versions. You should commit the file to your project repo so that all people
working on the project are locked to the same versions of dependencies (more below).

Installing with

This brings us to the second scenario. If there is already a file as well as a
file when you run , it means either you ran the
command before, or someone else on the project ran the command and
committed the file to the project (which is good).

Either way, running when a file is present resolves and installs
all dependencies that you listed in , but Composer uses the exact versions listed
in to ensure that the package versions are consistent for everyone
working on your project. As a result you will have all dependencies requested by your
file, but they may not all be at the very latest available versions
(some of the dependencies listed in the file may have released newer versions since
the file was created). This is by design, it ensures that your project does not break because of
unexpected changes in dependencies.

Commit your file to version control

Committing this file to VC is important because it will cause anyone who sets
up the project to use the exact same
versions of the dependencies that you are using. Your CI server, production
machines, other developers in your team, everything and everyone runs on the
same dependencies, which mitigates the potential for bugs affecting only some
parts of the deployments. Even if you develop alone, in six months when
reinstalling the project you can feel confident the dependencies installed are
still working even if your dependencies released many new versions since then.
(See note below about using the command.)

Install

You can grab a copy of clue/phar-composer in either of the following ways.

This project aims to run on any platform and thus does not require any PHP
extensions and supports running on legacy PHP 5.3 through current PHP 7+ and
HHVM.
It’s highly recommended to use PHP 7+ for this project.

As a phar (recommended)

You can simply download a pre-compiled and ready-to-use version as a Phar
to any directory.
You can simply download the latest file from our
releases page.
The latest release can
always be downloaded like this:

$ curl -JOL https://clue.engineering/phar-composer-latest.phar

That’s it already. Once downloaded, you can verify everything works by running this:

$ cd ~/Downloads
$ php phar-composer.phar --version

The above usage examples assume you’ve installed phar-composer system-wide to your $PATH (recommended),
so you have the following options:

  1. Only use phar-composer locally and adjust the usage examples: So instead of
    running , you have to type .

  2. Use phar-composer’s command to install itself to your $PATH by running:

    $ php phar-composer.phar install clue/phar-composer
  3. Or you can manually make the executable and move it to your $PATH by running:

$ chmod 755 phar-composer.phar
$ sudo mv phar-composer.phar /usr/local/bin/phar-composer

If you have installed phar-composer system-wide, you can now verify everything works by running:

$ phar-composer --version

There’s no separate procedure, simply download the latest release again
and overwrite the existing phar.

Again, if you have already installed phar-composer system-wide, updating is as easy as
running a self-installation like this:

$ phar-composer install clue/phar-composer

Installation using Composer

Alternatively, you can also install phar-composer as part of your development dependencies.
You will likely want to use the section to exclude phar-composer in your production environment.

You can either modify your manually or run the following command to include the latest tagged release:

$ composer require --dev clue/phar-composer

Now you should be able to invoke the following command in your project root:

$ ./vendor/bin/phar-composer --version

To update to the latest release, just run .

Installing Composer

This section will show you how to install Composer on shared hosting and operating systems like Linux, macOS, and Windows.

1. Installing Composer on Shared Hosting, Linux, or macOS

The commands to install Composer on shared hosting, Linux (PC or server), and macOS are the same.

Note that Composer comes pre-installed on Hostinger’s Premium and Business shared hosting plans. If you are using one of them, skip this part. However, if you find out that it’s outdated, you can update Composer by running this command:

php composer.phar self-update

Follow this instruction to know how to install Composer on your system:

  1. Connect to your hosting account using SSH connection. You can learn how to do so from this SSH tutorial.
  2. Download Composer from the official website using the following command:
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
  3. Verify the installer’s signature (SHA-384) to ensure that the installer file is not corrupt. Enter:
    php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

    The long string of characters in the above command (‘e0012edf…’) is the installer’s signature. It changes every time a new version of Composer comes out. Therefore, be sure to fetch the latest SHA-384 from this page.

  4. Once it’s done, you may install Composer locally or globally. Local installation means that the dependency manager will be stored in your current directory, and you have to specify the path before executing corresponding commands. Meanwhile, global installation allows you to run Composer from anywhere on your system by storing it in /usr/local/bin directory. Here is how to complete both methods:
    • Local installation:
      php composer-setup.php
    • Global installation:
      php composer-setup.php --install-dir=/usr/local/bin --filename=composer

      You will get this result:

      All settings correct for using Composer
      Downloading...
      
      Composer (version 1.10.5) successfully installed to: /usr/local/bin/composer
  5. Once it’s done, remove the installer:
    php -r "unlink('composer-setup.php');"
  6. Test the Composer installation:
    composer

    The command line will return with this result:

       ______
      / ____/___ ____ ___ ____ ____ ________ _____
     / / / __ / __ `__ / __ / __ / ___/ _ / ___/
    / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
    ____/____/_/ /_/ /_/ .___/____/____/___/_/
                      /_/
    
    Composer version 1.10.5 2020-02-12 16:20:11

2. Installing Composer on Windows

Getting started with Composer on a Windows machine is a bit different. No command-line instructions are necessary for downloading and installing the software.

Simply follow these steps:

  1. Install PHP on your computer. We recommend using XAMPP for this purpose, as the process is straightforward and you can complete it in a few minutes.
  2. Once XAMPP is installed, download the latest version of Composer.
  3. Run Composer installation wizard. When it asks you to activate the developer mode, ignore it and continue with the installation process.
  4. Another window will pop up and ask you to locate the PHP command line. By default, it is in C:/xampp/php/php.exe. After specifying the location, click Next.
  5. You will be prompted with Proxy Settings. Leave the box unchecked and skip this part by hitting Next. Then, on the last window, click Install.
  6. After completing the installation, open the command prompt. Press CTRL +R, type in “cmd,” and click OK.
  7. Enter the following command:
    composer

Great job! You now have Composer installed on your Windows computer. The installer will automatically add Composer to your PATH variable. Now you can open the command prompt and run the software from anywhere.

Основные команды Composer

Разберем основные команды Composer для начинающих.

Если вы используете «composer.phar» локально, то приведённые команды необходимо соответственно изменить в зависимости от того как настроено ваше окружение.

Например, если файл «composer.phar» находится в текущем каталоге и интерпретатор php доступен без указания пути к нему, то установка пакета будет осуществляться так:

Установка пакета

Установка пакета через Composer осуществляется посредством выполнения следующей команды:

vendor — это имя поставщика php пакета, а package — это его название.

Например, добавление в проект пакета twig через composer будет осуществляться так:

Команда require не только загрузит требуемую библиотеку в проект, но и пропишет её ещё в файле «composer.json», т.е. обновит его. Если устанавливаемый пакет зависит от других библиотек, то они также будут установлены или обновлены. Кроме этого ещё будет обновлён файл «composer.lock».

Установка всех пакетов в проект

Установка сразу всех пакетов в проект осуществляется посредством команды:

Эта команда работает следующим образом:

  • проверяет, имеется ли файл «composer.lock»;
  • если файл «composer.lock» существует, то устанавливает версии, указанные в нём;
  • если файла «composer.lock» нет, то разрешает зависимости, описанные в файле «composer.json», создаёт файл «composer.lock» и устанавливает зависимости.

Обновление зависимостей

Команда для обновления установленных библиотек:

Эта команда обновит все зависимости установленные в проекте до последних версий (в соответствии с «composer.json») и файл «composer.lock».

Если необходимо обновить не все пакеты, а один или несколько, то их необходимо перечислить через пробел.

Команда для обновления одной библиотеки:

Удаление пакета

Команда Composer для удаления пакета из проекта:

Для удаления одновременно нескольких пакетов можете их перечислить через пробел:

Создать новый проект

Создание нового проекта из указанного пакета в текущую директорию выполняется так:

Создание нового проекта в указанную директорию выполняется так:

Получение подробной справки по команде

Вывод подробной справки по команде:

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

Custom Install Paths

If you are requiring a package which has one of the supported types you can
override the install path with the following extra in your :

{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": ["shama/ftp", "vendor/package"]
        }
    }
}

You can determine a non-standard installation path for all packages of a
particular type with the prefix. The type must be one of types
listed on the supported list above.

{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": 
        }
    }
}

You can also install all packages by a particular vendor to a custom
installation path by using the prefix. The path will still
only apply to packages by the vendor with a type in the supported list.

{
    "extra": {
        "installer-paths": {
            "your/custom/path/{$name}/": 
        }
    }
}

These would use your custom path for each of the matching packages. The
available variables to use in your paths are: , , .

Note: If multiple custom installer-paths match for the same package, the first
one which matches will be used.

Резюме

"require": {
  "vendor/package": "1.3.2", // exactly 1.3.2

  // >, <, >=, <= | укажите верхние / нижние границы
  "vendor/package": ">=1.3.2", // все, что выше или равно 1.3.2
  "vendor/package": "<1.3.2",  // ниже 1.3.2

  // * | подстановочный знак
  "vendor/package": "1.3.*", // >=1.3.0 <1.4.0

  // ~ | позволяет быть выше последней указанной цифре
  "vendor/package": "~1.3.2", // >=1.3.2 <1.4.0
  "vendor/package": "~1.3", // >=1.3.0 <2.0.0

  // ^ | не допускает критических изменений
  "vendor/package": "^1.3.2", // >=1.3.2 <2.0.0
  "vendor/package": "^0.3.2", // >=0.3.2 <0.4.0 // за исключением тех случаев, когда основная версия 0
}

Scripts

  • ParameterHandler — Allows you to manage your ignored parameters when running a composer install or update.
  • Tooly — Manage needed PHAR files in your project . Every PHAR file will be saved in the composer binary directory. Optional with GPG verification for every PHAR.
  • Melody — One-file composer scripts.
  • Composer-Travis-Lint — Allows you to lint the Travis CI configuration file ().
  • Composer-Multitest — Enables you to run a Composer script against multiple, locally installed PHP versions, which are managed by PHPBrew or phpenv.
  • ScriptsDev — Enables you to use a section, which triggers scripts only in dev mode.
  • PhantomJS-Installer — A Composer Package which installs the PhantomJS binary (Linux, Windows, Mac) into /bin of your project.
  • Composer-Vendor-Cleanup — A script which removes whitelisted unnecessary files (like tests/docs etc.) from the vendor directory.
  • Composer Substitution Plugin — A Composer plugin replacing placeholders in the section by dynamic values.

Шаг 4 — Включение скрипта автозагрузки

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

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

Давайте попробуем сделать это в нашем приложении. Создайте файл и откройте его в текстовом редакторе:

Добавьте следующий код, который будет подключать файл , загружать зависимость и использовать ее для создания понятной человеку части URL-адреса:

test.php

Сохраните файл и закройте редактор.

Запустите скрипт:

Вы должны получить вывод .

Зависимости нуждаются в обновлениях при выходе новых версий, так что давайте рассмотрим, как решить эту проблему.

Stability Constraints#

If you are using a constraint that does not explicitly define a stability,
Composer will default internally to or , depending on the
operator(s) used. This happens transparently.

If you wish to explicitly consider only the stable release in the comparison,
add the suffix .

Examples:

Constraint Internally

To allow various stabilities without enforcing them at the constraint level
however, you may use like
(e.g. ) to let composer know that a given package
can be installed in a different stability than your default minimum-stability
setting. All available stability flags are listed on the minimum-stability
section of the .

Установка Composer

Прежде, чем что-либо делать, утилиту надо установить. Инсталлировать Composer можно глобально для всей операционной системы или только в опредёленную папку. Для глобальной установки в Ubuntu используйте команду:

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

Затем скачайте последнюю версию утилиты такой командой:

Установка Composer  выполняется командой:

После установки в директории появится файл Сomposer.phar, который и следует запускать для работы с утилитой. В Windows вы можете установить Composer только таким способом. Дальше в статье я буду считать, что утилита установлена глобально в системе, но дела это не меняет, просто будет отличаться имя исполняемого файла:

$ php ./composer.phar команды

Важно отметить, что для работы последней версии утилиты необходимо, чтобы в вашей системе была установлена версия PHP не ниже 7.0. Иначе утилита установится, но во время запуска будут выдаваться ошибки

Если вы используете панель управления, в которой есть несколько версий PHP, то нужно передать путь к утилите бинарному файлу PHP нужной версии, например:

$ /opt/php7.0/bin/php7.0 ./composer.phar команды

Путь к бинарному файлу будет отличаться в зависимости от способа установки PHP, панели и версии интерпретатора.

Версия утилиты, установленная из официального сайта, будет, как правило? намного свежее, чем из репозиториев:

Чтобы удалить Composer, достаточно удалить его файлы из папки, куда он был установлен. Чтобы обновить Composer до последней версии, выполните:

Теперь пора переходить к примерам работы с Composer.

composer.json: Project setup#

To start using Composer in your project, all you need is a
file. This file describes the dependencies of your project and may contain
other metadata as well. It typically should go in the top-most directory of
your project/VCS repository. You can technically run Composer anywhere but
if you want to publish a package to Packagist.org, it will have to be able
to find the file at the top of your VCS repository.

The key

The first (and often only) thing you specify in is the
key. You are telling Composer which
packages your project depends on.

As you can see, takes an object that maps
package names (e.g. ) to version constraints (e.g.
).

Composer uses this information to search for the right set of files in package
«repositories» that you register using the
key, or in Packagist, the default package repository. In the above example,
since no other repository has been registered in the file, it is
assumed that the package is registered on Packagist. (See more
about Packagist , or read more about repositories
here).

Package names

The package name consists of a vendor name and the project’s name. Often these
will be identical — the vendor name only exists to prevent naming clashes. For
example, it would allow two different people to create a library named .
One might be named while the other might be .

Read more about publishing packages and package naming here.
(Note that you can also specify «platform packages» as dependencies, allowing
you to require certain versions of server software. See
below.)

Package version constraints

In our example, we are requesting the Monolog package with the version constraint
.
This means any version in the development branch, or any version that is
greater than or equal to 1.0 and less than 1.1 ().

Please read versions for more in-depth information on
versions, how versions relate to each other, and on version constraints.

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

Установка Composer может выполняться по-разному. Она также зависит от используемой среды и операционной системы. Рассмотрим различные варианты.

Установка Composer в Ubuntu, выполняющейся в подсистеме Windows для Linux (WSL)

Для установки Composer в Windows 10 на подсистему Windows для Linux (WSL) необходимо выполнить следующие команды:

Первая команда выполняет загрузку скрипта установщика с сайта «getcomposer.org». Вторая команда выполняет запуск этого установщика. В процессе своей работы установщик проверит некоторые настройки «php.ini», предупредит вас, если они установлены неправильно, а затем загрузит последний «composer.phar» в текущий каталог. Последняя или третья команда просто удалит загруженный установщик, который ранее использовался для установки Composer.

Phar — это исполняемые файлы (программы), которые выполняются посредством php интерпретатора.

Если при установке php пакетов у вас выводиться ошибки на отсутствие прав записи в каталог «~/.composer/cache», то в командной строке просто запустите данную команду:

Для установки Composer глобально, т.е. чтобы он был доступен с помощью команды необходимо дополнительно выполнить ещё следующую команду:

Эта команда переместит файл «composer.phar» из директории пользователя в директорию «/usr/local/bin» и уберёт у него расширение «phar».

Установка Composer на OpenServer (в Windows)

В OpenServer по умолчанию уже установлен Composer. Находится он в зависимости от выбранной версии PHP (устанавливается в настройках OpenServer) в директории «OSPanel\modules\PHP_*\».

Работа с Composer в OpenServer по умолчанию осуществляется в собственной консоли. Для того чтобы открыть эту консоль необходимо нажать на значок Open Server правой кнопкой мыши в области уведомлений и в открывшемся контекстном меню найти соответствующий пункт.

В консоли для проверки того, что Composer подключен, например, можно ввести команду:

Эта команда также отобразит версию Composer.

Если при выполнении этой команды отобразится сообщение, что версия Composer устарела, то её можно обновить. Осуществляется это посредством выполнения следующей команды:

For composer CLI users

  • The new platform-check feature means that Composer checks the runtime PHP version and available extensions to ensure they match the project dependencies. If a mismatch is found, it exits with error details to make sure problems are not overlooked. To avoid issues when deploying to production it is recommended to run with the production PHP process as part of your build or deployment process.
  • If a package exists in a higher priority repository, it will now be entirely ignored in lower priority repositories. See repository priorities for details.
  • Invalid PSR-0 / PSR-4 class configurations will not autoload anymore in optimized-autoloader mode, as per the warnings introduced in 1.10
  • On linux systems supporting the XDG Base Directory Specification, Composer will now prefer using XDG_CONFIG_DIR/composer over if both are available (1.x used first)
  • Package names now must comply to our or Composer will abort, as per the warnings introduced in 1.8.1
  • Deprecated —no-suggest flag as it is not needed anymore
  • PEAR support (repository, downloader, etc.) has been removed
  • now lists changes to the lock file first (update step), and then the changes applied when installing the lock file to the vendor dir (install step)
  • if not specified will now default to false as this seems to work better in most environments
  • , and are no longer aliases for each other. The exact branch names are now preserved.

Кто такой композер и чем он занимается


Композитинг собирает воедино всю проделанную работу съемочной группы. Соответственно, композер – человек, заботливо укладывающий ту самую вишенку на торте, без которой он выглядит незаконченным и лишенным главного вкусового оттенка. После моделирования, накладки текстуры и покраски получившейся модели (представим, что наша модель – нарисованная лошадка), аниматор делает ее подвижной, а композер интегрирует ее в выбранную локацию (например, в Пентагон).
Его задача заключается в том, чтобы все поверили в картинку на экране – что всё это снято одной камерой и наша лошадка действительно сидит в здании министерства обороны. Однако зачастую эта работа разбивается между несколькими участниками процесса, нет конкретного ответственного лица. В итоге выходит винегрет: композер вроде существует, а вроде является фигурой мифологизированной и не совсем четкой.  

Установка из командной строки

* Процесс установки мог поменяться. Актуально на 26.04.2017. Посетите официальную страницу.

Запустите это в своем терминале, чтобы получить последнюю версию Composer:

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '669656bab3166a7aff8a7506b8cb2d1c292f042046c5a994c43155c0be6190fa0355160742ab2e1c88d40d5be660b410') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Этот сценарий установки просто проверит некоторые параметры php.ini, предупредит вас, если они установлены неправильно, а затем загрузит последний composer.phar в текущий каталог. 4 строки выше, чтобы:

  • Загрузка установщика в текущий каталог
  • Проверьте установщик SHA-384, который вы также можете перепроверять здесь
  • Запустите установщик
  • Удаление установщика

Package not found#

  1. Double-check you don’t have typos in your or repository
    branches and tag names.

  2. Be sure to set the right
    . To get started or be
    sure this is no issue, set to «dev».

  3. Packages not coming from Packagist should
    always be defined in the root package (the package depending on all
    vendors).

  4. Use the same vendor and package name throughout all branches and tags of
    your repository, especially when maintaining a third party fork and using
    .

  5. If you are updating to a recently published version of a package, be aware that
    Packagist has a delay of up to 1 minute before new packages are visible to Composer.

  6. If you are updating a single package, it may depend on newer versions itself.
    In this case add the argument or add all dependencies which
    need an update to the command.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий