Asennusoppaat

Composerin asennus ja PHP-asetukset

Kerromme, miten PHP asennetaan oikeilla laajennuksilla, miten Composerilla hallitaan riippuvuuksia ja miten PSR-4-automaattilatauksella rakennetaan siisti projektirakenne.

Aurora YazılımToimitustiimi 6 min lukuaika
Composerin asennus ja PHP-asetukset
Miten Composer asennetaan?

Composerin asennusta varten PHP:n on ensin oltava asennettuna ja toimittava päätteessä. Windowsissa getcomposer.org-sivuston Composer-Setup.exe-asennusohjelma löytää PHP:n ja lisää sen PATH-muuttujaan. macOS:ssä ja Linuxissa sivuston asennuskomennoilla ladataan composer.phar ja siirretään se muotoon /usr/local/bin/composer. Jos composer --version palauttaa version, asennus on valmis; riippuvuudet asennetaan komennolla composer install.

Mitä Composer on ja miksi sitä tarvitaan?

Composer on PHP-projektien riippuvuuksienhallintatyökalu. Se lataa projektisi tarvitsemat kirjastot yhteensopivine versioineen ja antaa sinun hallita niitä yhdestä tiedostosta. Mitä npm on JavaScriptille ja pip Pythonille, sitä Composer on PHP:lle.

Composerin toinen suuri anti on automaattilataus (autoload). Kymmenien require-rivien kirjoittamisen sijaan liität yhden tiedoston; luokat ladataan automaattisesti, kun niitä tarvitaan. Modernit PHP-kehykset, kuten Laravel ja Symfony, on rakennettu alusta loppuun Composerin varaan.

Kirjastot julkaistaan Packagist-nimisessä yleisessä arkistossa. Composer valitsee tästä arkistosta sopivat paketit composer.json-tiedostosi versiosääntöjen mukaan ja asentaa kaikki vendor-kansioon.

Tiedosto / kansioTehtäväLisätäänkö Gitiin?
composer.jsonRiippuvuudet, versiosäännöt, autoload-asetusKyllä
composer.lockJokaisen asennetun paketin tarkka versioKyllä (sovelluksissa)
vendor/Ladatut paketit ja autoload-tiedostotEi

PHP:n asennus: Windows, macOS, Linux

Composer on PHP-ohjelma, joten PHP:n täytyy ensin toimia komentorivillä. Jos tietokoneellasi on XAMPP, voit käyttää sen sisältämää PHP:tä; lisätietoa oppaassamme XAMPPin asennus. Jos haluat asentaa erillisen PHP:n, etene käyttöjärjestelmäsi mukaan.

bashPHP:n tarkistus
php -v

# Asennetut laajennukset
php -m

# Käytössä oleva php.ini-tiedosto
php --ini

PHP Windowsissa

Lataa osoitteesta windows.php.net ajantasaisen vakaan version x64 Thread Safe -zip-tiedosto ja pura se lyhyeen kansioon, kuten C:\php. Luo kansion php.ini-development-tiedostosta kopio nimellä php.ini ja lisää C:\php-kansio järjestelmän PATH-muuttujaan.

Ota php.ini-tiedostossa käyttöön Composerin ja useimpien pakettien tarvitsemat laajennukset poistamalla rivin alusta puolipiste:

iniphp.ini (Windows)
extension_dir = "ext"
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=zip

PHP macOS:ssä ja Linuxissa

macOS:ssä riittää yksi komento Homebrewillä. Ubuntussa ja Debianissa asenna PHP:n komentorivipaketti yhdessä yleisimpien laajennusten ja unzip-työkalun kanssa; Composer tarvitsee pakettien purkamiseen unzipin tai zip-laajennuksen.

bashmacOS
brew install php
bashUbuntu / Debian
sudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip unzip

Composerin asennus vaihe vaiheelta

Windowsissa helpoin tapa on getcomposer.org-sivuston Composer-Setup.exe-asennusohjelma. Asennusohjelma löytää tietokoneesi php.exe:n, ilmoittaa puuttuvista asetuksista ja lisää composer-komennon PATH-muuttujaan. Sulje asennuksen jälkeen avoimet päätteet ja avaa ne uudelleen.

