PHP url的pathinfo模式加载不同控制器的简单实现
使用自动加载和解析url的参数,实现调用到不同的控制器,实现了pathinfo模式和普通的url模式
文件结构:
|--Controller
|--Index
|--Index.php
|--Application.php
Application.php
<?php class Application{ public static function main(){ header("content-type:text/html;charset=utf-8"); self::register(); self::router(); } public static function register(){ spl_autoload_register("self::loadClass"); } public static function loadClass($class){ $class=str_replace('\', '/', $class); $class="./".$class.".php"; require_once $class; } public static function router(){ if(isset($_SERVER['PATH_INFO'])){ $pathinfo=array_filter(explode("/", $_SERVER['PATH_INFO'])); for($i=1;$i<=count($pathinfo);$i++){ $key=isset($pathinfo[$i]) ? $pathinfo[$i] : ''; $value=isset($pathinfo[$i+1]) ? $pathinfo[$i+1] :""; switch ($i) { case 1: $_GET['m']=ucfirst($key); break; case 2: $_GET['c']=ucfirst($key); break; case 3: $_GET['a']=$key; break; default: if($i>3){ if($i%2==0){ $_GET[$key]=$value; } } break; } } } $_GET['m']=!empty($_GET['m']) ? ucfirst($_GET['m']) : 'Index'; $_GET['c']=!empty($_GET['c']) ? ucfirst($_GET['c']) : 'Index'; $_GET['a']=!empty($_GET['a']) ? $_GET['a'] : 'index'; $class="\Controller\{$_GET['m']}\{$_GET['c']}"; $controller=new $class; $controller->$_GET['a'](); } } Application::main();
ControllerIndexIndex.php
<?php namespace ControllerIndex; use ServiceUser; class Index{ public function __construct(){ echo "构造方法<br/>"; } public function index(){ new User(); print_r($_GET); } public function login(){ echo "login()"; } }
效果:
以上这篇PHP url的pathinfo模式加载不同控制器的简单实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
py文件转exe时包含paramiko模块出错解决方法
问题描述:python代码中包含paramiko模块的远程登录ssh,在用pyInstaller转为exe时报错,报错提示为Nohandlerscouldbefoundforlogger"paramiko.transport"出错位置:ssh=parami
PHP 自动加载的简单实现(推荐)
基于psr的规范,使用命名空间和spl_autoload_register()来实现自动加载文件结构:|--Api|--Account.php|--User.php|--Service|--Login.php|--User.php|--Application.phpApplication.phpph
php网页版聊天软件实现代码
本文实例为大家分享了php匿名聊天室的具体实现代码,供大家参考,具体内容如下1.index.htmlhtmlheadtitle聊天室/titlemetacharset="utf-8"/linkhref="http://libs.baidu.com/
编辑:一起学习网
标签:给大家,模式,代码,自动加载,文件