mvc-Framework.class.php

<?php
//核心启动类
class Framework{
//让项目启动起来
public static function run(){
//echo "running...";
self::init();
self::autoload();
self::router();
}

//初始化方法
public static function init(){
//定义路径,获取当前工作路径 getcwd()
define("DS", DIRECTORY_SEPARATOR);
define("ROOT", getcwd() . DS); //项目根目录
define("APP_PATH", ROOT . "application" . DS);
define("FRAMEWORK_PATH", ROOT . "framework" .DS);
define("PUBLIC_PATH", ROOT . "public" . DS);
define("MODEL_PATH", APP_PATH . "models" . DS);
define("VIEW_PATH", APP_PATH . "views" . DS);
define("CONTROLLER_PATH", APP_PATH . "controllers" .DS);
define("CONFIG_PATH", APP_PATH . "config" .DS);
define("CORE_PATH", FRAMEWORK_PATH . "core" .DS);
define("DB_PATH", FRAMEWORK_PATH . "database" . DS);
define("HELPER_PATH", FRAMEWORK_PATH . "helpers" . DS);
define("LIB_PATH", FRAMEWORK_PATH . "libraries" .DS);
//前后台的控制器和视图目录怎么定义呢?,解析url中的参数,可以确定具体的路径
define("PLATFORM", isset($_REQUEST[‘p‘]) ? $_REQUEST[‘p‘] :"home");
define("CONTROLLER", isset($_REQUEST[‘c‘]) ? ucfirst($_REQUEST[‘c‘]) :"Index");
define("ACTION", isset($_REQUEST[‘a‘]) ? $_REQUEST[‘a‘] :"index");
define("CUR_CONTROLLER_PATH", CONTROLLER_PATH . PLATFORM . DS);
define("CUR_VIEW_PATH", VIEW_PATH . PLATFORM . DS);

define("UPLOAD_PATH", PUBLIC_PATH . "uploads" . DS);
//手动载入核心类
require CORE_PATH . "Controller.class.php";
require CORE_PATH . "Model.class.php";
require DB_PATH . "Mysql.class.php";
$GLOBALS[‘config‘] = include CONFIG_PATH . "config.php";

//开启session
session_start();
}

//路由方法
public static function router(){
//确定类名和方法名
$controller_name = CONTROLLER . "Controller"; //如GoodsController
$action_name = ACTION . "Action"; //如addAction
//实例化控制器,然后调用相应的方法
$controller = new $controller_name;
$controller->$action_name();
}

//注册加载方法
public static function autoload(){
spl_autoload_register(array(__CLASS__,"load"));
}

//加载方法
public static function load($classname){
//只负责加载 application下面的 控制器类和模型类,如GoodsController,AdminModel
if (substr($classname, -10) == ‘Controller‘){
require CUR_CONTROLLER_PATH . "{$classname}.class.php";
} elseif (substr($classname, -5) == "Model"){
require MODEL_PATH . "{$classname}.class.php";
} else {
//其它情况,暂无
}

}
}

时间: 2024-10-12 14:23:09

mvc-Framework.class.php的相关文章

A Simple MVC Framework With Node and Express

I love frameworks. As soon as I dropped my programmer's ego and learned to embrace well conceived conventions over configuration my development and deployment times felt the benefit. On the other hand, I like understanding what is going on underneath

Spring - MVC Framework 教程

Spring - MVC Framework Tutorial 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. Spring - MVC Framework Tutorial Advertise

(Spring文档翻译)Part V, the Web 17.1 Spring Web MVC framework介绍

指南文档的这个部分涵盖了Spring框架对表现层(特别是基于Web的表现层)以及WebSocket消息风格的web应用的支持. Spring框架拥有自己的web框架,Spring Web MVC,包含在前面几个章节.之后的几章是关于Spring框架对其他web技术的集成支持,像JSF等. 再之后是Spring框架的MVC porlet 框架. Spring 的MVC框架围绕着DispatcherServlet设计,DispatcherServlet将请求转发给handler,用可配置的handl

springboot 之Spring Web Mvc Framework

1.SpringMvc自动配置 Spring Boot 为SpringMvc提供了自动配置. 自动配置包含Spring的以下特征: (1)视图解析器ContentNegotiatingViewResolver或BeanNameViewResolver. (2)支持静态文件,包含对WebJar支持. (3)自动注册转换器Converter.GenericConverter.Formatter. (4)支持HttpMessageConverters(转换request.response的数据格式)

Spring 3 MVC: Themes In Spring-Tutorial With Example---reference

Welcome to Part 6 of Spring 3.0 MVC Series. In previous article we saw how to add Internationalization i18n and Localization L10n support to Spring 3.0 based web application. We usedLocaleChangeInterceptor to intercept the change in locale andReloada

Asp.Net MVC 插件化开发简化方案

Web 管理系统可以庞大到不可想像的地方,如果想就在一个 Asp.Net MVC 项目中完成开发,这个工程将会变得非常庞大,协作起来也会比较困难.为了解决这个问题,Asp.Net MVC 引入了 Areas 的概念,将模块划分到 Area 中去--然而 Area 仍然是主项目的一部分,多人协作的时候仍然很容易造成 .csproj 项目文件的冲突. 对于这类系统,比较好的解决办法是采用 SOA 的方式,把一个大的 Web 系统划分成若干微服务,通过一个含授权中心的 Web 集散框架组织起来.不过这

【MVC 4】8.SportsSore:管理

作者:[美]Adam Freeman      来源:<精通ASP.NET MVC 4> 本文将继续构建 SportsStore 应用程序,为网站管理员提供一个管理产品分类的方法.本文将添加一些支持功能,包括通过产品存储库进行产品的创建.编辑和删除,以及上传产品图片并将其显示在产品旁边. 1.添加分类管理 管理条目集合的惯例,是向用户显示两种形式的页面 —— 一个列表页面和一个编辑页面. 这些页面合起来可以让用户创建.读取.更新和删除集合中的条目.这些动作统称为“CRUD”. 开发人员往往需要

Action Filters for ASP.NET MVC

本文主要介绍ASP.NET MVC中的Action Filters,并通过举例来呈现其实际应用. Action Filters 可以作为一个应用,作用到controller action (或整个controller action中),以改变action的行为. ASP.NET MVC Framework支持四种不同类型的Filter: Authorization filters – 实现IAuthorizationFilter接口的属性. Action filters – 实现IActionF

MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 外文名 MVC框架 全    名 Model View Controller 产生时间 1982年 架构内容

Spring MVC Hello World Example(转)

Spring 3 You may interest at this Spring 3 MVC hello world example. In Spring MVC web application, it consist of 3 standard MVC (Model, Views, Controllers) components : Models – Domain objects that are processed by service layer (business logic) or p