macOS:ssä ja Linuxissa Composer asennetaan latauksen sivun nelirivisellä komennolla. Yksi näistä komennoista tarkistaa ladatun tiedoston turvatiivisteen (hash) ja muuttuu jokaisessa versiossa; kopioi komennot siksi aina ajantasaisina viralliselta sivulta. Asennus luo nykyiseen kansioon composer.phar-tiedoston; siirtämällä sen yleiseen sijaintiin voit ajaa sen kirjoittamalla composer mistä tahansa.

bashmacOS / Linux (lisää hash-tarkistusrivi viralliselta sivulta)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# (virallisen sivun tiivisteen tarkistusrivi)
php composer-setup.php
php -r "unlink('composer-setup.php');"

# Siirrä yleiseen käyttöön
sudo mv composer.phar /usr/local/bin/composer
bashTarkistus
composer --version
composer diagnose

composer install ja peruskomennot

Uudessa projektissa composer init luo composer.json-tiedoston interaktiivisilla kysymyksillä. Jos kloonasit olemassa olevan projektin, sinun tarvitsee vain ajaa komento composer install: Composer asentaa composer.lock-tiedoston versiot sellaisinaan.

composer require lisää uuden paketin ja päivittää composer.json- ja composer.lock-tiedostot. composer update puolestaan päivittää uusimpiin sallitun versioväli mukaisiin versioihin; siksi sitä tulee käyttää tiimissä harkitusti.

  • Versiosääntö ^2.0 sallii kaikki 2.x-versiot, mutta ei siirry versioon 3.0.
  • Jaa composer.lock-tiedosto; kaikki tiimissä ja palvelin asentavat samat versiot.
  • Älä lisää vendor-kansiota Gitiin; kirjoita se .gitignore-tiedostoon.
bashYleisimmin käytetyt Composer-komennot
# Luo uusi projektitiedosto
composer init

# Paket ekle
composer require guzzlehttp/guzzle

# Paketti, jota tarvitaan vain kehityksessä
composer require --dev phpunit/phpunit

# Asenna lukitustiedoston mukaan
composer install

# Päivitä versiot
composer update
composer outdated

# Poista paketti ja listaa paketit
composer remove guzzlehttp/guzzle
composer show

Tietoturvatarkistus

Tarkista komennolla composer audit, onko käyttämissäsi paketeissa tunnettuja tietoturva-aukkoja. Komento vertaa lukitustiedoston versioita avoimiin tietokantoihin ja listaa vaikuttavat paketit. Tämän tarkistuksen ajaminen jokaisen päivityksen jälkeen ja säännöllisesti estää vanhentuneen kirjaston vaarantamasta sivustoasi.

bash
composer audit

Composer-skriptit

Voit kirjoittaa usein käyttämäsi komennot composer.json-tiedoston scripts-kenttään; esimerkiksi testit ajava test-skripti. Nämä skriptit ajetaan komennolla composer run-script test tai lyhyesti composer test. Näin kaikki tiimissä käyttävät samaa komentoa samoilla parametreilla, ja uusi kehittäjä näkee yhdellä silmäyksellä, miten projekti testataan.

PSR-4-automaattilataus

Käytä Composeria paitsi ulkoisille paketeille myös oman koodisi järjestämiseen. PSR-4-standardissa jokainen nimiavaruus (namespace) vastaa yhtä kansiota; esimerkiksi luokka App\Servis\Fatura sijaitsee tiedostossa src/Servis/Fatura.php.

Kun olet lisännyt asetuksen composer.json-tiedostoon, aja komento composer dump-autoload. Sen jälkeen projektin sisääntulotiedostoon riittää liittää vain vendor/autoload.php.

jsoncomposer.json (autoload-osio)
{
  "require": {
    "php": ">=8.1"
  },
  "autoload": {
    "psr-4": {
      "App\\": "src/"
    }
  }
}
phpindex.php
<?php
require __DIR__ . '/vendor/autoload.php';

use App\Servis\Fatura;

$fatura = new Fatura();
bash
composer dump-autoload

Asennus tuotantopalvelimelle

Tuotantopalvelimella kehityspaketteja ei tarvita, ja automaattilataajan optimointi säästää aikaa jokaisessa pyynnössä. Käytä julkaisun aikana alla olevaa komentoa; --no-dev jättää testityökalut pois ja --optimize-autoloader luo luokkakartan etukäteen.

Tämä pieni asetus näkyy myönteisesti vasteajassa erityisesti projekteissa, joissa on paljon luokkia. Käsittelemme tällaiset palvelinpuolen parannukset osana nopeus- ja suorituskykyoptimoinnin työtämme.

