Rumah >pembangunan bahagian belakang >tutorial php >Rangka Kerja API PHP Tulisan Tangan (1) Spesifikasi PSR
Artikel ini membawakan anda pengetahuan yang berkaitan tentang PHP terutamanya mengenai piawaian pengekodan dengan anda juga disyorkan agar anda cuba mengikuti piawaian semasa pembangunan membantu anda.
Saya harap ia dapat membantu anda membina sendiri dengan cepat rangka kerja dan membawa beberapa faedah kepada kerja atau kajian anda. Datang untuk mendapatkan bantuan dan inspirasi.
Spesifikasi PSR
Penggunaan komposer
Bina dengan cepat rangka kerja antara muka API
Redis aplikasi pelbagai jenis data
Analisis aplikasi cache
Sebelum membangunkan rangka kerja, izinkan saya memperkenalkan spesifikasi diikuti dengan pembangunan rangka kerja.
Kebanyakan bahasa pengaturcaraan mempunyai set standard pengekodan mereka sendiri Sebagai "bahasa terbaik di dunia", PHP pastinya mempunyai piawaian pengekodannya sendiri. Spesifikasi ini ialah Pengesyoran Standard PHP (pendek kata PSR).
Sudah tentu, dari kerja saya sendiri, saya mendapati bahawa ramai pengaturcara PHP, terutamanya pengaturcara junior, tidak tahu bahawa PHP mempunyai spesifikasi sedemikian, saya rasa ini tidak saintifik.
Apakah itu PSR?
Sebelum memperkenalkan PSR, kami perlu memperkenalkan organisasi yang merumuskan spesifikasi ini -----PHP-FIG, nama penuhnya ialah PHP Framework Interoperability.
Ahli organisasi merumuskan spesifikasi dan melaksanakannya dalam projek mereka sendiri Walaupun ia bukan organisasi rasmi, ia juga mewakili kebanyakan projek komuniti PHP, seperti CakePHP, Composer, Drupal, PEAR, Slim, rangka kerja Yii, Zend. Rangka kerja tunggu. Dan semakin banyak projek menyertai dan mengikuti piawaian ini.
Tujuan projek PSR adalah untuk merumuskan piawaian kerjasama dengan tahap sekatan paling rendah melalui perbincangan antara pengarang rangka kerja atau wakil rangka kerja Setiap rangka kerja mengikut piawaian pengekodan bersatu untuk membolehkan jurutera bekerja bersama dengan lebih baik.
Sehingga kini, 20 item telah disenaraikan di laman web rasmi Tidak termasuk dalam penggubalan dan dibuang, terdapat 13 item berikut.
Mari kita lihat spesifikasi ini:
Spesifikasi Pengekodan Asas PSR-1
Spesifikasi gaya kod PSR-12
Spesifikasi PSR-12 sangat terperinci Mengandungi perihalan pengisytiharan, ruang nama, kelas dan warisan serta struktur kawalan.
Mari kita lihat demo dahulu:
<?php declare(strict_types=1); namespace Vendor\Package; use Vendor\Package\{ClassA as A, ClassB, ClassC as C}; use Vendor\Package\SomeNamespace\ClassD as D; use function Vendor\Package\{functionA, functionB, functionC}; use const Vendor\Package\{ConstantA, ConstantB, ConstantC}; class Foo extends Bar implements FooInterface { public function sampleFunction(int $a, int $b = null): array { if ($a === $b) { bar(); } elseif ($a > $b) { $foo->bar($arg1); } else { BazClass::bar($arg2, $arg3); } } final public static function bar() { // method body } }
控制结构关键词后必须有一个空格。 左括号 ( 后一定不能有空格。 右括号 ) 前也一定不能有空格。 右括号 ) 与开始花括号 { 间一定有一个空格。 结构体主体一定要有一次缩进。 结束花括号 } 一定在结构体主体后单独成行。复制代码Mengenai spesifikasi yang berkaitan untuk memuatkan kelas yang sepadan secara automatik daripada laluan fail, spesifikasi ini boleh dikendalikan dan boleh digunakan sebagai tambahan kepada mana-mana spesifikasi pemuatan automatik, termasuk PSR-0, selain itu, PSR ini juga termasuk spesifikasi laluan penyimpanan fail yang sepadan dengan kelas yang dimuatkan secara automatik.
"Kelas" di sini merujuk kepada semua kelas, antara muka, ciri blok kod boleh guna semula dan struktur lain yang serupa.
Nama kelas yang lengkap mesti mempunyai struktur berikut:menjadi A Ruang nama peringkat atas, dipanggil "ruang nama vendor";
\(\)*\
boleh mempunyai satu atau lebih ruang kecil
mestimempunyai nama kelas akhir; >
Nama kelas lengkap boleh terdiri daripada mana-mana huruf besar dan huruf kecil; Sensitif huruf besar.
Apabila memuatkan fail yang sepadan berdasarkan nama kelas yang lengkap...
sepadan dengan "direktori asas fail" yang sepadan dan pemisah ruang nama di dalamnya akan digunakan sebagai pemisah direktori. Nama kelas
di hujungmesti mempunyai nama yang sama dengan fail yang sepadan dengan akhiran
.Pelaksanaan pemuat auto tidak boleh .php
membuang pengecualian,
mempunyai nilai pulangan. Contoh
Klik untuk melihat lebih banyak cadangan spesifikasi terkini
完整类名 | 命名空间前缀 | 文件基目录 | 文件路径 |
---|---|---|---|
AcmeLogWriterFile_Writer | AcmeLogWriter | ./acme-log-writer/lib/ | ./acme-log-writer/lib/File_Writer.php |
AuraWebResponseStatus | AuraWeb | /path/to/aura-web/src/ | /path/to/aura-web/src/Response/Status.php |
SymfonyCoreRequest | SymfonyCore | ./vendor/Symfony/Core/ | ./vendor/Symfony/Core/Request.php |
ZendAcl | Zend | /usr/includes/Zend/ | /usr/includes/Zend/Acl.php |
Pembelajaran yang disyorkan: "Tutorial Video PHP
"Atas ialah kandungan terperinci Rangka Kerja API PHP Tulisan Tangan (1) Spesifikasi PSR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!