首頁  >  文章  >  後端開發  >  php skymvc 一款簡單的php

php skymvc 一款簡單的php

高洛峰
高洛峰原創
2016-11-30 09:29:001355瀏覽

改框架主要用於實現多個程式設計師之間的協同開發以及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"> 
 

 
content="text/html; charset=gb2312" 
/> 
無標題文件無標題文件 
 
 
這是第一個例子:Hello World ! 
這是測驗的範例:{loop $test $t} {$t} 
{/loop} 
 
 
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn