程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php skymvc 一款輕量、簡單的php

php skymvc 一款輕量、簡單的php

編輯:關於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 下載地址

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved