基于smarty+medoo手搭php简单的框架
1、首先看一下搭建好的smarty目录(箭头位置是后新建的文件夹,也是框架结构的最终目录结构)
2、首先在根目录下新建index.php文件即入口文件,内容如下
<?php
require_once("/Framework/autoloadPhp_requireSmarty.php"); // 用来自动引入需要的控制器类和引入smarty配置文件 define('__PUBLIC__','http://localhost/beerlottery_test/public/');
$smarty->assign('__PULIC__',__PUBLIC__); // 定义常量模板文件需要的public目录 require_once('/Framework/load_function.php'); // 进行生成动态方法执行
autoloadPhp_requireSmarty.php 代码如下
<?php
header("Content-type: text/html; charset=utf-8"); // 声明编码
function __autoload($classname){
$file_url = "./Controller/".$classname.".php"; // 设置目录
if(file_exists($file_url)) { // 判断文件是否存在
include($file_url);
} else {
header("Location: http://localhost/beerlottery_test/public/404.html");
echo "<h2 style='margin-left:30px;margin-top:30px'>未找到控制器'$classname'!</h2>";
}
}
require_once("/libs/config.php"); // 加载smarty配置文件
/Framework/load_function.php 代码如下
$url = $_SERVER['PHP_SELF']; // 获取url路径
$arr = explode("/",$url); // 按照/的方式拆分字符串放在一维数组中
$Controller = new $arr[3](); // 获取控制器名称,创建动态对象
if(method_exists($Controller,"$arr[4]")){ // 判断该类中是否有该方法
$Controller->$arr[4](); // 运行该方法
}else{
header("Location: http://localhost/beerlottery_test/public/404.html");
echo "<h2 style='margin-left:30px;margin-top:30px'>未定义该方法'$arr[4]()'!</h2>";
} 总的思路就是获取url然后按照/来进行拆分成一维的数组,然后进行new 该位置的数组元素,在执行url位置上的方法即可
以此种方式作为简单的路由访问。
3、接下来看一看控制器文件,即Controller.php文件,主要做了两件事,接收smarty对象,引入model控制器
<?php class Controller{
var $smarty = null; // 定义全局变量
public function __construct(){ // 当被实例化即加载相关资源
require_once('/Model/Model.php'); // 引入Model层
// 在此次做向下扩展
global $smarty; // 拿到全局变量
$this->smarty = $smarty; // 赋值全局变量,传递对象参数
}
}
其余本分有空再补,本文仅供自己学习总结,如有需要源代码者联系我吧。
基于smarty+medoo手搭php简单的框架的更多相关文章
- 使用java语言基于SMTP协议手写邮件客户端
使用java语言基于SMTP协议手写邮件客户端 1. 说明 电子邮件是互联网上常见的应用,他是互联网早期的产品,直至今日依然受到广大用户的喜爱(在中国可能因为文化背景不同,电子邮件只在办公的时候常用) ...
- 手写一个简单到SpirngMVC框架
spring对于java程序员来说,无疑就是吃饭到筷子.在每次编程工作到时候,我们几乎都离不开它,相信无论过去,还是现在或是未来到一段时间,它仍会扮演着重要到角色.自己对spring有一定的自我见解, ...
- 基于MATLAB的手写公式识别(3)
基于MATLAB的手写公式识别 图像的膨胀化,获取边缘(思考是否需要做这种处理,初始参考样本相对简单) %膨胀 imdilate(dilate=膨胀/扩大) clc clear A1=imread(' ...
- 基于DOM的XSS注入漏洞简单解析
基于DOM的XSS注入漏洞简单解析http://automationqa.com/forum.php?mod=viewthread&tid=2956&fromuid=21
- 基于mAppWidget实现手绘地图(十五)–如何控制放大缩小
一般来说,可以使用以下几种方式来控制地图的放大/缩小 : 使用控件底部的缩放按钮 双击控件 pinch手势 物理按键 :I键标识缩小 :O键表示放大.(只有设备具有物理按键才行) 当然, ...
- 基于zepto的手机焦点图touchstart touchmove
基于zepto的手机焦点图,查看地址:demo (建议使用手机浏览器查看)代码如下: <!DOCTYPE HTML> <html> <head> <title ...
- 基于mAppWidget实现手绘地图--索引&DEMO
文章翻译完了,梳理一下,附Demo下载 基于mAppWidget实现手绘地图(一)–简介 基于mAppWidget实现手绘地图(二)–概要 基于mAppWidget实现手绘地图(三)–环境搭建 基于m ...
- 最简单的基于libVLC的例子:最简单的基于libVLC的推流器
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...
- 最简单的基于libVLC的例子:最简单的基于libVLC的视频播放器(图形界面版)
===================================================== 最简单的基于libVLC的例子文章列表: 最简单的基于libVLC的例子:最简单的基于lib ...
随机推荐
- Java- 类型转换
有两个方法: Integer.valueOf 和 String.valueOf 注: 字串转成 Double, Float, Long 的方法大同小异.
- Derby使用2—C/S模式
零.回顾 这部分先来回顾一下上一篇博客中的主要内容.上一篇博客中主要简单介绍了Derby数据的历史,特点,安装以及使用的两种模式.这篇文章主要介绍这两种模式中的一种模式 一.启动服务端程序 第一部分主 ...
- JDK的帧--java.util包装工具库
题词 JDK,Java Development Kit. 首先,我们必须认识到,,JDK但,但设置Java只有基础类库.它是Sun通过基础类库开发,这是唯一的.JDK书写总结的类库.从技术含量来说,还 ...
- 这种写法用过没:string.Format("{0,-10}", 8)
1 2 3 4 var s1 = string.Format("{0,-10}", 8); var s2 = string.Format("{0,10}", 8 ...
- mysql mac 上启动
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist 中内容: <string>/usr/local/o ...
- 需要设置jdk的三处位置:
需要设置jdk的三处位置:1.tomcat需要一个JDK : Windows--->Preferences--->MyEclipse--->Servers--->Tomcat- ...
- Verilog-1995 VS Verilog-2001
http://www.cnblogs.com/tshell/p/3236476.html 2001年3月IEEE正式批准了Verilog‐2001标准(IEEE1364‐2001),与Verilog‐ ...
- config文件中可以配置查询超时时间
web.config配置数据库连接 第一种:获取连接字符串 首先要定义命名空间 system.configuration 1. string connstr= string constr = Con ...
- IE6下Png透明最佳解决方案(推荐) Unit PNG Fix
引自:http://www.yeeyan.org/articles/view/98510/67784 网络上解决IE6下Png透明解决方案有很多,例如 IE PNG Fix from TwinHeli ...
- RazorEngine在非MVC下的使用,以及使用自定义模板
---恢复内容开始--- RazorEngine模板引擎大大的帮助了我们简化字符串的拼接与方法的调用,开源之后,现在在简单的web程序,winform程序,甚至控制台程序都可以利用它来完成. 但如何在 ...