目录
1. 根目录index
<?php
//加载composer
include __DIR__. DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR."autoload.php";
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\HttpFoundation\Request;
//定义路由
$route = new Route('/home',array('controller' => 'App\controller\MyController::index'));
//加载路由
$routes = new RouteCollection();
$routes->add('route_name',$route);
//获取请求内容
$context = new RequestContext();
$matcher = new UrlMatcher($routes,$context);
$info = $matcher->match($context->fromRequest(Request::createFromGlobals())->getPathInfo());
$controller = $info['controller'];
$class_action = stripos($controller,'::');
$class = substr($controller,0,$class_action);
$action = substr($controller,$class_action+2);
//添加自动加载
function loadClass($class_name){
$fan_gang = stripos($class_name,'\\');
$is_app = substr($class_name,0,$fan_gang);
//加载应用目录
if($is_app === 'App'){
include __DIR__.DIRECTORY_SEPARATOR. $class_name.'.php';
}
return;
}
spl_autoload_register("loadClass");
/**
* 返回当前请求类
* @param $class
* @return mixed
*/
function getClass($class){
return new $class();
}
$ress = getClass($class)->$action();
echo $ress;
2. 根目录添加 .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>