PHP Composer installeren en gebruiken op Ubuntu 20.04 LTS

Stel uw PHP-project gemakkelijk samen door de componist alle afhankelijkheden te laten beheren

Composer is een tool voor afhankelijkheidsbeheer voor PHP. Het verschilt van de traditionele pakketbeheerder zoals: geschikt en dnf, op een zodanige manier dat het de pakketten en bibliotheken niet wereldwijd op een systeembreed niveau installeert, maar ze voor elk project afzonderlijk behandelt. Het is dus een afhankelijkheidsmanager en geen pakketbeheerder.

Net zoals een muziekcomponist een heleboel instrumenten neemt en ze arrangeert om perfect te werken in een concert, neemt de Composer voor PHP een heleboel bibliotheken en frameworks, verpakt ze om samen te werken en een solide basis te creëren waarop een PHP-project kan worden samengesteld.

Vereisten

U hebt toegang nodig tot een Ubuntu 20.04-systeem met een niet-root sudo gebruikers account. Bovendien moet u enkele afhankelijkheden voor Composer installeren, waaronder: php-klik om PHP-scripts in uw terminal uit te voeren, uitpakken om Composer te helpen de gedownloade pakketten te extraheren en krullen om het installatiescript van de componist te downloaden

Om alle vereiste pakketten te installeren, werkt u de Ubuntu-pakketlijst bij door de update-opdracht uit te voeren:

sudo apt update

Installeer vervolgens de php-klik, uitpakken en krullen met behulp van de volgende opdracht:

sudo apt install php-cli unzip curl

U wordt gevraagd om de installatie te bevestigen, druk op ja druk dan op enter. Nadat u aan alle vereisten hebt voldaan, kunt u Composer verder installeren.

Download en installeer Composer

Composer biedt een net PHP-script om het vanaf de opdrachtregel te downloaden en op uw computer te installeren. We moeten gebruiken krullen om dit script te downloaden, moet u om veiligheidsredenen de authenticiteit ervan verifiëren en het vervolgens uitvoeren om Composer te installeren.

Zorg ervoor dat uw terminal is geopend in de homedirectory en download vervolgens het installatiescript met krullen:

cd ~ curl -sS //getcomposer.org/installer -o componist-setup.php

Vervolgens moeten we controleren of het installatiescript dat we hebben gedownload echt is door de SHA-384-hash ervan te matchen met die op de Composer Public Key/ Checksums-pagina. Om dit te doen, verkrijgt u de SHA-384-hash van de Composer Public Key-pagina en slaat u deze op in een shell-variabele.

Hash=`curl -sS //composer.github.io/installer.sig`

Controleer vervolgens of u de hash met succes in de variabele hebt verkregen en opgeslagen door het volgende uit te voeren:

echo $Hash

U zou een uitvoer van een willekeurige reeks zoals deze van de terminal moeten krijgen:

Uitgang: e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a

Voer nu de volgende PHP-code uit die door Composer is geleverd om de authenticiteit van het installatiescript te verifiëren:

php -r "if (hash_file('SHA384', 'composer-setup.php') === '$Hash') { echo 'Installer geverifieerd'; } else { echo 'Installer corrupt'; unlink('composer-setup .php'); } echo PHP_EOL;"
Uitgang: Installateur geverifieerd

Als u een andere uitvoer ziet, zoals: Installateur corrupt, dan weet je dat het script beschadigd is en dat het niet veilig is om het uit te voeren. Download het script opnieuw met curl en voer vervolgens de PHP-code opnieuw in de terminal uit om het installatiescript te verifiëren.

U kunt doorgaan met de installatie wanneer u het installatieprogramma met succes hebt geverifieerd. U kunt Install the Composer globaal of lokaal installeren voor een enkel project.

Composer wereldwijd installeren

Composer globaal installeren als een systeembrede opdracht met de naam componist, voer de volgende opdracht uit:

sudo php componist-setup.php --install-dir=/usr/local/bin --filename=componist

Composer wordt geïnstalleerd in de /usr/local/bin map op uw Ubuntu 20.04-systeem en u zult de volgende uitvoer zien:

Uitgang: Alle instellingen correct voor het gebruik van Composer Downloading... Composer (versie 1.10.7) is succesvol geïnstalleerd op: /usr/local/bin/composer Gebruik het: php /usr/local/bin/composer 

Controleer of Composer correct is geïnstalleerd en functioneel is door het volgende uit te voeren:

componist
Uitgang: ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Componist versie 1.10.7 2020-06- 03 10:03:56 Gebruik: commando [opties] [argumenten] 

U hebt Composer met succes geïnstalleerd op uw Ubuntu 20.04-systeem. U kunt nu Composer gaan gebruiken om direct afhankelijkheden in uw PHP-projecten te beheren, bij te werken en te installeren.

Composer lokaal installeren

Het lokaal installeren van Composer is handig als u geen toestemming hebt om het op systeemniveau te installeren of als u Composer voor slechts één project wilt gebruiken. Om Composer lokaal te installeren, voert u het volgende uit:

php componist-setup.php

De bovenstaande opdracht maakt een nieuw bestand in uw huidige map met de naam componist.phar. U moet dit bestand naar de hoofdmap van het project verplaatsen om de Composer-functies te gebruiken. Dit bestand kan worden uitgevoerd met behulp van de onderstaande opdracht.

php componist.phar

Basisprincipes van componisten

Nu u Composer op uw Ubuntu 20.04-machine hebt geïnstalleerd, laten we eens kijken naar enkele basisprincipes van Composer. Composer is bedoeld om eenvoudige installatie en updates van afhankelijkheden te vergemakkelijken en om dit te doen, creëert het veel bestanden in de hoofdmap van het project. Laten we eens kijken naar de directorystructuur van een project met Composer om afhankelijkheden te beheren.

Componist Project root Structuur:ProjectRoot/ ├── componist.json ├── componist.lock ├── Project.php ├── componist.phar *Alleen als je Composer lokaal hebt geïnstalleerd └── leverancier ├── autoload.php ├── componist │ ├── ClassLoader.php │ ├── LICENTIE │ ├── autoload_classmap.php │ ├── ..... ├── ....... 
  • De componist.json bestand dat zich in de hoofdmap van het project bevindt, slaat alle informatie op over de afhankelijkheden (pakketten) die nodig zijn voor het project.
  • De componist.lock bevat de informatie over de pakketten waarvan de versie vergrendeld is voor het project.
  • leverancier is de map waar alle pakketten zijn opgeslagen, het heeft ook enkele PHP-scripts zoals: autoload.php, wat de automatische opname van de pakketten in de leveranciersdirectory vergemakkelijkt.
  • Ten slotte, als je Composer lokaal hebt geïnstalleerd, moet je: componist.phar bestand in de projectdirectory om pakketten te installeren.

Al deze bestanden worden gemaakt wanneer u de componist of php componist.phar commando om pakketten voor uw project de eerste keer te downloaden en te installeren. Laten we dus eens kijken naar de werking van Composer door een demoproject te maken.

Uw eerste project maken met Composer

De eerste stap is het maken van een hoofdmap voor uw project, dus maak er een aan met mkdir commando en navigeer ernaar met CD opdracht:

mkdir ~/ComposerDemo cd ~/ComposerDemo

Nu moeten we de pakketten/bibliotheken vinden en installeren die nodig zijn om ons demoproject te bouwen. Packagist is de belangrijkste Composer-repository die alle openbaar beschikbare PHP-pakketten weergeeft die met Composer kunnen worden geïnstalleerd.

In dit voorbeeld gebruiken we een PHP-pakket genaamd cakephp/chronos, het is een eenvoudige API-extensie voor datum en tijd. Om een ​​nieuw Composer-project te genereren en het Chronos-pakket te installeren, voert u de volgende opdracht uit:

componist vereist cakephp/chronos
Uitgang: Het gebruik van versie ^2.0 voor cakephp/chronos ./composer.json is gemaakt Compositor-repositories laden met pakketinformatie Afhankelijkheden bijwerken (inclusief required-dev) Pakketbewerkingen: 1 installatie, 0 updates, 0 verwijderingen - Cakephp/chronos installeren (2.0.5 ): Downloaden (100%) Lock-bestand schrijven Autoload-bestanden genereren 

De vereisen optie haalt en installeert het pakket dat u wenst en genereert de bestanden en mappen zoals: componist.json, componist.lock en leverancier in de hoofdmap van het project. Dat zul je zien cakephp/chronos wordt toegevoegd aan de componist.json als je de volgende opdracht uitvoert:

kat componist.json
Uitgang: { "vereisen": { "cakephp/chronos": "^2.0" } } 

Laten we vervolgens Chronos gebruiken in ons demo-project, een PHP-bestand openen en maken met de naam demo.php gebruik makend van nano:

nano demo.php

Voeg vervolgens de volgende code toe aan de demo.php, de tweede regel die bevat leverancier/autoload.php is een Composer-bestand dat automatisch alle pakketten en bibliotheken laadt die voor het project zijn geïnstalleerd. Sla het bestand op door op te drukken Ctrl+O en verlaat vervolgens de nano-editor door op te drukken Ctrl+X.

Voer de . uit demo.php door het volgende commando uit te voeren:

php demo.php
Uitgang: Nu: 2020-06-23 17:07:45

Als u in de toekomst de pakketten en bibliotheken van uw project moet bijwerken, voert u gewoon de volgende opdracht uit:

componist update

De bovenstaande opdracht controleert op de nieuwere versie van geïnstalleerde pakketten en werkt deze veilig bij zonder het project en de onderling afhankelijke bibliotheken te verbreken.

We hebben gekeken hoe u Composer op de Ubuntu 20.04-machine kunt installeren en hebben gekeken naar de basisprincipes die u over Composer moet weten. U kunt nu proberen nieuwe projecten te bouwen door de vereiste pakketten toe te voegen door te zoeken op Packagist. Als je meer wilt weten over Composer en de opties, ga dan naar de Composer online documentatiepagina.