PSRs (PHP Standard Recommendations) sune jerin daidaitawa da PHP-FIG (Framework Interoperability Group) ta buga wanda ke bayyana daidai-daidai gida — salon rubuce-rubuce, autoloading, da haɗin gida wajen kaici — wajen ba da damar interoperability tsakanin tsarin PHP daban-daban, laburori, da fakitoci.
Mahimman PSRs
PSR-1 / PSR-12 → CODING STYLE (basic + extended): naming, braces, indentation, etc.
PSR-4 → AUTOLOADING: namespace ↔ directory mapping (used by Composer)
PSR-3 → LoggerInterface: a common logging interface
PSR-7 → HTTP message interfaces (Request/Response objects)
PSR-11 → ContainerInterface: a common DI container interface
PSR-15 → HTTP middleware interface
PSR-6 / PSR-16 → Caching interfaces
PSR-18 → HTTP client interface
PSR-4 autoloading (wanda kuke amfani da shi kullum)
// composer.json — PSR-4 maps namespaces to directories
{ "autoload": { "psr-4": { "App\\": "src/" } } }
// App\Models\User → src/Models/User.php — Composer autoloads it automatically
PSR-4 shine daidaitawan autoloading wanda duk PHP na zamani ya dogara shi — shi ne dalilin da Composer ke iya nemo da loda kowane ajali ta namespace ɗinta.
PSR interfaces suna ba da damar interoperability
// because libraries depend on the PSR-3 LoggerInterface (not a concrete logger),
// you can swap ANY PSR-3-compliant logger (Monolog, etc.) without changing code
use Psr\Log\LoggerInterface;
class Service {
public function __construct(private LoggerInterface $logger) {} // PSR-3 interface
}
// inject Monolog, or any PSR-3 logger — the service doesn't care which
Haɗin gida wajen kaici (PSR-3 logging, PSR-7 HTTP, PSR-11 container) na nufin laburori na iya dogara shi ne daidaitawan haɗin gida maimakon takamaiman aiwatar — saboda haka abubuwan gida daga magidani daban-daban sune *mabadewa.
PSR-12 salon rubuce-rubuce (daidaituwa)
PSR-12 defines a standard code style (spacing, brace placement, naming).
Following it → consistent code across teams and projects; tools (PHP-CS-Fixer,
PHPCS) auto-format/check against it. Most modern PHP projects adopt PSR-12.
Me yasa suke da mahimmanci
PSR standards suna mahimmanci ga sahihaccen development na PHP saboda suna ba da damar interoperability wanda ke sanya tsarin jijiya na PHP na zamani ya yi aiki — ba tare da daidai-daidai gida ba, tsarinai da laburori daga tushen iri-iri ba zasu iya yi aiki tare cikin sauji ba. /fahimta su yana da mahimmanci saboda abubuwa da yawa. PSR-4 autoloading shine tushe kuma ana amfani da shi kullum — shi ne daidaitawan namespace-zuwa-directory wanda Composer ya dogara shi don loda ajali ta atomatik, wanda ke juna mutincin tsarin kowane tsarin PHP na zamani.
Haɗin gida wajen kaici PSRs (PSR-3 logging, PSR-7 HTTP messages, PSR-11 containers, PSR-15 middleware) sune abin da ya ba da damar abubuwan gida daga magidani daban-daban su zama mabadewa: saboda laburori suna dogara shi ne daidaitawan haɗin gida maimakon aiwatar da gawowa, kuna iya maye gurbin kome da-ya-amma aiwatar (kome da-ya-amma PSR-3 logger, kome da-ya-amma PSR-7 HTTP library) ba tare da canja code ba — wata mahimmanciyar ba da damar sakakkyar tsarin wanda ba haɗi ba da dalilin da PHP jijiyar kayan ita take daidaita. PSR-12 salon rubuce-rubuce na kawo da daidaituwa cikin dangi da tsarin (wanda kayan ke aiwatar), wanda yawancin PHP na zamani ya dauka. /sanin mahimman PSRs — musamman PSR-4 (autoloading), haɗin gida wajen kaici (interoperability), da PSR-12 (salon) — da matsayin PHP-FIG yana bayyana fahimta ta walwala na yaya tsarin jijiya na PHP na zamani ke samu daidaituwa da interoperability.
Domin bin PSRs shine aikin dadi a cikin professional na PHP, kuma domin suna juna Composer, interoperability na tsarin, da ingancin code, fahimta da su yana ba da lahani sanin matata wanda ke bambanta masu rubuce PHP wanda ya hada hazo, professional daga waɗanda ba sani ba game da daidai-daidai da ya sanya PHP na zamani shine haɗin-haɗin da interoperable.
