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 下载地址

时间: 2024-10-27 19:59:31

php skymvc 一款轻量、简单的php的相关文章

31款轻量高效的开源 JavaScript 插件和库

31款轻量高效的开源 JavaScript 插件和库 目前有很多网站设计师和开发者喜欢使用由JavaScript开发的插件和库,但同时面临一个苦恼的问题:它们中的大多数实在是太累赘而且常常降低网站的性能.其实,其中也有不少轻量级的插件和库,它们不仅轻巧有用,而且不会影响网站的性能.本文,就为大家整理了以来30多款轻量级Javascript插件和库的列表,这些工具服务于特定的目标,并且它们能够非常有效和高效地实现目标. 不管你想创建一个图片库.一个滑动效果,个性化菜单还是其他接口元素,你都可以用这

faked 一个用于 mock 后端 API 的轻量工具

一.简介 faked 是一个在前端开发中用于 mock 服务端接口的模块,轻量简单,无需要在本地启动 Server 也无需其它更多的资源,仅在浏览器中完成「请求拉截」,配合完整的「路由系统」轻而易举的 mock 后端 API. GitHub Rep 地址:https://github.com/Houfeng/faked 二.安装 faked 有两种可选安装方式,你可以通过传统的 sciprt 方式引入 faked,如果你采用了 CommonJs 或 ES6 Modules 模块方案,也可通过安装

阿里云轻量应用服务器让建站变得简单

阿里云新推出了轻量型应用服务器,相对于阿里云ECS服务器轻量型应用服务器不仅价格实惠更重要的是提供一站式体验,集成域名解析.网站发布.服务器管理等功能,丰富的应用为您提供便捷的网站管理及配置.轻量应用服务器 (Simple Application Server),提供基于单台服务器的应用部署,安全管理,运维监控等服务,一站式提升您的服务器使用体验和效率. 轻量型应用服务器优势及介绍: 30秒一键应用启动,域名解析.网站发布.服务器管理等操作单界面集成,一站式功能体验 阿里云轻量型应用服务器价格表

推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler

原文:推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler 在C#WINFORM或者是ASP.NET的WEB应用程序中,根据各种定时任务的需求,比如:每天的数据统计,每小时刷新系统缓存等等,这个时候我们得应用到定时器这个东东. .NET Framework有自带的timer,但这个类只能完成一些简单的定时操作,比如间隔多久执行什么操作.遇到一些复杂的定时任务,如从当前时间开始,多少时间后间隔重复执行,timer类处理起来就相对困难了.经过多

阿里云轻量应用服务器使用体验

阿里云最近推出了一款叫做轻量应用服务器的产品.官网宣传的可以30秒一键启动应用:域名解析.网站发布.服务器管理等操作结合一体:包含应用管理,分析功能:镜像包括企业官网.个人博客.商城系统.论坛社区.知识库系统等主流网站框架,可以说功能确实很全面.整体看来,这其实就是一个面向新手和大众的网站建设应用,轻量应用云服务器最大的特点就是易用,易上手. 刚刚入手了一台最低配的,接下来就带大家体验下阿里云的轻量应用服务器到底怎么样,适不适合大部分的新手朋友们. 购买的话比较简单,有4个配置入门版.基础版.通

小白用户如何轻松上云 -我的轻量应用服务器探索记

   "一直以来,我仍在寻找一款轻松易用的云服务器产品."   在此之前,我是在乐此不疲----使用不同的服务器.云主机.空间,折腾那些的看上去就想尝试的应用,试用.安装.部署.上线.世界上为什么会有那么多有趣的事情值得去做?总让人跃跃欲试.哪怕是小白用户,但热爱并尝试也是与生俱有. 好像是一个热爱骑行的人,他会不断地去试骑甚至是收藏不同的车.而对于他来说,最值得拥有的礼物莫过于一辆顺手好骑的车.嗯,最好是碳纤维材质,那是轻量而又强大的. 只是市面上已有的产品不是太少,而是还不好.  

人人都可以轻松使用的轻量服务器的评测

前言 非常感谢各位在这里看我码字! 如果您很赶时间,现在马上跳过介绍,疯狂的开始了. 目前国内各种IDC基本上都推出了自己的云服务器产品,或者联合,或者自己研发.本人是一名互联技术爱好者,自己开发一些网站和应用,偶尔也帮助一些公司以及个人做做外包.基本上用遍了各种类型的云服务器和主机产品,有幸可以参与阿里云公司产品的内测,内心还是很开心的,下面就跟各位谈谈这次阿里云的新产品,轻量应用服务器. 当您准备好了开发或者部署一款互联网产品,不管是网站还是应用,现在目前看来,使用云服务器都是一个比较优秀且

CYQ.Data 轻量数据层之路 终极升级(二)

在上一篇:CYQ.Data 轻量数据层之路 开篇介绍(一)中,我们介绍了基本的类库与使用介绍.   上篇留言中虽然感觉好像很平静,不过不难想象,大伙仅勿勿一眼一扫而过的那种情景: 一个很沉重的心结,一直在很多开发人员的心里挥之不去:实体类. 大伙似乎都很排拆没有实体类的数据层框架,仅因早于习惯了ORM?   其实,我记得我第一次毕设的时候,也是有实体类的: 还记得很久前,毕设做的是仿QQ空间的CQ-Space空间,借用了CodeSmith生成实体类[里面集合了增删改查],来操作数据库, 也感受到

什么是阿里云轻量应用服务器?它有什么优点?

本文将详细介绍轻量服务器,又将是一篇长文,请耐心阅读. 什么是阿里云轻量应用服务器? 借用阿里云官网的话:[轻量应用服务器 (Simple Application Server),是可快速搭建且易于管理的轻量级云服务器:提供基于单台服务器的应用部署,安全管理,运维监控等服务,一站式提升您的服务器使用体验和效率.] 先插播个小福利:一键领取阿里云幸运券,领券后再下单购买阿里云产品,享受官网全部优惠,还可参加幸运大抽奖~ 什么意思呢?我是这么理解的: 轻量应用服务器,也是云服务器ECS,硬件都是一模