Composer: Różnice pomiędzy wersjami

(Utworzono nową stronę "''Composer'' to narzędzie służące do zarządzania zależnościami bibliotek php. === Instalacja === Aby zainstalować Composer należy użyć następujących polec...")
 
 
(Nie pokazano 18 wersji utworzonych przez 3 użytkowników)
Linia 1: Linia 1:
''Composer'' to narzędzie służące do zarządzania zależnościami bibliotek php.
+
''Composer'' to narzędzie służące do zarządzania zależnościami bibliotek [[PHP]].
 +
=== Dostępne wersje ===
 +
 
 +
* Composer 2 działa z wersjami PHP <code>od 7.2 do 8.1</code>. Dostępny jest pod poleceniem: <code>composer2</code>
 +
* Composer 1 działa ze wszystkimi wersjami PHP od <code>5.6 do 8.1</code>. Dostępny pod poleceniem: <code>composer</code>
  
 
=== Instalacja ===
 
=== Instalacja ===
 
+
Można również skorzystać z własnej wersji Composer. W tym celu należy wykonać poniższą instrukcję:
 +
Przed przystąpieniem do instalacji należy włączyć możliwość korzystania z własnego oprogramowania - [[Binexec]].
 
Aby zainstalować Composer należy użyć następujących poleceń:  
 
Aby zainstalować Composer należy użyć następujących poleceń:  
 
  {{prompt}}mkdir composer && cd composer  
 
  {{prompt}}mkdir composer && cd composer  
Linia 10: Linia 15:
 
  Downloading...
 
  Downloading...
 
   
 
   
  Composer successfully installed to: /usr/home/budek/domains/budek.usermd.net/public_html/composer.phar
+
  Composer successfully installed to: /usr/home/''login''/composer/composer.phar
 
  Use it: php composer.phar{{endoutput}}
 
  Use it: php composer.phar{{endoutput}}
 
  {{prompt}}mv composer.phar composer
 
  {{prompt}}mv composer.phar composer
  {{prompt}}echo 'export PATH=$PATH:$HOME/composer' >> $HOME/.bashrc
+
  {{prompt}}echo 'export PATH=$HOME/composer:$PATH' >> $HOME/.bash_profile
  {{prompt}}source $HOME/.bashrc
+
 
 +
Aby wybrać inną wersję PHP CLI dla Composer niż domyślna należy wykonać poniższe polecenia. W miejsce X należy wstawić wybraną wersję PHP: 70 dla 7.0, 71 dla 7.1 oraz 72 dla 7.2 i tak dalej.
 +
 
 +
 
 +
{{prompt}}mkdir ~/bin && ln -s /usr/local/bin/phpX ~/bin/php
 +
{{prompt}}echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile
 +
  {{prompt}}source $HOME/.bash_profile
  
 
=== Konfiguracja ===
 
=== Konfiguracja ===
  
Opis zależności należy stworzyć w pliku <code class="directory">composer.json</code>.
+
Opis zależności należy stworzyć w pliku <code class="directory">composer.json</code> w głównym folderze projektu. Również w nim należy wykonać wszystkie
  
 
==== require ====
 
==== require ====
Linia 43: Linia 54:
 
| Dokładna wersja || 1.0.2 || Można sprecyzować dokładną wersję pakietu.
 
| Dokładna wersja || 1.0.2 || Można sprecyzować dokładną wersję pakietu.
 
|-
 
|-
| Zakres || >= 1.0 <br/> >= 1.0 < 2.0 <br/> >= 1.0 < 1.1 <nowiki>||</nowiki> >=1.2 || Używając znaków nierówności: >, >=, <, <=, != można określić zakres wersji
+
| Zakres || >= 1.0 <br/> >= 1.0 < 2.0 <br/> >= 1.0 < 1.1 <nowiki>||</nowiki> >=1.2 || Używając znaków nierówności: >, >=, <, <=, != można określić zakres wersji. Można deklarować wiele zakresów. Spacja oraz przecinek traktowane są jako ''logiczne i''. Podwójny znak kreski pionowej odpowiada za ''logiczne lub''. Logiczne i ma pierwszeństwo wobec logicznego lub.
 
|-
 
|-
| Zakres dywizowy || 1.0 - 2.0 ||  
+
| Zakres dywizowy || 1.0 - 2.0 || Zakres 1.0 - 2.0 działa tak samo jak >=1.0.0 <2.1.
 
|-
 
|-
| Niewiadoma || 1.0.* ||
+
| Niewiadoma || 1.0.* || 1.0.* działa tak samo jak zakres >=1.0 <1.1.
 
|-
 
|-
| Operator tyldy || ~1.2 ||
+
| Operator tyldy || ~1.2.3 || Bardzo przydatny dla pakietów, które używają semantic versioning. ~1.2.3 działa tak samo, jak >=1.2.3 <1.3.0.
 
|-
 
|-
| Operator karety || ^1.2.3 ||
+
| Operator karety || ^1.2.3 || Bardzo przydatny dla pakietów, które używają semantic versioning. ^1.2.3 działa tak samo, jak >=1.2.3 <2.0.0.
 
|}
 
|}
 +
 +
=== Instalacja zależności ===
 +
 +
Aby zainstalować zależności zdefiniowane w pliku <code class="directory">composer.json</code> należy wykonać polecenie <code>composer install</code>. Ściągnięte paczki zostaną umieszczone w folderze <code class="directory">vendor</code>.
 +
 +
{{Notice|W przypadku korzystania z gita należy rozważyć dodanie folderu vendor do .gitignore}}
 +
Dodatkowo tworzony jest plik <code class="directory">composer.lock</code> w głównym katalogu projektu.
 +
 +
