Rumah pembangunan bahagian belakang tutorial php PHP MVC模式开发(一):统一站点入口_PHP教程

PHP MVC模式开发(一):统一站点入口_PHP教程

Jul 13, 2016 pm 05:41 PM
mvc php satu memperkenalkan Pintu masuk capai membangun dokumen model daripada tapak bersatu

本文介绍如何用php来实现MVC模式开发的文件。关于MVC模式的技术文章网上随处可以,所以这篇文件将不再讲述这种模式的优缺点(实际上是我说不清楚),只讲他的php技术实现。并且在以后的系列文章中也是以讲技术为主。

一、实现统一的网站入口(在MVC中调用Controler层的方法,也就是控制层)

大家也许经常在网上看到这样的路径(http://www.aaa.com/aaa/bbb/aaa?id=5),让人不解,这样的网站的实现方式有几种可能性:
    1、隐藏文件的扩展名,对这种做法的好处,众说纷纭,不过个人觉得没有必要;
    2、用了网站的重定向规则,实现虚拟路径;
    3、强制文件解析的方式,实现虚拟路径。
用第23种方法可以实现网站的统一接口,合理的整合网站,更好的体现网站的安全性和架构,用这两种方式的网站大多是使用“MVC”模式构建和实现的。
下面是一个例子

访问路径如下:
      ....../test/*******/Bad
      ....../test/*******/Good
    (其中的"******"可以用任何字符串替换,"......."是你的web路径)
 文件的目录结构如下
 |-- .htaccess
 |-- test
 |-- Application.php
 |-- Controler/GoodControler.php
 |-- Controler/BadControler.php

注意 文件".htaccess",在windows下不能直接建立的,可以在命令行模式下建立.
 文件0:(.htaccess)(这个文件是更改apache的配置方式用的)

forcetype application/x-httpd-php


文件 test.php
/*-------------------------------------
 * test.php
 *
 * 作为你的网站的入口的文件
 * 用来初始化和入口
 * 调用执行Controler的调用
 *
 -------------------------------------*/
require "Application.php";
$aa = new Application();
$aa->parse();
$aa->go();

?>
 
文件GoodControler.php
/*-------------------------------------
 * GoodControler.php
 *
 * 用来控制 url=/test/Good 来的访问
 *
 -------------------------------------*/
class GoodControler{
    /*
     * 控制类的调用方法,唯一的报漏给外部的接口
     */
    function control(){
     echo "this is from GoodControler url=*********/test/Good";
    }
}

?>
 
文件 BadControler.php
/*-------------------------------------
 * BadControler.php
 *
 * 用来控制 url=/test/Bad 来的访问
 *
 -------------------------------------*/
class BadControler{
    /*
     * 控制类的调用方法,唯一的报漏给外部的接口
     */
    function control(){
     echo "this is from GoodControler url=*********/test/Bad";
    }
}

?>

文件 Application.php
/*-------------------------------------
 * Application.php
 *
 * 用来实现网站的统一入口,调用Controler类
 *
 -------------------------------------*/
class Application{
//用来记录所要进行的操作
    var $action;
    //controler文件的路径名
    var $controlerFile;
    //controler的类名
    var $controlerClass;

    function Application(){
    }

    function parse(){
        $this->_parsePath();
        $this->_getControlerFile();
        $this->_getControlerClassname();
    }
    /*
     * 解析当前的访问路径,得到要进行动作
     */
    function _parsePath(){
     list($path, $param) = explode("?", $_SERVER["REQUEST_URI"]);
        $pos = strrpos($path, "/");
        $this->action = substr($path, $pos 1);
    }
    /*
     * 通过动作$action,解析得到该$action要用到的controler文件的路径
     */
    function _getControlerFile(){
     $this->controlerFile = "./Controler/".$this->action."Controler.php";
        if(!file_exists($this->controlerFile))
         die("Controler文件名(".$this->controlerFile.")解析错误");
        require_once $this->controlerFile;
    }
    /*
     * 通过动作$action,解析得到该$action要用到的controler类名
     */
    function _getControlerClassname(){
        $this->controlerClass = $this->action."Controler";
        if(!class_exists($this->controlerClass))
         die("Controler类名(".$this->controlerClass.")解析错误");
    }
    /*
     * 调用controler,执行controler的动作
     */
    function go(){
        $c = new $this->controlerClass();
        $c->control();
    }
}
?>
下节讲继续讲解PHP 中 MVC模式开发。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486163.htmlTechArticle本文介绍如何用php来实现MVC模式开发的文件。关于MVC模式的技术文章网上随处可以,所以这篇文件将不再讲述这种模式的优缺点(实际上是...
Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Pembalakan CakePHP Pembalakan CakePHP Sep 10, 2024 pm 05:26 PM

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

See all articles