改框架主要用於實現多個程式設計師之間的協同開發以及mvc開發模式的實現.skymvc採用mvc開發方式,框架本身易擴展。 skymvc作為天網計畫的基礎架構,秉持易用、易學、共同開發的優良傳統,我們致力於打造一個優秀的php
mvc框架。歡迎大家多多提些建議。
1.建立設定檔skyMVC支援自動建立網站目錄:輸入http://locahost/skymvc/install.php 即可自動建立
檔案目錄。如果創建之後想重新創建,刪除install.lock檔案及可。
推薦自動建立。
也可以手動建立:目錄都可以自訂
自訂目錄時需要對程式進行對應的設定
admin 後台目錄
admin/model
admin/ctrl
attach
attach
data/config.php
設定檔
data/cache 快取目錄
data/cache/css
css快取
data/cache/file檔案快取
data/cache/tpl 範本快取
data/cache/file檔案快取
data/cache/tpl 範本快取model 模型檔案目錄
tpl 範本目錄
tpl/admin 後台範本
tpl/default
預設範本
js目錄
plugin 外掛程式目錄
admin.
js目錄
plugin 外掛程式目錄
admin.
js目錄
skymvc採用單一入口模式,但不是唯一入口,建議使用兩個入口。一個是前台入口,一個是後台入口。
1.前台入口文件實例:index.php 文件名可以自定義推薦index 或者
default
複製代碼 代碼如下:
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->dplse>rew $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 檔案名稱可自訂
複製程式碼 程式碼如下:
require
"data/config.php"; ?php
require
"data/config.php";
");
$_GET['m']=isset($_GET['m'])
&&
in_array($_GET['m'],array('index','article'))?$_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->currdir="admin" ;
$control->tpl->rewrite_on=true;
$control->tpl->rewrite_rule=array(array("/index.php/","index.html"));
$method=isset($php/","index.html"));
$method=isset($php/","index.html"));
$method=isset($php/","index.html"));
$method=isset($php/","index.html"));
$method=isset($php/","index.html"));
$method=isset($php/","index.html"));
$meth _GET['a'])
&& method_exists($control,'on'.$_GET['a'])?
'on'.$_GET['a']:"onDefault";
'on'.$_GET['a']:"onDefault";
$control->$control->$ method()
?>
說明:前後台入口檔案的差異不大,主要在於模型和控制檔案所在資料夾。
3.控制器檔案
複製程式碼 程式碼如下:
class indexControl extends skymvc
{
function
__construct()
{
function
__construct())$.
indexControl()
{
parent::__construct();//父類初始化
$this->loadModel("index");
//後台
//$this-> minl("index");
//$this-> 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
複製程式碼 程式碼如下:
class
class
class
class
class
class
class
class
class
class
class
class
class
class
class indexModel
{
public $base;
function
__construct(&$base)
{
$this->indexModel($base); $base;
$this->db=$base->db;
}
$this->db=$base->db;
}
function
test()
{
echo "這是模型測試";
}一樣就儲存的地方不一樣
5.hello world
kymvc框架的hello word !
如果是自動建立目錄的話。
設定好資料庫
index.php
入口檔案寫好。
index.php內容
複製程式碼 程式碼如下:
require
"data/config.php";//載入設定檔
require
/skymvc.php");//引用設定檔
require
/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 檔案
複製程式碼 程式碼如下:
class
helloControl extends 類別名稱為版本Control
class __helloControl extends ext.
$this->helloControl();
}
function
helloControl()
{
parent::__construct();
$this->loadModel("hello");__construct();
$this->loadModel("hello");但不能是相同類別的模型
}
//預設執行的動作命名規範on函數名稱
function
onDefault()
{
echo "hello world
";this--sm{
echo "hello world
"; ");
}
//當m=hello, a=test
執行下面的函數
function
onTest(){
$this->tpl->assign("test",$_ENV['helloModel'$this->tpl->assign("test",$_ENV['helloModel']- >gettest());
$this->tpl->display("hello.html");
}
}?>
在model目錄下
hello.model.php 號
class helloModel
{
public
$base;
function
__construct(&$base)
{
$this-huncModel($base) $base)
{
$this->base=$base;
$this->db=$base->$db;
}
//上面都是不用改的
function gettest(){
return $this->db- >getRow("select * from test
limit 1");//讀取資料
}
}
?>
在tpl目錄下新建程式碼-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">