Szukaj…


Wprowadzenie

Kompozytor jest najczęściej używanym menedżerem zależności PHP. Jest analogiczny do npm w Node, pip dla Pythona lub NuGet dla .NET.

Składnia

  • ścieżka php / to / composer.phar [polecenie] [opcje] [argumenty]

Parametry

Parametr Detale
licencja Określa typ licencji, której chcesz użyć w Projekcie.
autorski Definiuje autorów projektu, a także dane autora.
wsparcie Określa e-maile pomocy technicznej, kanał IRC i różne linki.
wymagać Definiuje rzeczywiste zależności, a także wersje pakietów.
wymagany-dev Definiuje pakiety niezbędne do opracowania projektu.
sugerować Definiuje sugestie pakietów, tj. Pakiety, które mogą pomóc, jeśli zostaną zainstalowane.
autoload Definiuje zasady automatycznego ładowania projektu.
autoload-dev Definiuje zasady automatycznego wczytywania do opracowania projektu.

Uwagi

Automatyczne ładowanie działa tylko w przypadku bibliotek, które określają informacje o automatycznym ładowaniu. Większość bibliotek spełnia i będzie przestrzegać standardu, takiego jak PSR-0 lub PSR-4 .

Przydatne linki

Kilka sugestii

  1. Wyłącz xdebug podczas uruchamiania Composer.
  2. Nie uruchamiaj Composer jako root . Pakietom nie można ufać.

Co to jest kompozytor?

Kompozytor jest menedżerem zależności / pakietów dla PHP. Można go używać do instalowania, śledzenia i aktualizowania zależności projektu. Kompozytor dba również o automatyczne ładowanie zależności, na których opiera się Twoja aplikacja, umożliwiając łatwe korzystanie z zależności w projekcie bez obawy o umieszczenie ich na początku dowolnego pliku.

Zależności dla twojego projektu są wymienione w pliku composer.json , który zazwyczaj znajduje się w katalogu głównym projektu. Ten plik zawiera informacje o wymaganych wersjach pakietów do produkcji i rozwoju.

Pełny zarys schematu composer.json można znaleźć na stronie internetowej kompozytora .

Ten plik można edytować ręcznie za pomocą dowolnego edytora tekstu lub automatycznie za pomocą wiersza poleceń za pomocą poleceń takich jak composer require <package> lub composer require-dev <package> .

Aby rozpocząć korzystanie z kompozytora w swoim projekcie, musisz utworzyć plik composer.json . Możesz go utworzyć ręcznie lub po prostu uruchomić composer init . Po uruchomieniu composer init w twoim terminalu poprosi Cię o kilka podstawowych informacji o twoim projekcie: Nazwa pakietu ( sprzedawca / pakiet - np. laravel/laravel ), Opis - opcjonalny , Autor i kilka innych informacji, takich jak Minimalna stabilność, Licencja i Wymagane Pakiety

require klucz w pliku composer.json określa Composer, od którego pakietów zależy twój projekt. require zajmuje obiekt, który mapuje nazwy pakietów (np monolog / monolog) do ograniczeń wersja (np 1.0. *).

{
    "require": {
        "composer/composer": "1.2.*"
    }
}

Aby zainstalować zdefiniowane zależności, należy uruchomić polecenie composer install a następnie znajdzie zdefiniowane pakiety, które pasują do podanego ograniczenia version i pobierze je do katalogu vendor . Konwencja polega na umieszczaniu kodu strony trzeciej w katalogu o nazwie vendor .

Zauważysz, że polecenie install utworzyło również plik composer.lock .

Plik composer.lock jest generowany automatycznie przez Composer. Ten plik służy do śledzenia aktualnie zainstalowanych wersji i stanu zależności. Uruchomienie composer install spowoduje zainstalowanie pakietów dokładnie do stanu zapisanego w pliku blokady.

Automatyczne ładowanie za pomocą Composer

Podczas gdy kompozytor zapewnia system do zarządzania zależnościami dla projektów PHP (np. Z Packagist ), może również służyć w szczególności jako autoloader, określając gdzie szukać określonych przestrzeni nazw lub dołączać ogólne pliki funkcji.

Zaczyna się od pliku composer.json :

{
    // ...
    "autoload": {
        "psr-4": {
            "MyVendorName\\MyProject": "src/"
        },
        "files": [
            "src/functions.php"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "MyVendorName\\MyProject\\Tests": "tests/"
        }
    }
}

Ten kod konfiguracyjny zapewnia, że wszystkie klasy w przestrzeni nazw MyVendorName\MyProject są mapowane do katalogu src a wszystkie klasy w MyVendorName\MyProject\Tests do katalogu tests (względem katalogu głównego). Będzie również automatycznie zawierać plik functions.php .

Po umieszczeniu tego w pliku composer.json uruchom composer update w terminalu, aby kompozytor zaktualizował zależności, plik blokady i wygenerował plik autoload.php . Wdrażając w środowisku produkcyjnym, composer install --no-dev . Plik autoload.php można znaleźć w katalogu vendor który powinien zostać wygenerowany w katalogu, w którym znajduje się composer.json .

Powinieneś require tego pliku wcześnie w punkcie instalacji w cyklu życia aplikacji, używając linii podobnej do poniższej.

require_once __DIR__ . '/vendor/autoload.php';

Po włączeniu plik autoload.php zajmuje się ładowaniem wszystkich zależności podanych w pliku composer.json .

Kilka przykładów ścieżki klasy do mapowania katalogu:

  • MyVendorName\MyProject\Shapes\Squaresrc/Shapes/Square.php .
  • MyVendorName\MyProject\Tests\Shapes\Squaretests/Shapes/Square.php .

Korzyści z używania Composer

Kompozytor śledzi, które wersje pakietów zainstalowałeś w pliku o nazwie composer.lock , który ma być przeznaczony do kontroli wersji, tak więc kiedy projekt zostanie sklonowany w przyszłości, wystarczy uruchomić composer install aby pobrać i zainstalować wszystkie zależności projektu .

Kompozytor zajmuje się zależnościami PHP dla poszczególnych projektów. Ułatwia to posiadanie kilku projektów na jednym komputerze, które zależą od osobnych wersji jednego pakietu PHP.

Kompozytor śledzi, które zależności są przeznaczone tylko dla środowisk programistycznych

composer require --dev phpunit/phpunit

Composer zapewnia autoloader, dzięki czemu bardzo łatwo jest rozpocząć pracę z dowolnym pakietem. Na przykład po zainstalowaniu Goutte z composer require fabpot/goutte , możesz natychmiast zacząć używać Goutte w nowym projekcie:

<?php

require __DIR__ . '/vendor/autoload.php';

$client = new Goutte\Client();

// Start using Goutte

Kompozytor umożliwia łatwą aktualizację projektu do najnowszej wersji, która jest dozwolona w pliku composer.json. NA PRZYKŁAD. composer update fabpot/goutte lub zaktualizuj każdą z zależności projektu: composer update .

Różnica między „instalacją kompozytora” a „aktualizacją kompozytora”

composer update

composer update nasze zależności, które są określone w composer.json .

Na przykład, jeśli nasz projekt korzysta z tej konfiguracji:

"require": {
    "laravelcollective/html": "2.0.*"
}

Załóżmy, że faktycznie zainstalowaliśmy wersję 2.0.1 pakietu, uruchomienie composer update spowoduje aktualizację tego pakietu (na przykład do wersji 2.0.2 , jeśli została już wydana).

Szczegółowo composer update :

  • Przeczytaj composer.json
  • Usuń zainstalowane pakiety, które nie są już wymagane w composer.json
  • Sprawdź dostępność najnowszych wersji naszych wymaganych pakietów
  • Zainstaluj najnowsze wersje naszych pakietów
  • Zaktualizuj composer.lock aby zapisać wersję zainstalowanych pakietów

composer install

composer install wszystkie zależności określone w pliku composer.lock w określonej wersji (zablokowanej), bez aktualizacji czegokolwiek.

