「application」ディレクトリで、新しい「views」フォルダを作成し、その中に「pages」フォルダを作成します。 エディタで新しいドキュメントを作成して貼り付けます:
< html >
<頭>
<タイトル>こんにちは!</タイトル>
</頭>
<本体>
< h1 >これが私の最初のビューです</ h1 >
</ body >
</ html >
これを「ko3.php」として「application / views / pages」ディレクトリに保存します。 これまでのところ、これは単純なHTMLコードですが、すぐに小さなPHPを追加します。 「ko3」(「アプリケーション/クラス/コントローラー/ ko3.php」コントローラー)を開きましょう。 action_indexメソッドを次のものに置き換えます。
パブリック 関数 action_index ( )
{
$ this- > request- > response = View :: factory ( 'pages / ko3' ) ;
}
ファイルを保存し、ブラウザ「http:// localhost / mykohana3 / ko3」で開きます。 「これは私の最初のビューです」という行が表示されます。 上記のコードは非常に単純です。「View」クラスの「Factory」メソッドを使用して、「application / views / pages / ko3.php」ファイルをダウンロードし、視覚化(レンダリング)して表示します。 あまりエキサイティングではないので、ビュー(「application / views / pages / ko3.php」)に戻って、次を追加します。
<?php echo $ content ; ?>
タグ「h1」の後。 ビューは次のようになります。
<html>
<head>
<title>こんにちは!</ title>
</ head>
<本体>
<h1>これが私の最初のビューです</ h1>
<?php echo $ content ; ?>
</ body>
</ html>
ブラウザでページを更新すると、未定義の変数に関連するエラーが表示されます。 そこで、Action_Indexメソッドを次の形式にキャストして、これを修正しましょう。
パブリック 関数 action_index ( )
{
$ view = View :: factory ( 'pages / ko3' ) ;
$ view- > content = 'データがあります!' ;
$ this- > request- > response = $ view- > render ( ) ;
}
そして今、ブラウザを更新すると、「これが私の最初のビューです」という碑文が表示され、その下に「データがあります!」と表示されます。 コードを1行ずつ見ていきましょう。
$ view = View :: factory ( 'pages / ko3' ) ;
この行は、ビュー(“ application / views / pages / ko3.php”)をコントローラーにロードします。
$ view- > content = 'データがあります!' ;
ここでは、変数「content」(ビューファイルで使用可能)を「We have data!」に設定します。
$ this- > request- > response = $ view- > render ( ) ;
render()メソッドはビューをレンダリングし、$ this-> request-> responseがそれを表示します。
簡単ですが、同じことを行う別の方法があります。
パブリック 関数 action_index ( )
{
$ data [ 'content' ] = 'データがあります!' ;
$ view = View :: factory ( 'pages / ko3' 、 $ data ) ;
$ this- > request- > response = $ view- > render ( ) ;
}
視覚化中に、フォーム内の変数は、対応するキーを持つ配列要素に置き換えられます。 この配列を「Factory」メソッドの2番目のパラメーターとして渡すことを忘れないでください。
しかし、それだけではありません! ビュー変数とコントローラーをバインドするには、他に2つの方法があります。
パブリック 関数 action_index ( )
{
$ view = View :: factory ( 'pages / ko3' )
-> set ( 'content' 、 'We have data!' ) ;
$ this- > request- > response = $ view- > render ( ) ;
}
ここでは、「View」クラスの「set」メソッドが使用されます。このメソッドを使用して、ビューで使用されるすべての変数を定義できます。
4番目の方法:
パブリック 関数 action_index ( )
{
$ content = 'データがあります!' ;
$ view = View :: factory ( 'pages / ko3' )
-> bind ( 'content' 、 $ content ) ;
$ this- > request- > response = $ view- > render ( ) ;
}
上記では、「View」クラスの「bind」メソッドが使用されています。 フォームの変数に値を直接割り当てるのではなく、参照によってコントローラーの変数に関連付けるという点で、3番目のメソッドとは異なる「set」メソッドです。
つまり、これを行うと:
パブリック 関数 action_index ( )
{
$ content = 'データがあります!' ;
$ view = View :: factory ( 'pages / ko3' )
-> bind ( 'content' 、 $ content ) ;
$ content = 'データが変更されました' ;
$ this- > request- > response = $ view- > render ( ) ;
}
その後、「We have data!」の代わりに「Our data changed」が画面に表示されます。
フォームでふりをしましょう! ディレクトリ「application / views /」に新しいフォルダ「blocks」を作成します。 エディターで新しいドキュメントを開き、その中に配置します。
< h3 >これは内部ビューです</ h3 >
これを、新しく作成した「application / views / blocks /」に「ko3_inner.php」として保存します。 次に、ビュー「ko3」(「application / views / pages / ko3.php」)を編集して、後に追加します。
<?php echo $ content ; ?>
次の行:
<?php echo View :: factory ( 'blocks / ko3_inner' ) -> render ( ) ; ?>
ビューは次のようになります。
<html>
<head>
<title>こんにちは!</ title>
</ head>
<本体>
<h1>これが私の最初のビューです</ h1>
<?php echo $ content ; ?>
<?php echo View :: factory ( 'blocks / ko3_inner' ) -> render ( ) ; ?>
</ body>
</ html>
ページを更新すると、以前に表示された碑文に「これは内部ビューです」が追加されます。 したがって、静的コンテンツを使用すると便利ですが、そのフォームで変数を直接使用することはできません。 これを修正するために、コントローラー(「application / classes / controllers / ko3.php」)に戻り、「Action_Index」メソッドを次の形式に戻します。
パブリック 関数 action_index ( )
{
$ ko3_inner [ 'content' ] = 'さらにデータがあります' ;
$ ko3 [ 'content' ] = 'データがあります' ;
$ ko3 [ 'ko3_inner' ] =ビュー:: ファクトリー ( 'blocks / ko3_inner' 、 $ ko3_inner )
-> レンダリング ( ) ;
$ view = View :: factory ( 'pages / ko3' 、 $ ko3 ) ;
$ this- > request- > response = $ view- > render ( ) ;
}
これにより、レンダリングされたビュー「blocks / ko3_inner.php」が$ ko3配列に配置され、メインビュー「pages / ko3.php」にレンダリングされます。これを変更する必要があります。 行:
<?php echo View :: factory ( 'blocks / ko3_inner' ) -> render ( ) ; ?>
前に追加したものに変更します。
<?php echo $ ko3_inner ; ?>
ビューは次のようになります。
<html>
<head>
<title>こんにちは!</ title>
</ head>
<本体>
<h1>これが私の最初のビューです</ h1>
<?php echo $ content ; ?>
<?php echo $ ko3_inner ; ?>
</ body>
</ html>
内部ビュー( "application / views / blocks / ko3_inner.php")を変更し、次のフォームに変更します:
<h3>これは内部ビューです</ h3>
<?php echo $ content ; ?>
ファイルを保存した後にブラウザーでページを更新すると、次のように表示されます。
これは私の最初のビューです
データがあります
これは内観です
さらにデータがあります
悪くはありませんが、より柔軟なビューを再利用する準備ができました。
次に、ビューで使用できるグローバル変数を作成する方法を学習します。 コントローラー(「アプリケーション/クラス/コントローラー/ ko3.php」)に戻り、「Action_Index」メソッドの最初に行を追加します。
表示:: set_global ( 'x' 、 'これはグローバル変数です' ) ;
メソッドを次のようにするには:
パブリック 関数 action_index ( )
{
表示:: set_global ( 'x' 、 'これはグローバル変数です' ) ;
$ ko3_inner [ 'content' ] = 'さらにデータがあります' ;
$ ko3 [ 'content' ] = 'データがあります' ;
$ ko3 [ 'ko3_inner' ] =ビュー:: ファクトリー ( 'blocks / ko3_inner' 、 $ ko3_inner )
-> レンダリング ( ) ;
$ view = View :: factory ( 'pages / ko3' 、 $ ko3 ) ;
$ this- > request- > response = $ view- > render ( ) ;
}
次に、ビューに追加する場合:
<br/> <?php echo $ x ; ?>
ページに「これはグローバル変数です」というテキストが表示されます。
「View :: bind_global」メソッドを使用してグローバル参照を作成することもでき、これらの変数は「View」オブジェクトのすべてのインスタンスで使用できます。