Rumah > Artikel > pembangunan bahagian belakang > repositori PHP
Repositori, secara umum, bertanggungjawab untuk mengendalikan operasi sumber data. Repositori menyediakan kami cara terpusat untuk mengurus operasi berkaitan pangkalan data kami, meningkatkan kebolehbacaan kod dan memudahkan untuk menjejaki pengecualian jika ia berlaku. Ia juga membantu kami memisahkan kod daripada lapisan domain. Ia boleh menjadi antara muka, komponen atau kelas yang memisahkan domain dan operasi pangkalan data. Dalam topik ini, kita akan belajar tentang repositori PHP.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Di dalam ini, kami boleh menentukan operasi pangkalan data kami yang lebih serupa yang bertanggungjawab untuk mengambil data daripada pangkalan data, mengemas kininya dan memadamkannya. Bagaimana kita boleh mentakrifkan ini lihat di bawah;
interface name_oF_interface { // logic goes here. Can define the methods which are needed to haled the db operations }
Dalam sintaks di atas, kami mentakrifkan satu antara muka yang akan mengandungi kaedah yang berbeza. Kata kunci antara muka ini diikuti dengan nama antara muka yang ingin kami berikan. Mari lihat satu amalan sintaks untuk pemahaman yang lebih baik tentang sintaks lihat di bawah;
interface DemoInteface { public function cerate(Object $obj); public function delete($id); public function update(Object $obj); //many more methods we can define here. // but we need to provide their implementation as well in the class which is using this repo. }
Dalam sintaks di atas, kami telah menentukan kaedah baharu untuk operasi pangkalan data dan kami akan menyediakan pelaksanaannya dalam kelas yang berbeza.
Setakat ini, kami tahu bahawa repositori digunakan untuk mengendalikan operasi pangkalan data. Jadi sekarang kita boleh mengatakan bahawa ia bertindak sebagai lapisan antara peringkat data dan objek domain seperti bahasa lain. Ia datang dengan begitu banyak faedah, kerana ia memberikan kami pengurusan terpusat bagi operasi data kami. Juga, repositori membantu kami berurusan dengan entiti juga; kita boleh mengambil entiti tersebut dan memuatkannya dalam objek domain. Kita boleh menukar entiti ini juga.
Operasi asas yang dilakukan dengan menggunakan repositori adalah seperti berikut;
1. Kita boleh mengambil entiti daripada pangkalan data dan menyimpannya dalam memori atau kita boleh menukar objek entiti tersebut kepada objek domain untuk pengubahsuaian yang lebih baik kerana sentiasa disyorkan untuk tidak mengubah suai objek entiti secara langsung.
2. Selepas mengambil daripada pangkalan data, kami boleh mengemas kini objek tersebut dan menghantarnya untuk disimpan ke dalam pangkalan data dengan menggunakan repositori sahaja. Keseluruhan proses ini boleh dilakukan dengan menggunakan transaksi. Jika sebarang pengecualian berlaku semasa melakukan interaksi pangkalan data, kami boleh melancarkan keseluruhan transaksi.
3. Kita boleh mengendalikan pengecualian dengan mudah kerana semua pengecualian akan timbul pada lapisan kegigihan sahaja.
Apabila kami bekerja dengan corak repositori, kami mempunyai banyak lapisan, yang dikendalikan dengan betul. Sebagai contoh, kita mempunyai lapisan yang berbeza seperti:
Sekarang kita akan mengambil satu contoh di mana kita akan mentakrifkan beberapa kelas dan repositori mengikutnya dan cuba memahami cara ia sebenarnya berfungsi. Juga, kita akan melihat aliran repositori lihat di bawah;
Katakan kita perlu membantah di sini satu Pembeli, dan satu lagi Pesanan. Pesanan ini akan termasuk data Pembeli dan maklumat lain seperti alamat tempat kami mahu penghantaran, nama pesanan dan sebagainya. Jadi kami akan membahagikan ini kepada tiga lapisan yang diterangkan seperti di bawah;
1. Lapisan domain: Kami akan mencipta objek domain semua kelas yang tersedia. Dalam contoh kami, ia ialah kelas Pembeli dan Pesanan. Kedua-dua kelas ini akan berada di bawah lapisan domain corak repositori. Kami akan menggunakan objek ini untuk menyimpan data daripada pangkalan data.
2. Lapisan kegigihan: Lapisan kegigihan ini hanyalah repositori yang boleh kita katakan. Pada tahap ini, hanya kami yang mencipta repositori kami, yang sekali lagi akan berinteraksi dengan pangkalan data. Tetapi untuk ini, kami akan mencipta antara muka yang akan mengandungi semua kaedah yang diperlukan untuk mengendalikan operasi antara pembeli dan pesanan. Lapisan ini juga akan membantu kami menjejaki pengecualian dan ia akan berada di bawah lapisan kegigihan sahaja.
kelas :
Kelas pembeli
class Buyer { public $id; public $gender; public $email; public $firstName; public $lastName; }
Kelas pesanan
class Order { public $id; public $order_name; public $order_description; public $amount; public $quantity; public $buyerid; }
Repositori:
inteface OrderRepo { // we can define our methods here according to requirement. }
Seperti yang anda lihat dalam logik di atas bahawa kita sedang berurusan dengan lapisan yang berbeza. Beginilah cara corak repositori berfungsi dalam PHP. Ia agak serupa dengan bahasa lain.
Dalam contoh ini, kami mencipta satu repositori untuk memanggil kaedah yang berbeza. Tetapi setakat ini, kami tidak menggunakan db di sini. Jadi, kami hanya akan mencetak mesej selepas memanggil kaedah Repositori.
Kelas pekerja :
class Employee { public $id; public $emp_first_name; public $emp_last_name; public $gender; public $email; public $city; } interface EmployeeRepo { public function findById($id); public function create(Employee $emp); public function delete(Employee $emp); public function update(Employee $emp); }
Repository implementations for the employee :
class SQLEmployeeRepo implements EmployeeRepo { public function create(Employee $emp) { print("saving employee data here !!"); } public function findById($id) { print("finding employee data here !!"); } public function delete(Employee $emp) { print("deleting employee data here !!"); } public function update(Employee $emp) { print("updating employee data here !!"); } }
Employee Controller class:
class EmployeeControllerDemo { public function create(EmployeeRepo $repo) { $emp = new Employee; $user->emp_first_name = $_POST['emp_first_name']; $user->emp_last_name = $_POST['emp_last_name']; $user->city = $_POST['city']; $repo->create($user); // here we are creating emp object and calling creae method. } }
Output :
The repository makes our code centralized, more readable, maintainable, and easy to understand. By using the repository, we can easily track the exception and errors if they occurred at the repository level while interacting with the database. It also helps us to decouple our code with less dependency on each other. It acts as a thin layer between the db and persistence layer; some called it part of persistence only.
Atas ialah kandungan terperinci repositori PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!