Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana thinkphp mengikat modul

Bagaimana thinkphp mengikat modul

WBOY
WBOYasal
2023-05-29 14:26:09683semak imbas

Dengan perkembangan teknologi Internet yang berterusan, semakin banyak laman web dan aplikasi menggunakan corak MVC sebagai rangka kerja reka bentuk Antaranya, rangka kerja PHP yang diwakili oleh ThinkPHP adalah salah satu corak MVC yang lebih popular. Dalam rangka kerja ThinkPHP, modul merupakan konsep yang sangat penting Modul boleh digunakan untuk membahagikan aplikasi kepada modul berfungsi yang berbeza untuk pengurusan dan penyelenggaraan yang mudah. Tetapi pemula mungkin menghadapi masalah, iaitu, cara mengikat modul Di bawah kami akan memperkenalkan secara terperinci bagaimana ThinkPHP mengikat modul.

1 Buat modul

Sebelum kita mula mengikat modul, mari buat modul dahulu. Mengambil contoh mencipta modul bernama Blog, kita perlu mencipta direktori bernama Blog dalam direktori aplikasi rangka kerja ThinkPHP, dan kemudian mencipta pengawal bernama Index dan pengawal bernama index.html dalam fail Templat Blog. Operasi khusus adalah seperti berikut:

  1. Buka direktori aplikasi ThinkPHP, yang biasanya merupakan direktori bernama Application di bawah direktori www.
  2. Buat direktori bernama Blog dalam direktori aplikasi Nama direktori mestilah sama dengan nama modul.
  3. Buat fail pengawal bernama Index dalam direktori Blog Nama fail pengawal mestilah sama dengan nama kelas pengawal (dalam contoh ini, nama kelas pengawal ialah IndexController dan nama fail ialah IndexController.class . php).
  4. Tambah kaedah bernama indeks dalam fail pengawal Indeks untuk mengendalikan permintaan halaman web.
  5. Buat fail templat bernama index.html dalam direktori Blog untuk memaparkan kandungan halaman web.

Contoh kod:

Fail pengawal IndexController.class.php:

<?php
namespace BlogController;
use ThinkController;

class IndexController extends Controller {
    public function index(){
        $this->display();
    }
}

Fail templat index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Blog</title>
</head>
<body>
    <h1>Welcome to my blog!</h1>
</body>
</html>

2. Binding Define modul

Selepas mencipta modul Blog, kita perlu mengikatnya pada aplikasi supaya sistem mengetahui modul mana yang patut diakses adalah seperti berikut:

  1. Buka aplikasi Fail konfigurasi config.php dalam direktori.
  2. Cari item konfigurasi DEFAULT_MODULE dan tukar nilainya kepada Blog.
  3. Simpan fail konfigurasi yang diubah suai.

Contoh kod:

fail config.php:

<?php
return array(
    'DEFAULT_MODULE'     => 'Blog', // 默认模块名
    ...
);

Selepas mengubah suai fail konfigurasi, anda boleh mengakses modul Blog melalui URL berikut:

http://yourdomain/Blog

3 Sub-modul yang mengikat

Kadangkala, kita perlu membahagikan modul kepada berbilang sub-modul. kita boleh menambah artikel Halaman senarai dan butiran artikel dibuat sebagai sub-modul yang berbeza. Operasi khusus adalah seperti berikut:

  1. Buat direktori bernama Artikel di bawah direktori Blog.
  2. Buat pengawal bernama Index dan fail templat bernama list.html dalam direktori Artikel untuk memaparkan senarai artikel.
  3. Buat pengawal bernama Butiran dan fail templat bernama index.html dalam direktori Artikel untuk memaparkan halaman butiran artikel.

Fail pengawal Artikel/IndexController.class.php:

<?php
namespace BlogControllerArticle;
use ThinkController;

class IndexController extends Controller {
    public function index(){
        $this->display();
    }
}

Fail pengawal Artikel/DetailsController.class.php:

<?php
namespace BlogControllerArticle;
use ThinkController;

class DetailsController extends Controller {
    public function index(){
        $this->display();
    }
}

Fail templat Artikel/senarai .html :

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Article List</title>
</head>
<body>
    <h1>Article List</h1>
</body>
</html>

Fail templat Artikel/index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Article Details</title>
</head>
<body>
    <h1>Article Details</h1>
</body>
</html>
  1. Buka fail konfigurasi config.php dalam direktori aplikasi.
  2. Cari item konfigurasi URL_CASE_INSENSITIVE dan ubah suai nilainya kepada benar untuk menjadikan URL tidak peka huruf besar-besaran.
  3. Cari item konfigurasi MODULE_ALLOW_LIST dan ubah suai nilainya kepada Blog, Blog/Artikel untuk membenarkan akses kepada modul Blog dan Blog/Artikel.
  4. Simpan fail konfigurasi yang diubah suai.

Contoh kod:

fail config.php:

<?php
return array(
    'DEFAULT_MODULE'     => 'Blog', // 默认模块名
    'URL_CASE_INSENSITIVE'  => true, // URL不区分大小写
    'MODULE_ALLOW_LIST' => array('Blog','Blog/Article'), // 允许访问的模块
    ...
);

Selepas mengubah suai fail konfigurasi, anda boleh mengakses sub-modul Artikel melalui URL berikut:

http://yourdomain/Blog/Article/index

http://yourdomain/Blog/Article/details

Apa yang anda perlu beri perhatian semasa mengikat submodul ialah bahawa pengawal dan fail templat Ia mesti disimpan dalam cara pengelompokan, dan awalan kumpulan perlu ditambah pada nama kelas pengawal Contohnya, dalam contoh ini, ruang nama kelas pengawal ialah BlogControllerArticle. Pada masa yang sama, fail konfigurasi perlu mengehadkan modul yang dibenarkan akses kepada modul induk dan modul anak.

4. Ringkasan

Modul pengikatan ialah pautan yang sangat penting dalam model ThinkPHP MVC Melalui modul pengikatan, aplikasi boleh dibahagikan kepada beberapa modul berfungsi, dan logik kod dan The susun atur diasingkan untuk pengurusan dan penyelenggaraan yang mudah. Artikel ini menyediakan pengenalan terperinci tentang cara ThinkPHP mengikat modul, daripada membuat modul, mengikat modul kepada sub-modul yang mengikat saya harap ia akan membantu pemula.

Atas ialah kandungan terperinci Bagaimana thinkphp mengikat modul. 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