php skymvc 一款轻量、简单的php

改框架主要用于实现多个程序员之间的协同开发以及mvc开发模式的实现.skymvc采用mvc开发方式,框架本身易扩展。skymvc作为天网计划的基础框架,秉承易用、易学、共同开发的优良传统,我们致力于打造一款优秀的php
mvc框架。欢迎大家多多提些建议。
1.创建配置文件skyMVC支持自动创建网站目录:输入http://locahost/skymvc/install.php 即可自动创建
文件目录。如果创建之后想重新创建,删除install.lock文件及可。
推荐自动创建。
也可以手动创建:目录都可以自定义
自定义目录时需要对程序进行相应的配置
admin 后台目录
admin/model
admin/ctrl
attach
上传的附件目录
ctrl 控制文件目录
data 目录
data/config.php
配置文件
data/cache 缓存目录
data/cache/css
css缓存
data/cache/file文件缓存
data/cache/tpl 模板缓存
data/cache/js
js缓存
model 模型文件目录
tpl 模板目录
tpl/admin 后台模板
tpl/default
默认模板
js目录
plugin 插件目录
admin.php 后台入口文件
index.php 前台入口文件
2.入口文件

skymvc采用单一入口模式,但不是唯一入口,推荐使用两个入口。一个是前台入口,一个是后台入口。
1.前台入口文件实例:index.php 文件名可以自定义 推荐 index 或者
default


代码如下:

<?php
require
"data/config.php";//加载配置文件
require("skymvc/skymvc.php");//引用框架文件
//判断控制器是否合法
$_GET['m']=isset($_GET['m'])
&&
in_array($_GET['m'],array('index'))?$_GET['m']:'index';
//判断结束
require_once(CTRL_DIR."/{$_GET['m']}.ctrl.php");
$classname
= $_GET['m'].'Control';
$control = new
$classname();
//配置伪静态的
$control->tpl->rewrite=false;
$control->tpl->rewrite_rule=array(array("/index.php/i"),array("index.html"));
//配置伪静态结束
$method=isset($_GET['a'])
&& method_exists($control,'on'.$_GET['a'])?
'on'.$_GET['a']:"onDefault";
$control->$method();
?>

2.后台入口文件:admin.php 文件名可自定义


代码如下:

<?php
require
"data/config.php";
require("skymvc/skymvc.php");
$_GET['m']=isset($_GET['m'])
&&
in_array($_GET['m'],array('index','article'))?$_GET['m']:'index';
require_once(ADMIN_DIR."/".CTRL_DIR."/{$_GET['m']}.ctrl.php");
$classname
= $_GET['m'].'Control';
$control = new
$classname();
//配置伪静态的
$control->tpl->tplid="admin";
$control->tpl->currdir="admin";
$control->tpl->rewrite_on=true;
$control->tpl->rewrite_rule=array(array("/index.php/","index.html"));
$method=isset($_GET['a'])
&& method_exists($control,'on'.$_GET['a'])?
'on'.$_GET['a']:"onDefault";
$control->$method()
?>

说明:前后台入口文件的差别不大,主要在于 模型 和 控制文件 所在文件夹。
3.控制器文件


代码如下:

<?php
class indexControl extends skymvc
{
function
__construct()
{
$this->indexControl();
}

function
indexControl()
{
parent::__construct();//父类初始化
$this->loadModel("index");
//后台

//$this->loadAdminModel("index");
}
function
onDefault()
{

$this->tpl->assign("welcome","欢迎使用skymvc,让我们共同努力!");
$this->tpl->assign("who",$_ENV['indexModel']->test());
//后台
//$this->tpl->assign("who",$_ENV['admin_indexModel']->test());
$this->tpl->display("index");
}
?>

4.模型文件
模型文件主要用于处理数据,当然也可以处理其他的逻辑,但不推荐。文件命名规范:类.model.php
如:index.model.php.
模型文件位于模型目录下面:如model目录
例:index.model.php


代码如下:

<?php
class
indexModel
{
public $base;
function
__construct(&$base)
{
$this->indexModel($base);
}
function
indexModel(&$base)
{
$this->base=$base;
$this->db=$base->db;
}
function
test()
{
echo "这是模型测试";
}

}
?>

模型文件:前后台一样 就存储的地方不一样
5.hello world
kymvc框架的hello word !
如果是自动创建目录的话。
配置好数据库
index.php
入口文件写好。
index.php内容


代码如下:

<?php
require
"data/config.php";//加载配置文件
require("skymvc/skymvc.php");//引用框架文件
//判断控制器是否合法
$_GET['m']=isset($_GET['m'])
&&
in_array($_GET['m'],array('index','article'))?$_GET['m']:'index';//将所有在index.php入口出现的模块都放入array()里
//判断结束
require_once(CTRL_DIR."/{$_GET['m']}.ctrl.php");
$classname
= $_GET['m'].'Control';
$control = new
$classname();
$method=isset($_GET['a']) &&
method_exists($control,'on'.$_GET['a'])?
'on'.$_GET['a']:"onDefault";
$control->$method();?>

在ctrl目录下 创建
hello.ctrl.php 文件


代码如下:

<?php//hellControl 类得命名规范 类名Control
class
helloControl extends skymvc
{

function __construct()
{
$this->helloControl();
}
function
helloControl()
{
parent::__construct();
$this->loadModel("hello");//载入模型
可以载入任何模型 但不能是相同类的模型
}
//默认执行的动作 命名规范 on函数名
function
onDefault()
{
echo "hello world
"; $this->smarty->display("hello.html");
}
//当m=hello, a=test
执行下面的函数
function
onTest(){
$this->tpl->assign("test",$_ENV['helloModel']->gettest());

$this->tpl->display("hello.html");

}
}?>

在model目录下
创建hello.model.php


代码如下:

<?php
class helloModel
{
public
$base;
function
__construct(&$base)
{
$this->helloModel($base);
}

function
helloModel(&$base)
{
$this->base=$base;
$this->db=$base->$db;
}
//上面都是不用改的
function gettest(){
return $this->db->getRow("select * from test
limit 1");//读取数据
}
}
?>

在tpl目录下 新建 hello.html


代码如下:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312"
/>
<title>无标题文档</title>
</head>
<body>
这是第一个例子:Hello World !
这是测试的例子:{loop $test $t} {$t}
{/loop}
</body>
</html>

skymvc 下载地址

(0)

相关推荐

  • PHP MVC模式在网站架构中的实现分析

    视图(View) "视图"主要指我们送到Web浏览器的最终结果??比如我们的脚本生成的HTML.当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的. 对视图来说,最重要的事情可能是它应该是"自我意识(self aware)"的,视图被渲染(render)时,视图的元素能意识到自己在更大框架中的角色. 以XML为例,可以说XML在被解析时,DOM API有着这样的认知??一个DOM树里的节点知道它在哪里和它包含了什么. (当一个XML文档中的

  • PHP中MVC模式的模板引擎开发经验分享

    使Web系统的开发与维护更加方便,从而有效的节省人力物力,受到了越来越多企业的青眯. 模板引擎是MVC模式建立过程的重要方法,开发者可以设计一套赋予含义的标签,通过技术解析处理有效的把数据逻辑处理从界面模板中提取出来,通过解读标签的含义把控制权提交给相应业务逻辑处理程序,从而获取到需要的数据,以模板设计的形式展现出来,使设计人员能把精力更多放在表现形式上.下面是我对模板引擎的认识与设计方法: 说的好听些叫模板引擎,实际就是解读模板数据的过程(个人观点^^).通过我对建站方面的思考认识,网站在展现

  • PHP5中MVC结构学习

    一.介绍 现在在开发WEB应用的时候,比较流行的一种做法就是使用"MVC"结构,使用如此方式去开发WEB应用程序,逻辑性强.简浩明了,使程序设计起来更加方便,快捷.何为"MVC"呢?简单的来说,它就是"模型(Model)"."视图(View)"及"控制器(Controller)"的结合体,也就是所有的"三层"抽象结构,当然这里所说的"MVC"是针对WEB上应用而言的,

  • PHP实现MVC开发得最简单的方法——模型

    昨天群里有人说使用MVC让程序多了很多数据库操作,使得性能下降,这着实让我吃了一惊.MVC只是一种框架,与数据库操作没有任何关系.MVC只是提供一种清晰的编程开发模式,只要你处理的好,是不可能多处很多无谓的数据库操作的.如果一个MVC让一个程序员在不知情的情况下多出了很多数据库操作就绝对不是一个很好的MVC架构.我觉得MVC只要提供一个简单的开发框架就行了,没有必要集成很多库类,库类最好能让程序员自己选择去使用.      我自己这个MVC框架的目的就只是实现一个简单的MVC流程,其他的大家具体

  • 有关PHP中MVC的开发经验分享

    一.入口 入口文件可以是单文件也可以是多文件,我现在用的基本属多文件,但是入口文件内容基本都是一样,为以后的修改其它的入口方式做基础, 复制代码 代码如下: <?php require 'command/config.php'; require 'command/app.php'; app::run($config); ?> 首先不用说大家也看得出来,加载系统配置文件,然后通过引擎来加载系统配置. 二.引擎 复制代码 代码如下: public function run($config){ he

  • 浅析PHP程序设计中的MVC编程思想

    PHP的MVC编程思想目前已经被广泛使用于各种大型项目的开发,很多成熟的MVC框架也逐渐被大家所熟知并被广泛应用于各类项目中,比较常见的如ThinkPHP.codeigniter.Symfony.yii.cakePHP等等.本文就来简述一下php的MVC程序设计思想. 一.什么是MVC 简单的说就是将网站源码分类.分层. MVC三个字母的含义: M:Model 模型,负责数据库操作. V:View 视图,负责调用Model调取数据,再调用模板,展示出最终效果. C:Controller 控制器,

  • PHP的MVC模式实现原理分析(一相简单的MVC框架范例)

    他们的工作原理大家应该也比较感兴趣,下面我说说一个mvc框架长什么样. 路由机制 在互联网我们都是通过url提供服务,因此不同的url有不同的服务.用户访问不同的页面也就获得了不同的服务.那么我们的服务是如何通过url来区分不同的服务呢. 我们的web程序就要通过url寻找到不同的文件,进行不同的业务逻辑处理.我们的路由机制就是根据url,寻找到对应的controller,和action,然后由action进行具体的业务逻辑处理. 一个简单的controller 复制代码 代码如下: //定义一

  • MayFish PHP的MVC架构的开发框架

    框架工作流程: 加载框架文件>加载参数设置对象>进行初始化设置>加载项目设置参数>获取控制器及控制器方法>执行控制器事件 使用实例为: 复制代码 代码如下: <?php class DefaultController extends AppController { protected $components = array('smarty'); /** 默认事件(方法) */ public function index() { $db_test = M('members

  • MVC模式的PHP实现

    作者:Harry Fuecks 翻译:Easy Chen  MVC模式在网站架构中十分常见.它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力. 视图(View) "视图"主要指我们送到Web浏览器的最终结果--比如我们的脚本生成的HTML.当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的. 对视图来说,最重要的事情可能是它应该是"自我意识(self aware)"

  • 基于PHP Web开发MVC框架的Smarty使用说明

    一.Smarty简明教程 1.安装演示 下载最新版本的Smarty-3.1.12,然后解压下载的文件.接下来演示Smarty自带的demo例子. (1)下载地址:http://www.smarty.net/download(2)在你的WEB服务器根目录下建立新目录,这里我在/var/www下创建yqting/目录,然后将解压之后的目录中的demo/和libs/目录复制到/var/www/yqting/目录下. (3)这里要特别注意demo/目录下cache/和template_c/两个目录,一定

  • php打造属于自己的MVC框架

    一.文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.php 作为唯一入口 二.控制器 我们在controller文件夹下建立一个democontroller.php文件,文件内容如下 复制代码 代码如下: <?php class DemoController { function index() { echo('hello world'); } } /* End of file democontro

随机推荐