一个基本的框架核心就是 ,自动加载,路由功能;
当输入url时候,能解析到指定的控制器的方法,需要路由,并且需要自动加载功能;
大致的目录结构如下
-strongFramework
——-app
———————–controllers
———————–models
———————–views
———————–strongFrame //框架核心类库
——-conf
———————–conf.ini //配置文件
——-index.php //入口文件
首先写个自动加载类吧,拷贝到strongFrame目录下
define(‘app_path’,dirname(__FILE__));
final class Autoload
{
private static $instance;
public static function getInstance()
{
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
public function __construct()
{
spl_autoload_register(array($this, 'load'));
}
private function load($class)
{
$frameCore_path = app_path . '/app/strongFrame/' . $class . '.class.php';//框架核心类
$controller_name = str_replace('Controller', '', $class);//控制器类名是 aController
$controller_path = app_path . '/app/controllers/' . $controller_name . '.controller.php';//框架核心类
$model_name = str_replace('Model', '', $class);//数据模型类名称 aModel
$model_path = app_path . '/app/models/' . $model_name . '.model.php';
$view_path = app_path . '/app/views/' . $class;// 视图
$lib_path = app_path . '/app/lib/' . $class;
if (file_exists($frameCore_path)) {
require_once($frameCore_path);
} elseif (file_exists($controller_path)) {
require_once($controller_path);
} elseif (file_exists($model_path)) {
require_once($model_path);
} elseif (file_exists($view_path)) {
require_once($view_path);
} elseif (file_exists($lib_path)) {
require_once($lib_path);
} else {
die($frameCore_path . ' not found');
}
}
}