=== composer.lock ===
 +
 +
Po zainstalowaniu zależności tworzony jest plik <code class="directory">composer.lock</code> z informacją które pakiety i w jakiej wersji zostały zainstalowane. Instalator najpierw sprawdza czy ten plik istnieje, jeżeli istnieje to ściąga pakiety w wersji tam zdefiniowanej.
 +
 +
W przypadku chęci zaktualizowanie pakietów należy wykorzystać polecenie <code>composer update</code>
 +
 +
=== Packagist ===
 +
 +
[https://packagist.org/ Packagist] to główne repozytorium Composer. To miejsce z którego są ściągane wymienione w require paczki.
 +
 +
=== Autoloading ===
 +
 +
Dla bibliotek, które sprecyzowały autoload, Composer generuje plik<code class="directory">vendor/autoload.php</code>, który można załączyć funkcją:
 +
<syntaxhighlight lang="php">
 +
require 'vendor/autoload.php';
 +
</syntaxhighlight>
 +
 +
=== Zobacz też ===
 +
* [https://getcomposer.org/doc/ Dokumentacja Composer]
 +
 +
[[Kategoria:PHP]]

Aktualna wersja na dzień 21:16, 24 cze 2022

Composer to narzędzie służące do zarządzania zależnościami bibliotek PHP.

Dostępne wersje

  • Composer 2 działa z wersjami PHP od 7.2 do 8.1. Dostępny jest pod poleceniem: composer2
  • Composer 1 działa ze wszystkimi wersjami PHP od 5.6 do 8.1. Dostępny pod poleceniem: composer

Instalacja

Można również skorzystać z własnej wersji Composer. W tym celu należy wykonać poniższą instrukcję: Przed przystąpieniem do instalacji należy włączyć możliwość korzystania z własnego oprogramowania - Binexec. Aby zainstalować Composer należy użyć następujących poleceń:

mkdir composer && cd composer 
curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /usr/home/login/composer/composer.phar
Use it: php composer.phar
mv composer.phar composer
echo 'export PATH=$HOME/composer:$PATH' >> $HOME/.bash_profile

Aby wybrać inną wersję PHP CLI dla Composer niż domyślna należy wykonać poniższe polecenia. W miejsce X należy wstawić wybraną wersję PHP: 70 dla 7.0, 71 dla 7.1 oraz 72 dla 7.2 i tak dalej.


mkdir ~/bin && ln -s /usr/local/bin/phpX ~/bin/php
echo 'export PATH=$HOME/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile

Konfiguracja

Opis zależności należy stworzyć w pliku composer.json w głównym folderze projektu. Również w nim należy wykonać wszystkie

require

Pierwszą (i często ostatnią) rzeczą jaką należy skonkretyzować jest lista wymaganych bibliotek wraz z wersją za pomocą require.

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

Nazwy pakietów

Nazwa pakietu składa się z nazwy dostawcy oraz nazwy biblioteki. Bardzo często obie nazwy będą identyczne. Nazwa dostawcy jest po to, aby uniknąć konfliktu nazw bibliotek. Pozwala to dwóm osobnym autorom stworzyć bibliotekę json, które będą dostępne jako igorw/json i seldaek/json.

Wersja pakietu

https://getcomposer.org/doc/01-basic-usage.md W poprzednim przykładzie użyto wersji 1.0.* biblioteki monolog. Oznacza to, że każda wersja z gałęzi 1.0 będzie poprawna, np. 1.0.0, 1.0.2 i 1.0.20.

Nazwa Przykład Opis
Dokładna wersja 1.0.2 Można sprecyzować dokładną wersję pakietu.
Zakres >= 1.0
>= 1.0 < 2.0
>= 1.0 < 1.1 || >=1.2
Używając znaków nierówności: >, >=, <, <=, != można określić zakres wersji. Można deklarować wiele zakresów. Spacja oraz przecinek traktowane są jako logiczne i. Podwójny znak kreski pionowej odpowiada za logiczne lub. Logiczne i ma pierwszeństwo wobec logicznego lub.
Zakres dywizowy 1.0 - 2.0 Zakres 1.0 - 2.0 działa tak samo jak >=1.0.0 <2.1.
Niewiadoma 1.0.* 1.0.* działa tak samo jak zakres >=1.0 <1.1.
Operator tyldy ~1.2.3 Bardzo przydatny dla pakietów, które używają semantic versioning. ~1.2.3 działa tak samo, jak >=1.2.3 <1.3.0.
Operator karety ^1.2.3 Bardzo przydatny dla pakietów, które używają semantic versioning. ^1.2.3 działa tak samo, jak >=1.2.3 <2.0.0.

Instalacja zależności

Aby zainstalować zależności zdefiniowane w pliku composer.json należy wykonać polecenie composer install. Ściągnięte paczki zostaną umieszczone w folderze vendor.

Dodatkowo tworzony jest plik composer.lock w głównym katalogu projektu.

composer.lock

Po zainstalowaniu zależności tworzony jest plik composer.lock z informacją które pakiety i w jakiej wersji zostały zainstalowane. Instalator najpierw sprawdza czy ten plik istnieje, jeżeli istnieje to ściąga pakiety w wersji tam zdefiniowanej.

W przypadku chęci zaktualizowanie pakietów należy wykorzystać polecenie composer update

Packagist

Packagist to główne repozytorium Composer. To miejsce z którego są ściągane wymienione w require paczki.

Autoloading

Dla bibliotek, które sprecyzowały autoload, Composer generuje plikvendor/autoload.php, który można załączyć funkcją:

require 'vendor/autoload.php';

Zobacz też