PHP Framework 3 (ビュー)
前のセクションでは、単にコントローラーを実装しました。このセクションではビューを実装します。
このビュー ファイルは非常に単純です。主に使用されるのは ob_start() と ob_get_content() です。このファイルはインクルード フォルダー
にあります。view.php
<?php class view{ //视图类型 default / wap public static $view_type = null; public function __construct(){ ob_start(); } public function finish(){ $content = ob_get_contents(); return $content; } public static function set_view_type(){ switch(true){ case stripos($_SERVER['HTTP_USER_AGENT'], 'Windows CE') !== FALSE : self::$view_type = 'wap'; break; default : self::$view_type = 'default'; } } public static function show($location , $param = array()){ if(is_null(self::$view_type)){ self::set_view_type(); } $view = SIMPLE_PATH . '/view/' . self::$view_type . '/' . $location; extract($param, EXTR_OVERWRITE); ob_start(); file_exists($view) ? require $view : exit($view . ' 不存在'); $content = ob_get_contents(); return $content; } }
OB 関数については、PHP がコンパイルされた後、すぐにページに戻るのではなく、最初にバッファーに配置されると単純に考えることができます。
上記のビューは単純な実装にすぎません。拡張したい場合は、set_view_type() メソッドを改善し、キャッシュを追加し、テンプレートのサポートを追加できます。
今後の章で具体的な実装を追加します。今日はこの VIEW を使用してみます。
昨日のコントローラーフォルダーにはまだindex.phpファイルがあります
<?php class index{ public function demo(){ view::show('index.htm' , array('message' => 'HELLO WORLD')); } }
次に、ビューフォルダーに新しいデフォルトフォルダーを作成し、新しいindex.htmを作成します
<html> <head> <title></title> </head> <body> <?php echo $message; ?> </body> </html>
サイトを実行すると、「HELLO WORLD」という結果が表示されます。
この結果は、すべてのプログラマーの新しいアイデアの証拠だと思います。
このファイルにヘッダーまたはトレーラーも挿入したい場合は、新しい head.htm を作成するだけです。次に、index.htm に
を追加します。<html> <head> <title></title> </head> <body> <?php echo $message; view::show('head.htm'); ?> </body> </html>
公開部分を追加できるようになりました。
この時点で、小さなビュー クラスが実装されました。
誰もが自分で実験して、うまくいかなかった場合は、もう一度コミュニケーションをとればよいのです。
次のセクションは、以前ブログで紹介した DAO レイヤー、つまり MODULES です。