Go achomair: Is é Composer an bainisteoir pacáistí do PHP. Léann sé ón gcomhad composer.json cé na leabharlanna a theastaíonn ó thionscadal, luchtaíonn sé isteach san fhillteán vendor iad, coimeádann sé na leaganacha cruinne sa composer.lock agus gineann sé autoloader a aimsíonn ranganna go huathoibríoch. Bainistíonn Composer cód d'fheidhmchláir dá bhrí sin, ní an t-ateangaire PHP féin: ní dhúnann nuashonrú Composer leochaileacht i PHP ar nós PHP2Shell.
Cad is Composer ann agus cén fáth a bhfuil sé de dhíth?
Is annamh a bhíonn feidhmchlár PHP inniu comhdhéanta de chód dá chuid féin amháin. Tagann fráma-oibreacha, leabharlanna ríomhphoist, giniúint PDF nó naisc íocaíochta mar phacáistí réidh. Cinntíonn Composer, bainisteoir pacáistí PHP, go dtagann na pacáistí seo le chéile i leaganacha oiriúnacha agus go dtugann gach spleáchas a spleáchais féin leis.
Do lucht cinnteoireachta ciallaíonn sé seo: tagann cuid mhór den chód a ritheann ar do fhreastalaí ó thríú páirtithe. Tá sé seo éifeachtach, ach teastaíonn cúram uaidh. Do riarthóirí agus d'fhorbróirí ciallaíonn sé: an té a úsáideann Composer go glan, is féidir leis a rianú am ar bith cén leagan de cén leabharlann atá ag rith i dtáirgeadh.
De réir dhoiciméadú Composer, is é Packagist.org an fhoinse chaighdeánach do phacáistí. Is féidir foinsí eile, mar shampla stórais inmheánacha gníomhaireachta, a chur isteach sa composer.json faoi repositories.
composer.json, composer.lock agus vendor: na trí bhloc
Oibríonn Composer le trí rud ba cheart a bheith ar eolas agat sula nglacann tú seilbh ar fhreastalaí nó sula gcuireann tú gníomhaireacht i mbun oibre.
| Bloc | Ábhar | An bhfuil sé le bheith sa stór? |
|---|---|---|
composer.json |
pacáistí inmhianaithe le raonta leaganacha (require, require-dev), rialacha autoload, socruithe |
tá |
composer.lock |
leaganacha réitithe go beacht de gach pacáiste, na cinn indíreacha san áireamh | tá, go sainráite de réir dhoiciméad Composer |
vendor/ |
cód íoslódáilte na bpacáistí agus an t-autoloader a gineadh | níl, gintear é le linn na suiteála |
Faoi require tá pacáistí a theastaíonn ón bhfeidhmchlár le linn oibriú. Faoi require-dev tá uirlisí d'fhorbairt agus tástáil, mar shampla fráma-oibreacha tástála nó anailís statach. Tá an scaradh seo tábhachtach, mar nach bhfuil aon ghnó ag uirlisí forbartha ar fhreastalaí táirgeachta.
{
"require": {
"php": ">=8.3",
"monolog/monolog": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^11.0"
},
"autoload": {
"psr-4": { "App\\": "src/" }
}
}
Roghnaíodh na leaganacha sa sampla mar léiriú amháin. Is as riachtanais do thionscadail a thagann cé na leaganacha atá de dhíth air.
install nó update: an difríocht san oibriú
Tá an dá ordú cosúil le chéile, ach tá iarmhairtí an-difriúla acu.
- Léann
composer installancomposer.lockagus suiteálann sé go beacht na leaganacha atá taifeadta ann. Tá sé seo inathfhriotail agus baineann sé leis an seachadadh. - Réitíonn
composer updategach spleáchas as an nua, faigheann sé na leaganacha oiriúnacha is déanaí agus athscríobhann sé ancomposer.lock. Baineann sé seo leis an bhforbairt, le tástálacha ina dhiaidh.
De réir dhoiciméadú Composer, ritheann update seiceáil slándála (audit) breise tar éis an comhad lock a scríobh, mura múchtar é le --no-audit. Ní sheiceálann install de réir réamhshocraithe; chuige sin tá an rogha --audit.
Autoloading: conas a aimsíonn Composer ranganna
Gineann Composer an comhad vendor/autoload.php. Nuair a chuimsítear é uair amháin, ní luchtaíonn PHP gach rang ach nuair is gá. Maidir le cód dá chuid féin, socraítear sa chuid autoload cé acu spás ainm atá in cén fhillteán. Moltar PSR-4 chuige sin, caighdeán de chuid PHP-FIG. Míníonn an leathanach Spásanna ainmneacha agus autoloading conas a oibríonn sé go beacht; tugann an leathanach Caighdeáin PSR forbhreathnú ar na caighdeáin go léir.
<?php
require __DIR__ . '/../vendor/autoload.php';
$log = new Monolog\Logger('app'); // luchtaítear go huathoibríoch nuair is gá
Composer i dtáirgeadh: seachadadh glan
Maidir leis an seachadadh, d'éirigh go maith le hord seasta. Is fearr é a rith i bpíblíne tógála agus ní de láimh ar an bhfreastalaí.
- An comhad lock a sheiceáil: cinntíonn
composer validatego bhfuilcomposer.jsonbailí agus go bhfuil ancomposer.lockcothrom le dáta. - Suiteáil gan pacáistí forbartha: fágann
composer install --no-devrequire-devar lár. - An t-autoloader a bharrfheabhsú: athraíonn
--optimize-autoloader(-omar ghearrfhoirm) na rialacha ina liosta ranganna. Le--classmap-authoritativeluchtaíonn PHP ranganna ón liosta seo amháin. - Seiceáil slándála: seiceálann
composer audit --lockedna leaganacha ón gcomhad lock i gcoinne fógraí slándála aitheanta agus tuairiscíonn sé pacáistí tréigthe. - vendor lasmuigh den webroot: níor cheart ach an t-eolaire poiblí leis an script iontrála a bheith inrochtana trí URL.
composer validate
composer install --no-dev --optimize-autoloader
composer audit --locked --no-dev
Taispeánann composer outdated freisin cé na pacáistí suiteáilte a bhfuil leaganacha níos nuaí acu. Is é seo an bunús le nuashonruithe pleanáilte in ionad gníomhartha aonair deifreacha.
Composer, slándáil agus PHP2Shell
Baineann Composer agus PHP2Shell le dhá leibhéal éagsúla. Tá na leochaileachtaí CVE-2026-109618 agus CVE-2026-109619 san ateangaire PHP féin. Tá siad deisithe i PHP 8.5.12, 8.4.27, 8.3.36 agus 8.2.35, agus ní mór gach próiseas PHP a atosú ina dhiaidh. Ní athraíonn composer update ná pacáiste ar bith i vendor aon rud faoi sin.
Fós féin baineann Composer le gach seiceáil tar éis teagmhais. An té a thugann cód mailíseach ar fhreastalaí, is féidir leis comhaid i vendor a athrú freisin, agus luchtaítear vendor/autoload.php le gach iarratas. Is modh maith é composer install úr ón gcomhad lock seiceáilte isteach in eolaire folamh dá bhrí sin chun an pacáiste a athchóiriú. Déanann an treoir composer audit cur síos ar an gcaoi leis na spleáchais a sheiceáil go rialta le haghaidh leochaileachtaí aitheanta.
Ní insíonn composer audit glas rud ar bith faoi staid phaiste PHP. Seiceáil an timpeallacht rite PHP ar leithligh, mar shampla lenár seirbhís paistithe PHP.
Conas a chabhraíonn PHP SOS go praiticiúil?
- Taifeadaimid do gach feidhmchlár leagan PHP, pacáistí Composer agus staid lock agus déanaimid idirdhealú glan idir an t-ateangaire agus na leabharlanna.
- Seiceálaimid an n-oireann
vendoragus an comhad lock dá chéile agus an bhfuil pacáistí forbartha nó comhaid athraithe i dtáirgeadh. - Socraímid seachadadh inathfhriotail le
install --no-dev, autoloader bharrfheabhsaithe agus audit. - Tar éis teagmhais athchóirímid an pacáiste ón gcomhad lock seiceáilte agus déanaimid an toradh a dhoiciméadú.
Ceisteanna coitianta
An gcaithfidh composer.lock a bheith sa stór Git?
Caithfidh. Molann doiciméadú Composer go sainráite an composer.lock a dhéanamh commit. Ar an mbealach sin amháin suiteálann forbairt, CI agus táirgeadh na leaganacha pacáiste céanna go beacht.
Cad é an difríocht idir composer install agus composer update?
Suiteálann install na leaganacha atá taifeadta sa composer.lock. Réitíonn update na spleáchais as an nua, faigheann sé leaganacha níos nuaí oiriúnacha agus athscríobhann sé an composer.lock. Ar an bhfreastalaí táirgeachta, is le install amháin atá baint.
An ndúnann nuashonrú Composer leochaileacht PHP2Shell?
Ní dhúnann. Bainistíonn Composer leabharlanna do fheidhmchláir, ní an t-ateangaire PHP. Ní dhúntar PHP2Shell ach le nuashonrú ar thimpeallacht rite PHP go leagan deisithe agus atosú gach próiseas PHP.
Cá háit ba cheart don fhillteán vendor a bheith?
Go hidéalach lasmuigh den eolaire gréasáin atá inrochtana go poiblí. Cuireann a lán fráma-oibreacha fillteán public amháin sa webroot, agus vendor leibhéal amháin os a chionn.