Hyvä tapa on myös ajaa paikallisesti ennen julkaisua komento composer validate: se tarkistaa composer.json-tiedoston kirjoitusvirheet ja sen, onko lukitustiedosto ajan tasalla. Näin todennäköisyys, että palvelimella jää asennus kesken, pienenee.

  • Palvelimen PHP-version on täytettävä composer.json-tiedoston php-sääntö.
  • Jos käytät paikallisesti eri PHP-versiota, voit jäljitellä palvelimen versiota composer.json-tiedoston config.platform.php-asetuksella.
  • Ympäristöjen täsmälliseen yhtenäistämiseen voi myös ajaa PHP:tä kontissa; katso Dockerin asennus.
bashTuotantoasennus
composer install --no-dev --optimize-autoloader

Yleiset virheet ja ratkaisut

Suurin osa Composer-virheistä johtuu puuttuvista PHP-laajennuksista, yhteensopimattomasta PHP-versiosta ja muistirajasta. Komento composer diagnose havaitsee monia ongelmia itse.

  • php-komentoa ei tunnisteta: PHP-kansio ei ole PATH-muuttujassa; lisää se ja avaa pääte uudelleen.
  • openssl-laajennus puuttuu: ota php.ini-tiedostossa käyttöön rivi extension=openssl; varmista komennolla php --ini, että muokkaat oikeaa php.ini-tiedostoa.
  • zip-laajennus ja unzip-komento puuttuvat: ota Windowsissa käyttöön rivi extension=zip, Linuxissa asenna paketit php-zip ja unzip.
  • Your requirements could not be resolved: Paketti ei tue asennettua PHP-versiotasi tai toisen paketin versiota. Lue virheilmoituksen vaatimus ja valitse PHP tai paketin versio sen mukaan.
  • Allowed memory size exhausted: Aja komento muodossa COMPOSER_MEMORY_LIMIT=-1 composer update tai kasvata memory_limit-arvoa php.ini-tiedostossa.

Seuraavat askeleet Composerin kanssa

Suurin osa PHP-projekteista toimii tietokannan kanssa. Ennen kuin yhdistät Composerilla asentamasi tietokantakerroksen, voit valmistella paikallisen palvelimesi oppaallamme MySQL:n asennus. Lisää PHP-sisältöä löydät php-tunnisteen sivulta.

Kunnolla toteutettu riippuvuuksienhallinta mahdollistaa sen, että yrityksen kotisivut tai maksu- ja kuljetuspalveluihin yhdistyvä integraatioprojekti voidaan päivittää turvallisesti vuosienkin kuluessa. Myös Aurora Yazılımin verkkokauppa-alusta kehitetään ilman valmiita teemoja, jokaiselle yritykselle räätälöidyllä suunnittelulla.

Usein kysytyt kysymykset

01Pitääkö Composer asentaa erikseen jokaista projektia varten?

Ei. Composer asennetaan tietokoneellesi kerran yleisesti. Jokaisella projektilla on oma composer.json ja vendor-kansio; paketit asennetaan projektista toiseen erikseen. Koska Composer säilyttää ladatut paketit välimuistissa, asennus on toisessa projektissa nopeampi.

02Mikä ero on composer installilla ja composer updatella?

composer install asentaa composer.lock-tiedoston versiot sellaisinaan eikä muuta lukitustiedostoa. composer update puolestaan etsii versiosääntöjen mukaan uudempia versioita ja päivittää lukitustiedoston; siksi palvelimilla käytetään installia.

03Voiko Composeria käyttää jaetulla webhotellilla?

Usein voi, jos hotellipalvelusi tarjoaa SSH-yhteyden. Jos SSH:ta ei ole, ratkaisu on asentaa riippuvuudet paikallisesti komennolla composer install --no-dev ja ladata vendor-kansio tiedostonsiirrolla; varmista, että PHP-versiot ovat yhteensopivat.

Kun asennat PHP:n oikeilla laajennuksilla ja lisäät Composerin PATH-muuttujaan, voit hallita riippuvuuksia minuuteissa komennolla composer install ja rakentaa PSR-4:llä siistin koodirakenteen. Jos haluat yrityksellesi räätälöidyn, helposti ylläpidettävän PHP-pohjaisen järjestelmän tai verkkosovelluksen, tutustu Aurora Yazılımin räätälöityihin ohjelmistoratkaisuihin tai ota meihin yhteyttä.