Szczegółowo:

  • Przeczytaj plik composer.lock
  • Zainstaluj pakiety określone w pliku composer.lock

Kiedy instalować i kiedy aktualizować

  • composer update jest najczęściej używana w fazie „rozwoju”, aby zaktualizować nasze pakiety projektów.

  • composer install jest używana głównie w „fazie wdrażania”, aby zainstalować naszą aplikację na serwerze produkcyjnym lub w środowisku testowym, przy użyciu tych samych zależności zapisanych w pliku composer.lock utworzonym przez composer update .

Kompozytor Dostępne polecenia

Komenda Stosowanie
o Krótka informacja o Kompozytorze
archiwum Utwórz archiwum tego pakietu kompozytora
Przeglądaj Otwiera adres URL repozytorium pakietu lub stronę główną w przeglądarce.
Wyczyść pamięć podręczną Czyści wewnętrzną pamięć podręczną kompozytora.
Wyczyść pamięć podręczną Czyści wewnętrzną pamięć podręczną kompozytora.
config Ustaw opcje konfiguracji
stwórz projekt Utwórz nowy projekt z pakietu do podanego katalogu.
zależy Pokazuje, które pakiety powodują instalację danego pakietu
stawiać diagnozę Diagnozuje system w celu wykrycia typowych błędów.
dump-autoload Zrzuca autoloader
dumpautoload Zrzuca autoloader
exec Uruchom sprzedawany plik binarny / skrypt
światowy Umożliwia uruchamianie poleceń w globalnym katalogu kompozytora ($ COMPOSER_HOME).
Wsparcie Wyświetla pomoc dotyczącą polecenia
Dom Otwiera adres URL repozytorium pakietu lub stronę główną w przeglądarce.
informacje Pokaż informacje o pakietach
w tym Tworzy podstawowy plik composer.json w bieżącym katalogu.
zainstalować Instaluje zależności projektu z pliku composer.lock, jeśli jest obecny, lub opiera się na pliku composer.json.
licencje Pokaż informacje o licencjach zależności
lista Wyświetla listę poleceń
przestarzały Wyświetla listę zainstalowanych pakietów, które mają dostępne aktualizacje, w tym ich najnowszą wersję.
zabrania Pokazuje, które pakiety uniemożliwiają instalację danego pakietu
usunąć Usuwa pakiet z wymaganego lub wymaganego dev
wymagać Dodaje wymagane pakiety do pliku composer.json i instaluje je
uruchom skrypt Uruchom skrypty zdefiniowane w pliku composer.json.
Szukaj Wyszukaj paczki
samodzielna aktualizacja Aktualizuje composer.phar do najnowszej wersji.
samoaktualizacja Aktualizuje composer.phar do najnowszej wersji.
pokazać Pokaż informacje o pakietach
status Pokaż listę lokalnie zmodyfikowanych pakietów
wskazuje Pokaż propozycje pakietów
aktualizacja Aktualizuje twoje zależności do najnowszej wersji zgodnie z composer.json i aktualizuje plik composer.lock.
uprawomocnić Sprawdza poprawność composer.json i composer.lock
dlaczego Pokazuje, które pakiety powodują instalację danego pakietu
Dlaczego nie Pokazuje, które pakiety uniemożliwiają instalację danego pakietu

Instalacja

Możesz zainstalować Composer lokalnie, jako część swojego projektu lub globalnie jako plik wykonywalny całego systemu.

Lokalnie

Aby zainstalować, uruchom te polecenia w swoim terminalu.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"

Spowoduje to pobranie pliku composer.phar (plik archiwum PHP) do bieżącego katalogu. Teraz możesz uruchomić php composer.phar aby użyć Composer, np

php composer.phar install

Globalnie

Aby używać Composer na całym świecie, umieść plik composer.phar w katalogu, który jest częścią twojej PATH

mv composer.phar /usr/local/bin/composer

Teraz możesz używać composer dowolnym miejscu zamiast php composer.phar , np

composer install


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow