Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan atribut untuk pengurusan metadata dalam PHP8.0

Cara menggunakan atribut untuk pengurusan metadata dalam PHP8.0

WBOY
WBOYasal
2023-05-14 08:33:051481semak imbas

PHP ialah bahasa pengaturcaraan sebelah pelayan yang popular yang biasa digunakan untuk pembangunan web. Baru-baru ini, keluaran PHP 8.0 telah membawa banyak ciri baharu dan penambahbaikan kepada pembangun, salah satu ciri baharu yang sangat praktikal ialah atribut. Atribut ialah metadata yang digunakan untuk menandakan dan menerangkan elemen seperti kelas, kaedah dan sifat dalam kod.

Dalam artikel ini, kami akan meneroka cara menggunakan atribut dalam PHP 8.0 untuk pengurusan metadata. Ini meliputi mencipta, menggunakan dan mengakses atribut, serta menunjukkan beberapa contoh praktikal menggunakan atribut.

Membuat atribut
Dalam PHP 8.0, mencipta atribut adalah mudah. Anda hanya perlu mengisytiharkan kelas baharu sebelum elemen seperti kelas, kaedah, atribut, dsb., dan tambah ulasan khas #[Attribute].

Contohnya:

[Attribute]

class MyAttribute {
// ...
}

Di sini kami mengisytiharkan nama Kelas atribut baharu untuk MyAttribute. Kita boleh menentukan sifat dan kaedah di dalam kelas untuk menerangkan elemen yang ingin kita tandai.

Untuk atribut ringkas yang tidak memerlukan data dalaman, tiada parameter diperlukan, contohnya:

[Attribute]

class MySimpleAttribute {
// ...
}

Walau bagaimanapun, jika kita ingin menghantar beberapa data kepada atribut, kita boleh melakukannya melalui kaedah pembina atau penetap. Contohnya:

[Attribute]

class MyDataAttribute {
public function __construct(public string $data) {}
}

Di sini kita berada dalam pembina Harta awam bernama $data ditakrifkan untuk menerima data yang diluluskan. Apabila menggunakan atribut ini, anda boleh menghantar rentetan sebagai parameter, contohnya:

[MyDataAttribute("Some data")]

class MyClass {
// ...
}

Menggunakan atribut
Dalam PHP 8.0, kita boleh menggunakan atribut pada kelas, kaedah dan sifat. Kaedah penggunaannya sangat mudah, cuma tambah nama atribut sebelum elemen.

Contohnya:

[MyAttribute]

class MyClass {
#[MyAttribute]
public $myProperty;

#[MyAttribute ]
fungsi awam myMethod() {}
}

Di sini kami menggunakan MyAttribute pada kelas, atribut dan kaedah. Apabila kita perlu menggunakan berbilang atribut, kita boleh menambah berbilang nama atribut sebelum elemen dan memisahkannya dengan koma.

Contohnya:

[Attribute1, Attribute2("Some data"), Attribute3]

class MyClass {
// ...
}

Mengakses atribut
Dalam PHP 8.0, kita boleh menggunakan API pantulan untuk mengakses atribut elemen. API Refleksi ialah satu set alat untuk memeriksa elemen seperti kelas, kaedah dan sifat pada masa jalan. Menggunakan API pantulan, kita boleh mendapatkan semua atribut elemen dan mengakses sifat dan kaedahnya.

Sebagai contoh, untuk mengakses atribut $data dalam MyDataAttribute, anda boleh menggunakan kod berikut:

$class = new ReflectionClass('MyClass');
$property = $class -> getProperty('myProperty');
$attributes = $property->getAttributes(MyDataAttribute::class);

foreach ($atribut sebagai $attribute) {
$data = $attribute- >newInstance()->data;
// lakukan sesuatu dengan $data...
}

Di sini kami menggunakan API refleksi untuk mendapatkan semua kejadian MyDataAttribute dan menggunakan kaedah newInstance untuk Mencipta tika baharu. Kami kemudiannya boleh mengakses sifat $data untuk mendapatkan data yang dihantar ke atribut. Dalam aplikasi praktikal, kami boleh melakukan pemprosesan lain mengikut keperluan.

Contoh Praktikal
Sekarang, mari lihat beberapa contoh praktikal menggunakan atribut.

1 Pengurusan laluan

Kami boleh menggunakan atribut untuk menandakan pengawal atau kaedah untuk menjana laluan secara automatik. Contohnya:

[Route('/home')]

class HomeController {
#[Route('/index')]
public function index() {

// show home page...

}

#[Route('/about')]
public function about() {

// show about page...

}
}

di Dalam contoh ini, kami menggunakan atribut Laluan tersuai untuk menandakan laluan penghalaan pengawal dan kaedah. Kami boleh menulis pengurus penghalaan untuk memetakan maklumat ini secara automatik kepada pengawal dan kaedah yang sepadan.

2 Pengurusan kebenaran

Kami boleh menggunakan atribut untuk menandakan pengawal atau kaedah untuk semakan kebenaran automatik. Contohnya:

[AdminOnly]

class AdminController {
#[AdminOnly]
public function delete($id) {

// delete the record...

}

#[AdminOnly]
kemas kini fungsi awam($id) {

// update the record...

}
}

Dalam contoh ini, kami menggunakan atribut AdminOnly tersuai untuk pengawal Tag dan kaedah memerlukan keistimewaan pentadbir untuk mengakses. Kami boleh menulis pengurus kebenaran yang menyemak peranan pengguna semasa dan memaparkan halaman 404 atau melompat ke halaman log masuk seperti yang diperlukan.

Kesimpulan
Dalam PHP 8.0, menggunakan atribut untuk pengurusan metadata ialah fungsi yang sangat praktikal. Ia boleh membantu kami menandai, menerangkan dan mengurus elemen seperti kelas, kaedah dan sifat, menjadikan kod lebih mudah dibaca, diselenggara dan diperluaskan. Dalam projek sebenar, kami boleh menggunakan atribut untuk melaksanakan pengurusan penghalaan, pengurusan kebenaran dan fungsi tersuai lain. Jika anda belum menggunakan atribut lagi, cubalah sekarang!

Atas ialah kandungan terperinci Cara menggunakan atribut untuk pengurusan metadata dalam PHP8.0. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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