Menggunakan Corak Penghias
Corak penghias melibatkan membalut objek dalam objek lain, memberikan kefungsian yang dipertingkatkan. Ia menangani isu kebolehlanjutan tanpa mengubahsuai kelas asal. Berikut ialah contoh:
class SecureContainer { protected $target; protected $acl; public function __construct( $target, $acl ) { $this->target = $target; $this->acl = $acl; } public function __call( $method, $arguments ) { if ( method_exists( $this->target, $method ) &&& $this->acl->isAllowed( get_class($this->target), $method ) ){ return call_user_func_array( array( $this->target, $method ), $arguments ); } } } $acl = new AccessControlList( $currentUser ); $controller = new SecureContainer( $controller, $acl ); $controller->actionIndex(); // Execute method with ACL checking
Pendekatan ini:
Untuk menyemak akses untuk Objek Domain dengan pemilik yang ditentukan:
Pilihan 1 (Undang-undang Demeter sedar):
$this->acl->isAllowed( get_class($this->target), $method )
Pilihan 2 (Meminta butiran yang berkaitan):
$command = array( get_class($this->target), $method ); $this->acl->isAllowed( $this->target->getPermissions(), $command )
Pertimbangkan video ini untuk pemahaman lanjut:
Model dalam MVC bukan kelas. Ia merangkumi lapisan yang mengandungi:
Logik Perniagaan Domain: Berurusan dengan pengiraan, semakan keadaan dan pelaksanaan peraturan perniagaan.
Akses dan Storan Data: Mengendalikan operasi berkaitan data, seperti pangkalan data interaksi.
Perkhidmatan: Abstraksi yang memudahkan kod pengawal, selalunya menyesuaikan objek domain, komponen dan pemeta.
Atas ialah kandungan terperinci Bagaimana untuk Melindungi Aplikasi MVC Web Anda dengan Senarai Kawalan Akses (ACL)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!