ホームページ >php教程 >php手册 >php skymvc は軽量でシンプルな php です

php skymvc は軽量でシンプルな php です

WBOY
WBOYオリジナル
2016-06-21 08:54:251056ブラウズ

修正されたフレームワークは、主に複数のプログラマー間の共同開発を実現するために使用され、mvc 開発モデルの実装には mvc 開発手法が採用されており、フレームワーク自体の拡張が容易です。 Skymvc は、スカイネット プロジェクトの基本フレームワークとして、使いやすさ、学習の容易さ、共同開発という優れた伝統を遵守し、優れた PHP
mvc フレームワークの作成に取り組んでいます。どなたでもご提案をお待ちしております。
1. 設定ファイルの作成 skyMVC は Web サイト ディレクトリの自動作成をサポートしています。
ファイル ディレクトリを自動的に作成するには、http://locahost/skymvc/install.php を入力します。作成後に再作成したい場合は、install.lock ファイルを削除すれば可能です。
自動作成を推奨します。
手動で作成することもできます: ディレクトリはカスタマイズできます
ディレクトリをカスタマイズする場合は、それに応じてプログラムを構成する必要があります
管理バックエンド ディレクトリ
admin/model
admin/ctrl
attach
アップロードされた添付ファイル ディレクトリ
ctrl 制御ファイル ディレクトリ
データ ディレクトリ
data/config.php
設定ファイル
data/cache キャッシュ ディレクトリ
data/cache/css
css キャッシュ
data/cache/file ファイル キャッシュ
data/cache/tpl テンプレート キャッシュ
data/cache/js
js キャッシュ
モデル モデル ファイル ディレクトリ
tpl テンプレート ディレクトリ
tpl/admin バックエンド テンプレート
tpl/default
デフォルト テンプレート
js ディレクトリ
プラグイン プラグイン ディレクトリ
admin.php バックエンド エントリ ファイル
index.php フロントエンド エントリ ファイル
2 .Entry ファイル


skymvc は単一エントリ モードを採用していますが、これが唯一のエントリではありません。2 つのエントリを使用することをお勧めします。 1 つは正面玄関、もう 1 つは裏口です。
1. フロントエンドエントリーファイルの例:index.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("/index.php/i"),array("index.html")); 🎜>// 疑似静的を設定します end
$method=isset($_GET['a'])
&& method_exists($control,'on'.$_GET['a'])
? 'on'.$ _GET['a']:"onDefault"
$control->$method();

;
2. バックエンドエントリファイル: admin.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"; tpl->currdir="admin";
$control->tpl->rewrite_on=true;
$control->tpl->rewrite_rule=array("/index.php/ ","index.html"));
$method=isset($_GET['a'])
&& Method_exists($control,'on'.$_GET['a'])?
'on'.$_GET['a']:"onDefault"
$control->$method()

;
注: フロント エントリ ファイルとバック エントリ ファイルの間には、主にモデル ファイルとコントロール ファイルが配置されているフォルダに大きな違いはありません。
3. コントローラー ファイル


コードをコピーします

コードは次のとおりです:

classindexControl extends skymvc {

function

__construct()
{
$this->indexControl()
; >
function
indexControl()
{
parent::__construct();//親クラスの初期化
$this->loadModel("index");バックステージ

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

$this-> tpl->assign("ようこそ","skymvc へようこそ。一緒に働きましょう!");
$this->tpl->assign("who",$_ENV['indexModel']-> ; test());
//バックエンド
//$this->tpl->assign("who",$_ENV['admin_indexModel']->test()); this->tpl->display("インデックス");
}
?>


4. モデル ファイル
モデル ファイルは主にデータを処理するために使用されます。もちろん、他のロジックも処理できますが、推奨されません。ファイル命名規則: class.model.php
例:index.model.php.
モデル ファイルはモデル ディレクトリの下にあります: モデル ディレクトリ
など 例:index.model.php


コードをコピー

コードは次のとおりです:


class
indexModel
{
public $base;
function
__construct(&$base)
{
$this-> ;indexModel($base);
関数
indexModel(&$base)
{
$this->base=$base;
$this->db =$base->db;
}
function
test()
{
echo "これはモデルテストです"
}

}
?>

モデルファイル:表と裏は同じですが、格納場所が異なります
5.hello world
kymvcフレームワークのHello word!
ディレクトリが自動的に作成される場合。
データベースが設定されます
index.php
エントリファイルが書き込まれます。
index.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'])? '. $_GET['a']:"onDefault";
$method();?>
ctrl ディレクトリに
hello.ctrl.php ファイルを作成します



コードをコピーします

コードは次のとおりです: class

helloControl extends skymvc

{

function __construct()
{
$this - >helloControl();
}
関数
helloControl()
{
parent::__construct();
$this->loadModel("hello"); /Loading model
任意のモデルをロードできますが、同じクラスのモデルはロードできません
}
//関数名に関するデフォルトのアクション命名規則
function
onDefault()
{
echo "hello world
"; $this->smarty->display("hello.html");
}
//m=hello, a=test
の場合、実行次の関数
関数
onTest(){
$this->tpl->assign("test",$_ENV['helloModel']->gettest());
$this->tpl->display("hello.html");

}
}?>
モデルディレクトリに hello.model.php を作成します




コードをコピーします


コードは次のとおりです:

class helloModel { public $base;

function

__construct(&$base)
{
$this-> ;helloModel($base);

関数
helloModel(&$base)
{
$this->base=$base; >db=$base->$db;
}
//上記の
関数 gettest(){
return $this->db->getRow( "select * from test
limit 1");//データの読み取り
}
}
?>


tpl ディレクトリに新しい hello.html を作成します



コードをコピーします

コードは次のとおりです:


PUBLIC "-//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}
html>


skymvc ダウンロード アドレス





声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPインクルード次の記事:PHPインクルード