php mvc 命名规范,基于PSR-0编码规范开发一套PHP-MVC框架(一)

一、入口文件。index.php

二、站点全局配置文件。configs/Website.php

三、全局路由配置文件。configs/Routes.php

array(

* '路由别名'=>'控制器@方法'

* )

* )

*/

return array(

'Home'=>array(

'index-index'=>'IndexController@index',

'index/test'=>'IndexController@test',

),

'Admin'=>array(

'login'=>'IndexController@login'

),

);

四、框架启动文件。frame/App.php

ctrl;

$action = $route->action;

$namespace = $route->namespace;

if($namespace) {

$ctrlFile = CTRL.'/'.$namespace.'/'.$ctrl.'.php' ;

$ctrlObj = CTRLNAMESPACE.$namespace.'\\'.$ctrl;

} else {

$ctrlFile = CTRL.'/'.$ctrl.'Controller.php';

$ctrlObj = CTRLNAMESPACE.$ctrl.'Controller' ;

}

if(is_file($ctrlFile)) {

require_once($ctrlFile);

$obj = new $ctrlObj;

if(method_exists($obj,$action)) {

$obj->$action();

} else {

throw new \Exception($action."方法不存在", 1);

}

} else {

throw new \Exception($ctrl."控制器不存在", 1);

}

}

//自动加载类文件

static public function autoload($class)

{

$file = BASEPATH.'/'.str_replace('\\', '/', $class).'.php';

if(is_file($file)) {

require_once($file);

} else {

return false;

}

}

}

五、加载配置类。frame/Libs/Config.php

六、路由类。frame/Libs/Route.php

checkRoute($path[0]);

if(!isset($path[0]) || !$isExists) {

throw new \Exception($path[0]."路由不存在", 1);

}

} else {

$this->ctrl = 'Welcome';

$this->action = 'index';

}

}

private function checkRoute($alias)

{

$routes = Config::get('Routes',null,true);

foreach ($routes as $key => $value) {

foreach ($value as $k => $v) {

if($k == $alias) {

$c = explode('@', $v);

$this->ctrl = $c[0];

$this->action = $c[1];

$this->namespace = $key;

return true;

}

}

}

return false;

}

}

七、默认控制器。app/Controllers/WelcomeController.php

Hello,World欢迎使用PHP-FRAME框架");

}

}

八、隐藏index.php文件。.htaccess

Options -MultiViews

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^ index.php [L]

# Handle Authorization Header

RewriteCond %{HTTP:Authorization} .

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值