| 1 |
lars |
1 |
<com:TContent ID="body" >
|
|
|
2 |
<h1 id="401">初めての PRADO アプリケーション</h1>
|
|
|
3 |
<div id="hello1" class="block-content">
|
|
|
4 |
<p id="50034">
|
|
|
5 |
ここでは、初めて PRADO アプリケーションを開発する人のために、定番の "Hello World" アプリケーションを解説します。
|
|
|
6 |
</p>
|
|
|
7 |
<p id="50035">
|
|
|
8 |
"Hello World" を作る事は、最もシンプルで<i>インタラクティブ</i>な PRADO アプリケーションを作る事かもしれません。<br />
|
|
|
9 |
このアプリケーションは、ページに <tt>Click Me</tt> と書いてある送信ボタンを配置してあります。<br />
|
|
|
10 |
ユーザーがボタンをクリックすると、ボタン文字が <tt>Hello World</tt> に変わるというアプリケーションです。
|
|
|
11 |
</p>
|
|
|
12 |
<p id="50036">
|
|
|
13 |
このアプリケーションには、複雑なアプリケーションを作る上で重要なアプローチがいくつかあります。<br />
|
|
|
14 |
ひとつは、ページからサーバーに変数を送信して、その変数を利用して新しいページ(新しいボタン)を生成していることです。<br />
|
|
|
15 |
またもう一つは、Javascript の <tt>onclick</tt> を意識することなく利用し、ボタン文字を変更する事ができるということです。
|
|
|
16 |
</p>
|
|
|
17 |
</div>
|
|
|
18 |
<p id="50037" class="block-content">
|
|
|
19 |
PRADO ではコンポーネントベース、そしてイベントドリブンのウェブプログラミングを構築する事ができます。<br />
|
|
|
20 |
ボタンは、<tt>TButton</tt> オブジェクトを使用します。
|
|
|
21 |
<tt>TButton</tt> では <tt>Text</tt> プロパティがボタン文字となり、ユーザーのクリック動作をサーバーサイドの <tt>OnClick</tt> イベントに対応付けます。<br />
|
|
|
22 |
<tt>Text</tt> プロパティを変更する内容を定義したメソッドを <tt>OnClick</tt> に対応付けるだけで、ボタンクリックのアクションを設定することができます。<br />
|
|
|
23 |
以下にアプリケーションのシーケンスを示します。
|
|
|
24 |
<img src="<%~sequence.gif%>" class="figure"/>
|
|
|
25 |
</p>
|
|
|
26 |
<p id="50038" class="block-content">
|
|
|
27 |
このアプリケーションは3つのファイル <tt>index.php</tt>, <tt>Home.page</tt>, <tt>Home.php</tt> から構成されています。
|
|
|
28 |
<img src="<%~directory.gif%>" class="figure"/>
|
|
|
29 |
|
|
|
30 |
各ディレクトリ名は開発者によって変更する事が可能です。例えば <tt>protected</tt> ディレクトリはウェブサーバーにより公開されたディレクトリ以外の場所へ移動することができます。このチュートリアルを読む事で、その方法を修得する事ができます。
|
|
|
31 |
</p>
|
|
|
32 |
<ul id="dir-struct" class="block-content">
|
|
|
33 |
<li><tt>assets</tt> - このディレクトリにはコンポーネントからファイルが展開されます。詳細は <a href="?page=Advanced.Assets">assets</a> に書かれていますのでご覧下さい。このディレクトリはウェブサーバープロセスから書き込み可能である事が必要となります。</li>
|
|
|
34 |
<li><tt>protected</tt> - アプリケーションデータと開発したコードが保存されるディレクトリです。このディレクトリは閲覧者からのアクセスを禁止されているべきディレクトリです。</li>
|
|
|
35 |
<li><tt>runtime</tt> - アプリケーション状態などのアプリケーション情報がキャッシュとして保存されるディレクトリです。このディレクトリはウェブサーバープロセスからの書き込みが可能でなければなりません。</li>
|
|
|
36 |
<li><tt>pages</tt> - PRADO ページを保存するディレクトリです。</li>
|
|
|
37 |
</ul>
|
|
|
38 |
|
|
|
39 |
<div class="tip">
|
|
|
40 |
<b class="tip">Tip:</b>PRADO プロジェクトディレクトリを作成するのに <tt>framework/prado-cli.php</tt>(<a href="?page=GettingStarted.CommandLine">コマンドラインスクリプト</a>)を使用することができます。<br />
|
|
|
41 |
例えば、<tt>helloworld</tt> プロジェクトを作りたいディレクトリへ移動し、<tt>php path/to/prado-cli.php -c helloworld</tt> とコマンド入力する事で、<tt>helloworld</tt> プロジェクトディレクトリを作成する事ができます。
|
|
|
42 |
</div>
|
|
|
43 |
|
|
|
44 |
<p id="50040">
|
|
|
45 |
アプリケーションの実行に必要な3つのファイルの内容は以下のとおりです。
|
|
|
46 |
</p>
|
|
|
47 |
<ul id="file-list" class="block-content">
|
|
|
48 |
<li><tt>index.php</tt> - PRADO アプリケーションのエントリースクリプトです。このファイルは、PRADO アプリケーションでは必ず必要なファイルであり、唯一エンドユーザーが直接アクセスできるスクリプトファイルです。<tt>index.php</tt> の内容は主に以下の3つの項目からなっています。
|
|
|
49 |
<com:TTextHighlighter CssClass="source block-content" id="code_50003">
|
|
|
50 |
require_once('path/to/prado.php'); // PRADO スクリプトの読み込み
|
|
|
51 |
$application=new TApplication; // PRADO アプリケーションインスタンスの作成
|
|
|
52 |
$application->run(); // アプリケーション実行
|
|
|
53 |
</com:TTextHighlighter>
|
|
|
54 |
</li>
|
|
|
55 |
<li><tt>Home.page</tt> - エンドユーザーが明示的にページを指定しない場合にこのページテンプレートが呼び出されます。テンプレートファイルでは、コンポーネントのレイアウトを定義します。この例では、<tt>TForm</tt> と <tt>TButton</tt> を使用しており、それぞれ<form> <input> のHTMLタグに対応しています。
|
|
|
56 |
<com:TTextHighlighter Language="prado" CssClass="source block-content" id="code_50004">
|
|
|
57 |
<html>
|
|
|
58 |
<body>
|
|
|
59 |
<com:TForm>
|
|
|
60 |
<com:TButton Text="Click me" OnClick="buttonClicked" />
|
|
|
61 |
</com:TForm>
|
|
|
62 |
</body>
|
|
|
63 |
</html>
|
|
|
64 |
</com:TTextHighlighter>
|
|
|
65 |
</li>
|
|
|
66 |
<li><tt>Home.php</tt> - <tt>Home</tt> テンプレートファイルのクラス定義ファイルです。ここではボタンの <tt>OnClick</tt> イベント内容の定義を行っています。
|
|
|
67 |
<com:TTextHighlighter CssClass="source block-content" id="code_50005">
|
|
|
68 |
class Home extends TPage
|
|
|
69 |
{
|
|
|
70 |
public function buttonClicked($sender,$param)
|
|
|
71 |
{
|
|
|
72 |
// $sender refers to the button component
|
|
|
73 |
$sender->Text="Hello World!";
|
|
|
74 |
}
|
|
|
75 |
}
|
|
|
76 |
</com:TTextHighlighter>
|
|
|
77 |
</li>
|
|
|
78 |
</ul>
|
|
|
79 |
<div id="hello-end" class="block-content">
|
|
|
80 |
<p id="50041">
|
|
|
81 |
アプリケーションファイルの準備ができたら、次のURLからアクセスすることができます。 <tt>http://Web-server-address/helloworld/index.php</tt><br />
|
|
|
82 |
この例では<tt>ドキュメントルート</tt>配下に <tt>helloworld</tt> というディレクトリを配置しています。<tt>Home.page</tt> テンプレートファイル内の <tt>TButton</tt> を <tt>TLinkButton</tt> へ変更してみてどのようになるかも試してみてください。
|
|
|
83 |
</p>
|
|
|
84 |
<p id="50042">
|
|
|
85 |
PRADO リリースアーカイブファイルにこのデモのソースを格納しています。また、<a href="http://www.pradosoft.com/demos/helloworld/">オンラインデモ</a>にて動作を確認する事ができます。
|
|
|
86 |
</p>
|
|
|
87 |
</div>
|
|
|
88 |
|
|
|
89 |
<div class="last-modified">$Id: HelloWorld.page 1650 2007-06-04 00:38:00Z Shinya.K $</div></com:TContent>
|