Go achomair: Is caighdeáin den PHP-FIG iad PSRanna (PHP Standards Recommendations), grúpa de thionscadail bhunaithe PHP. Socraíonn siad rialacha agus comhéadain choiteanna, mar shampla PSR-4 don uathluchtú, PSR-3 do loggers, PSR-7 do theachtaireachtaí HTTP agus PSR-11 do choimeádáin. Tá stádas ag gach PSR: glactha, dréacht, imithe i léig nó tréigthe. Déanann PSRanna cód níos inmhalartaithe agus níos éasca a sheiceáil, ach ní dhúnann siad leochaileachtaí san ateangaire PHP ar nós PHP2Shell.
Cad é an PHP-FIG agus cad iad PSRanna?
Seasann PHP-FIG do PHP Framework Interop Group. Cuireann an grúpa síos ar a sprioc féin mar PHP a chur chun cinn trí chomhoibriú agus caighdeáin. Ní monaróir atá taobh thiar de PSR, mar sin, ach comhaontú idir tionscadail ar mian leo a mbogearraí a choimeád comhoiriúnach lena chéile.
Do lucht cinnteoireachta tá an tairbhe soiléir: má chloíonn feidhmchlár le comhéadain PSR, is féidir an leabharlann logála, mar shampla, a mhalartú gan teagmháil a dhéanamh leis an gcód ar fad. Laghdaíonn sé sin an spleáchas ar phacáistí agus ar sholáthraithe seirbhíse aonair.
Bealach PSR: ó Pre-Draft go Accepted
Déanann bunreacht an PHP-FIG cur síos ar phróiseas seasta:
- Pre-Draft: Déantar soiléiriú ar an bhfuil go leor spéise ann. Foirmíonn grúpa oibre, tar éis vótála rathúil faigheann an moladh uimhir PSR.
- Draft: Cuirtear an moladh i gcrích, téann roghanna eile agus cúiseanna i meta-dhoiciméad.
- Review: Déanann an pobal tástáil ar an sonrúchán le cur chun feidhme turgnamhach, ar feadh ceithre seachtaine ar a laghad agus go dtí go bhfuil dhá chur chun feidhme neamhspleácha inbhuanaithe ann.
- Accepted: Tar éis vótála rathúla glactar leis an PSR; scoirtear den ghrúpa oibre.
Taobh leis sin tá dhá staid eile ann. Ciallaíonn Deprecated: glactha, ach gan a mholadh a thuilleadh, de ghnáth toisc go gcuireann caighdeán níos nuaí ina áit é. Ciallaíonn Abandoned: ní bhítear ag obair air a thuilleadh.
Gach PSR agus a stádas
An staid de réir forbhreathnú an PHP-FIG tráth an leathanaigh seo:
| Uimh. | Teideal | Stádas |
|---|---|---|
| PSR-0 | Autoloading Standard | imithe i léig |
| PSR-1 | Basic Coding Standard | glactha |
| PSR-2 | Coding Style Guide | imithe i léig |
| PSR-3 | Logger Interface | glactha |
| PSR-4 | Autoloading Standard | glactha |
| PSR-5 | PHPDoc Standard | dréacht |
| PSR-6 | Caching Interface | glactha |
| PSR-7 | HTTP Message Interface | glactha |
| PSR-8 | Huggable Interface | tréigthe |
| PSR-9 | Security Advisories | tréigthe |
| PSR-10 | Security Reporting Process | tréigthe |
| PSR-11 | Container Interface | glactha |
| PSR-12 | Extended Coding Style Guide | glactha |
| PSR-13 | Hypermedia Links | glactha |
| PSR-14 | Event Dispatcher | glactha |
| PSR-15 | HTTP Handlers | glactha |
| PSR-16 | Simple Cache | glactha |
| PSR-17 | HTTP Factories | glactha |
| PSR-18 | HTTP Client | glactha |
| PSR-19 | PHPDoc tags | dréacht |
| PSR-20 | Clock | glactha |
| PSR-21 | Internationalization | dréacht |
| PSR-22 | Application Tracing | dréacht |
Na PSRanna is tábhachtaí sa chleachtas
- PSR-4 (uathluchtú): mapálann sé ainmneacha aicmí ar chosáin chomhaid agus is bunús d'uathluchtóir Composer é. Sonraí ar an leathanach Spásanna ainmneacha agus uathluchtú.
- PSR-1 agus PER Coding Style: rialacha coitianta litrithe agus formáidithe. Leathnaíonn agus cuireann PER Coding Style PSR-12 ina áit, de réir an PHP-FIG, agus ceanglaíonn sé PSR-1.
- PSR-3 (Logger): comhéadan loggera aonfhoirmeach sa spás ainmneacha
Psr\Logle hocht leibhéal óemergencygodebug. - PSR-7, PSR-15, PSR-17, PSR-18 (HTTP): comhéadain d'iarratais agus freagraí, middleware, monarchana agus cliaint HTTP. Tógann a lán creataí PHP orthu nó tairgeann droichid.
- PSR-11 (Container): comhéadan coiteann do choimeádáin Dependency Injection.
- PSR-6 agus PSR-16 (taisce): dhá chomhéadan do thaisceanna, ceann mionsonraithe agus ceann simplí.
- PSR-14 agus PSR-20 (imeachtaí, clog): comhéadain choiteanna d'imeachtaí agus don am reatha. Fágann clog inmhalartaithe cód atá spleách ar am, mar shampla comharthaí a rachaidh as feidhm, éasca le tástáil.
Dála an scéil, ní insíonn na huimhreacha aon ní faoin tábhacht. Sanntar iad nuair a théann moladh isteach sa chéim dréachta, agus dá bhrí sin tá moltaí imithe i léig agus tréigthe idir caighdeáin thábhachtacha ghlactha.
<?php
use Psr\Log\LoggerInterface;
final class Bestellimport
{
public function __construct(private LoggerInterface $log) {}
public function importieren(string $datei): void
{
try {
// ... an comhad a phróiseáil ...
} catch (\Throwable $e) {
$this->log->error('Import von {datei} fehlgeschlagen', [
'datei' => basename($datei),
'exception' => $e,
]);
}
}
}
Cad atá le déanamh ag PSRanna le slándáil
Baineann roinnt caighdeán go díreach leis an tslándáil. Socraíonn PSR-3 go gcuirtear eisceachtaí ar aghaidh faoin eochair exception sa chomhthéacs agus go gcuirtear sealbhóirí áite ar nós {datei} in ionad luachanna ón gcomhthéacs. Níor cheart luachanna a chosc roimh ré, mar níl a fhios ag an logger cá dtaispeánfar iad ar ball. An té a thaispeánann logaí i gcomhéadan gréasáin, ní mór dó a chosc ansin. Tuilleadh san alt Logáil shábháilte.
Déanann PSR-7 cur síos ar theachtaireachtaí HTTP mar oibiachtaí do-athraithe agus tairgeann sé bealach aonfhoirmeach chun comhaid uaslódáilte a stóráil le UploadedFileInterface::moveTo(). Éilíonn an sonrúchán go mbaintear an bunchomhad ina dhiaidh. Fanann seiceáil chineál an chomhaid agus na ceann scríbe mar chúram don fheidhmchlár.
Is díol suntais é gur tréigeadh PSR-9 (Security Advisories) agus PSR-10 (Security Reporting Process). Dá bhrí sin níl caighdeán coiteann ann do thuairiscí slándála; rialaíonn gach tionscadal é féin. Míníonn an leathanach Conas a láimhseálann tionscadal PHP leochaileachtaí slándála conas a láimhseálann tionscadal PHP féin leochaileachtaí.
I gcoinne PHP2Shell ní chabhraíonn caighdeáin: tá na leochaileachtaí CVE-2026-109618 agus CVE-2026-109619 san ateangaire. Is éigeantach an nuashonrú go PHP 8.5.12, 8.4.27, 8.3.36 nó 8.2.35 agus atosú gach próisis PHP.
Conas a chabhraíonn PHP SOS go praiticiúil?
- Seiceálaimid conas a logálann d'fheidhmchlár agus cinntímid go dtéann eisceachtaí isteach sa loga, ach gan sonraí rochtana ná aitheantóirí seisiúin.
- Measaimid conas a cuireadh próiseáil uaslódálacha agus HTTP i bhfeidhm, fiú má ritheann sí trí leabharlanna PSR-7.
- Scrúdaímid forbairtí féin mar chuid d'iniúchadh slándála agus tástáil threáite.
- Suiteálaimid nuashonruithe PHP, atosaímid gach oibrí agus déanaimid an staid a dhoiciméadú.
Ceisteanna coitianta
Cad is brí le PSR?
Seasann PSR do PHP Standards Recommendation. Déanann an PHP-FIG, an PHP Framework Interop Group, na moltaí a ullmhú agus a chomhaontú. Tá siad deonach, ach cuireann a lán creataí agus leabharlanna i bhfeidhm iad.
An bhfuil PSR-12 fós i bhfeidhm?
Tá PSR-12 liostaithe fós mar ghlactha ag an PHP-FIG. Ach d'fhoilsigh an PHP-FIG comharba leis an PER Coding Style, a leathnaíonn agus a chuireann PSR-12 ina áit, dar leis féin. Is é leagan 3.1 an leagan reatha ansin.
An bhfuil PSR ann do thuairiscí slándála?
Bhí dhá mholadh ann, PSR-9 do Security Advisories agus PSR-10 don phróiseas chun leochaileachtaí slándála a thuairisciú. Tá an bheirt liostaithe mar thréigthe ag an PHP-FIG. Rialaíonn tionscadail a bpróiseas tuairiscithe féin dá bhrí sin.
An gcaithfidh mo thionscadal cloí le PSRanna?
Ní chaithfidh, níl aon oibleagáid ann. Éascaíonn PSR-4 don uathluchtú agus na comhéadain ar nós PSR-3 nó PSR-7, áfach, úsáid pacáistí coimhthíocha agus athrú soláthraithe seirbhíse go mór.