⊗ppMVDFmMdP 35 of 35 menu

Triển khai lớp cha của tất cả Model trong framework MVC tự xây dựng

Hãy cùng triển khai lớp cha cho tất cả các Model:

<?php namespace Core; class Model { private $link; public function __construct() { $this->link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query($this->link, "SET NAMES 'utf8'"); } protected function findOne($query) { // sẽ có code ở đây } protected function findMany($query) { // sẽ có code ở đây } } ?>

Như bạn thấy, trong constructor của lớp, chúng ta thực hiện kết nối đến cơ sở dữ liệu. Tuy nhiên, có một vấn đề: mỗi Model được tạo (nếu trong một hành động của controller có nhiều Model) sẽ thực hiện kết nối riêng của nó đến cơ sở dữ liệu, và điều này không tối ưu.

Hãy làm sao để kết nối đến cơ sở dữ liệu chỉ được tạo cho Model đầu tiên, còn các Model khác sử dụng kết nối đã được tạo sẵn. Để làm điều này, chúng ta sẽ biến thuộc tính link thành tĩnh:

<?php namespace Core; class Model { private static $link; public function __construct() { if (!self::$link) { // nếu thuộc tính chưa được gán, thì kết nối self::$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); mysqli_query(self::$link, "SET NAMES 'utf8'"); } } protected function findOne($query) { } protected function findMany($query) { } } ?>

Sao chép code lớp Model đã cho và đặt nó vào tệp /core/Model.php.

Triển khai phương thức findOne trong lớp này. Kiểm tra hoạt động của nó.

Triển khai phương thức findMany trong lớp này. Kiểm tra hoạt động của nó.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối