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

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 / kansio | Tehtävä | Lisätäänkö Gitiin? |
|---|---|---|
| composer.json | Riippuvuudet, versiosäännöt, autoload-asetus | Kyllä |
| composer.lock | Jokaisen asennetun paketin tarkka versio | Kyllä (sovelluksissa) |
| vendor/ | Ladatut paketit ja autoload-tiedostot | Ei |
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.
php -v
# Asennetut laajennukset
php -m
# Käytössä oleva php.ini-tiedosto
php --iniPHP 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:
extension_dir = "ext"
extension=curl
extension=fileinfo
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=zipPHP 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.
brew install phpsudo apt update
sudo apt install php-cli php-mbstring php-xml php-curl php-zip unzipComposerin 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.
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/composercomposer --version
composer diagnosecomposer 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.
# 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 showTietoturvatarkistus
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.
composer auditComposer-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.
{
"require": {
"php": ">=8.1"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}<?php
require __DIR__ . '/vendor/autoload.php';
use App\Servis\Fatura;
$fatura = new Fatura();composer dump-autoloadAsennus 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.
composer install --no-dev --optimize-autoloaderYleiset 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ä.


