PHP MVC模式开发(一):统一站点入口_PHP教程
本文介绍如何用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模式开发。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP est un framework MVC open source. Cela facilite grandement le développement, le déploiement et la maintenance des applications. CakePHP dispose d'un certain nombre de bibliothèques pour réduire la surcharge des tâches les plus courantes.
