Jadual Kandungan
Niat asal penciptaan
Apa yang anda boleh pelajari
Rumah pembangunan bahagian belakang tutorial php Rangka Kerja API PHP Tulisan Tangan (1) Spesifikasi PSR

Rangka Kerja API PHP Tulisan Tangan (1) Spesifikasi PSR

Feb 10, 2023 am 10:31 AM
php Piawaian pengekodan

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.

Niat asal penciptaan

  • Pernahkah anda bosan menggunakan CURD?
  • Adakah pelbagai rangka kerja agak menggembirakan?
  • Pernahkah anda cuba mereka bentuk rangka kerja sendiri?
  • Saya telah mempelajari sintaks PHP, tetapi saya tidak mempunyai projek untuk mempraktikkannya, jadi saya boleh meletakkan asas yang kukuh

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.

Apa yang anda boleh pelajari

  • 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.

Rangka Kerja API PHP Tulisan Tangan (1) Spesifikasi PSR


Mari kita lihat spesifikasi ini:

Spesifikasi Pengekodan Asas PSR-1

  • Fail kod PHP mesti bermula dengan tag
  • Fail kod PHP mesti dikodkan dalam UTF-8 tanpa BOM
  • Kod PHP hanya perlu menentukan Untuk pengisytiharan kelas, fungsi, pemalar, dsb., atau operasi lain yang akan menghasilkan kesan sampingan (seperti menjana output fail dan mengubah suai fail konfigurasi .ini, dsb.), anda hanya boleh memilih salah satu daripada dua
  • Ruang nama dan kelas mesti mematuhi PSR Spesifikasi pemuatan automatik PSR-4
  • Penamaan kelas mesti mengikut konvensyen penamaan kes unta gaya StudlyCaps bermula dengan huruf besar
  • Semua huruf pemalar dalam kelas mesti menggunakan huruf besar dan perkataan dipisahkan dengan garis bawah
  • Nama kaedah mesti mematuhi konvensyen penamaan camelCase gaya camelCase

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
    }
}
Salin selepas log masuk
  • Kod mesti mengikut spesifikasi pengekodan dalam [PSR-1]
  • Semua fail PHP mesti gunakan Unix LF (linefeed) sebagai penamat baris; 🎜 >Bilangan aksara dalam setiap baris hendaklah disimpan dengan lembut dalam 80. Secara teori, ia mestilah tidak lebih daripada 120, tetapi mesti tiada ruang tambahan selepas baris bukan kosong;
  • Garis kosong memudahkan anda membaca kod dan membantu memecahkan kod kepada beberapa bahagian.
  • Setiap baris tidak boleh mengandungi lebih daripada satu pernyataan
  • Kod mesti diinden dengan 4 ruang dan kunci tab tidak boleh digunakan
  • Semua kata kunci PHP mestilah semuanya huruf kecil
  • Spesifikasi asas struktur kawalan adalah seperti berikut:
  • Terdapat banyak spesifikasi gaya pengekodan, jadi saya tidak akan menerangkannya satu per satu di sini boleh membacanya sendiri
  • Pemuatan Auto PSR-4
控制结构关键词后必须有一个空格。
左括号 ( 后一定不能有空格。
右括号 ) 前也一定不能有空格。
右括号 ) 与开始花括号 { 间一定有一个空格。
结构体主体一定要有一次缩进。
结束花括号 } 一定在结构体主体后单独成行。复制代码
Salin selepas log masuk
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:
  • Nama kelas yang lengkap
  • mesti

    menjadi A Ruang nama peringkat atas, dipanggil "ruang nama vendor";

     \<命名空间>(\<子命名空间>)*\<类名>
    Salin selepas log masuk
    • Nama kelas yang lengkap

      boleh mempunyai satu atau lebih ruang kecil

    • Nama kelas lengkap

      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...

    Dalam nama kelas yang lengkap, keluarkan Pembatas ruang nama pertama, satu atau lebih ruang nama dan ruang kecil berturut-turut sebelumnya, sebagai "awalan ruang nama", mesti sepadan dengan sekurang-kurangnya satu "direktori asas fail"
    • The ruang kecil
    • sejurus selepas awalan ruang nama mesti

      sepadan dengan "direktori asas fail" yang sepadan dan pemisah ruang nama di dalamnya akan digunakan sebagai pemisah direktori. Nama kelas

      di hujung
    • mesti mempunyai nama yang sama dengan fail yang sepadan dengan akhiran

      .
    • Pelaksanaan pemuat auto tidak boleh .php membuang pengecualian,

      tidak boleh
    • mencetuskan sebarang tahap mesej ralat dan
    • Sepatutnya

      mempunyai nilai pulangan. Contoh

    • Jadual berikut menunjukkan laluan fail yang sepadan dengan nama kelas lengkap, awalan ruang nama dan direktori asas fail yang mematuhi spesifikasi .
  • Buat masa ini, kami hanya akan memperkenalkan tiga spesifikasi yang biasa digunakan ini.

    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

    Bahagian ini terutamanya memperkenalkan spesifikasi pengekodan PHP PSR Adalah disyorkan agar semua orang cuba mengikuti spesifikasi ini semasa pembangunan , terutamanya Apabila membangun sebagai satu pasukan, kita tidak sepatutnya mempunyai gaya pengekodan kita sendiri, tetapi harus menyatukan gaya itu sebaik mungkin. Seperti yang dinyatakan oleh niat asal organisasi PHP-FIG, spesifikasi yang mereka tetapkan bukan untuk menyekat kebebasan pengekodan semua orang, tetapi untuk mencari persamaan supaya kita boleh bekerjasama dengan lebih baik.

    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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles