ホームページ  >  記事  >  バックエンド開発  >  php skymvc 単純なphp

php skymvc 単純なphp

高洛峰
高洛峰オリジナル
2016-11-30 09:29:001363ブラウズ

変更されたフレームワークは主に複数のプログラマ間の共同開発を実現するために使用され、skymvc 開発モデルの実装は 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ディレクトリ
pluginプラグインディレクトリ
admin.phpバックエンドエントリファイル
index.phpフロントエンドエントリーファイル
2. エントリーファイル


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")); //設定の終了 疑似静的
$method=isset ($_GET['a'])
&& Method_exists($control,'on'.$_GET['a'])?
'on'.$_GET[ 'a']:"onDefault";
$control- >$method();

2. バックエンドエントリファイル: admin.php コードをコピーします。 :
require
"data/config.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="管理者";
$control->tpl->currdir="管理者";
$control->tpl->rewrite_on=true; ;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. コントローラーファイル
コードのコピー コードは次のとおりです:
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("index");
}
?>

4. モデルファイル
メインモデルファイルもちろん、データを処理するために使用されますが、他のロジックも処理できますが、お勧めしません。ファイル命名規則: class.model.php
例:index.model.php
モデル ファイルはモデル ディレクトリの下にあります: モデル ディレクトリなど
例:index.model.php
コードをコピーしますコードは次のとおりです
class
indexModel
{
public $base;
__construct(&$base)
{
$this->indexModel($base)
}
function
indexModel(&$) Base)
{
$this->gt ;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'])?
'on'.$_GET['a']:"onDefault"; $method(); ?>

ctrl ディレクトリに
hello.ctrl.php ファイルを作成します
コードをコピーします コードは次のとおりです:
クラス
helloControl は skymvc を拡張します
{

function __construct ()
{
$this->helloControl();
}
function
helloControl()
{
parent::__construct(); loadModel("hello");//モデルをロードします
任意のモデルをロードできますが、同じクラスのモデルはロードできません
}
//関数名のデフォルトのアクション命名規則
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");
}?> モデルディレクトリに

次に、hello.model.php を作成します。 コードをコピーします。 コードは次のとおりです。
class helloModel
{
public
$base; &$base)
{
$this->helloModel($base);
}

関数
helloModel(&$base)
{
$this->base=$base; =$base->$db;
}
//上記
function 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"
/>
無題ドキュメント</title> ; <br/></head> <br><body> これは最初の例です : Hello World!テストの例は次のとおりです。 {loop $test $t} {$t} <br>{/loop} <br></body> <br></html></p></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="使用Cookie和用户会话" href="https://m.php.cn/ja/faq/341628.html">使用Cookie和用户会话</a></span><span>次の記事:<a class="dBlack" title="PHP与MySQL——删除操作" href="https://m.php.cn/ja/faq/341630.html">PHP与MySQL——删除操作</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="https://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="https://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="https://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><footer><div class="footer"><div class="footertop"><img src="/static/imghwm/logo.png" alt=""><p>福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!</p></div><div class="footermid"><a href="https://m.php.cn/ja/about/us.html">私たちについて</a><a href="https://m.php.cn/ja/about/disclaimer.html">免責事項</a><a href="https://m.php.cn/ja/update/article_0_1.html">Sitemap</a></div><div class="footerbottom"><p> © php.cn All rights reserved </p></div></div></footer><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>