【B6】PHPテクニカルセッション

VCL for PHP コンポーネント大全
エンバカデロ・テクノロジーズ
エヴァンジェリスト 高橋 智宏

アジェンダ• VCL for PHP のすべてのコンポーネントを使ってみよう• Smartyテンプレート／テンプレートフォーム• TipsCopyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

2

1

VCL for PHP のすべてのコンポーネントを使ってみよう

コンポーネント一覧

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

4

2

Standardカテゴリ
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•

Frame
Frameset
MainMenu
PopupMenu
Label
Edit
Memo
ButtonCheckBoxRadioButton
ListBox
ComboBox
Scrollbar
GroupBoxRadioGroup
Panel
ActionList
FormValidator

Webページを分割したフレーム
Webページの分割を行うフレームセット
メニューを実現。画像を割り当て可能
コントロールごとにコンテキストメニューを提供。画像を割り当て可能
文字列を表示。HTMLタグを表現可能。ハイパーリンクの機能もある
テキスト入力領域。サーバー側での入力文字列のフィルタリング機能あり
複数行のテキスト入力
ボタン。種類は、Submit, Reset, Normal の3種類
チェックボックス
ラジオボタン1個分。Groupプロパティでグループ化
リストボックス
コンボボックス
スクロールバー
各種コンポーネントを内部に配置してグループ化。キャプション付き
複数のラジオボタンを表現
各種コンポーネントを内部に配置してグループ化。主に領域を表す
汎用イベントハンドラ。リクエストURLのパラメータとのマッピングを実現
入力データの有無,形式をWebブラウザ上で検証

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

5

Additionalカテゴリ
•
•
•
•
•
•
•
•
•
•
•
•
•
•

HiddenField
UploadBitBtnSpeedButton
Image
MapShape
FlashObject
Shape
Bevel
CheckListBox
SimpleChart
WindowLabeledEdit
Pager

隠しフィールド<input type=“hidden” …>を表現
ファイルのアップロードを行う（※Ajax時にはアップロードされない）
画像付きボタン
画像付きボタン。ON/OFFの状態を表現可能
画像へのリンク <img src=“…” …>
マウスクリックに反応する領域を表現。円または長方形
FlashのSWFファイルへのリンク
JavaScriptで描画を行える領域。円や丸みのある長方形など
単純に領域を表す。仕切り線としても使える
チェックボックス機能付きのリストボックス
グラフ機能。円グラフなど計4種類
Webブラウザ領域内で動作するウィンドウ。モーダルまたはモードレス
ラベル付きテキスト入力領域
1番目～N番目…の移動を行う、ページャー

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

63

Advancedカテゴリ
•
•
•
•
•
•
•
•
•
•
•
•
•
•

PageControl
複数タブで表示ページを切り替え可能
ImageList
複数の画像へのリンクを管理。各種コントロールから参照
RichEdit
HTML形式で文字列を編集
TrackBar
目盛りを表現。垂直または水平
ProgressBar
進捗状況を0%～100%で表現
UpDown増減ボタン付き数値入力領域
DateTimePicker 日付選択ウィンドウ付きコンボボックス
MonthCalendar 日付選択領域
TreeView
ツリー形式でデータを表現
ListView
データを列と行のテーブル形式で表現
ButtonView
各ビューをボタンで切り替え可能
ColorSelector
色選択領域
TextField
JavaScriptで実現されたテキスト入力領域
ToolBar
複数キャプションで構成するツールバー。画像を割り当て可能

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

7

Systemカテゴリ
•
•
•
•

Timer
PaintBox
BasicAuthentication
StyleSheet

Webブラウザ上でタイマーによる定期的なイベントを実現
サーバー側で描画を行える領域
BASIC認証を管理
スタイルシートファイル(CSS)をWebページに適用

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

84

Data Access, DataControl, InterBase, MySQL, Oracleカテゴリ

•
•
•
•
•
•
•

Database
Datasource
Table
Query
StoredProc
DBGridDBPaginator

•
•
•
•
•
•
•
•
•
•
•
•

IBDatabase
InterBaseへの接続を管理。PHPのinterbase拡張を直接利用
IBTable
テーブルデータの取得。IBDatabaseコンポーネントと連携
IBQuery
SQLの実行。IBDatabaseコンポーネントと連携
IBStoredProc
ストアドプロシージャ。IBDatabaseコンポーネントと連携
MySQLDatabase MySQLへの接続を管理。PHPのmysql拡張を直接利用
MySQLTable
テーブルデータの取得。MySQLDatabaseコンポーネントと連携
MySQLQuery
SQLの実行。MySQLDatabaseコンポーネントと連携
MySQLStoredProc ストアドプロシージャ。MySQLDatabaseコンポーネントと連携
OracleDatabase
MySQLへの接続を管理。PHPのoci8拡張を直接利用
OracleTable
テーブルデータの取得。OracleDatabaseコンポーネントと連携
OracleQuery
SQLの実行。OracleDatabaseコンポーネントと連携
OracleStoredProc ストアドプロシージャ。OracleDatabaseコンポーネントと連携

ADOdbベースでDB接続を管理。複数のRDBMSに対応
テーブルデータとDBGridやEditとを結びつける
テーブルデータの取得。Databaseコンポーネントと連携
SQLの実行。Databaseコンポーネントと連携
ストアドプロシージャ。Databaseコンポーネントと連携
テーブルデータをグリッドで表現。Ajaxによる保存機能もある
テーブルデータの行移動を実現

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

9

Samples, jQuery, PEAR, Zendカテゴリ
•
•
•

Clock
JQSliderPearDataGrid

JavaScriptで時計を描画（※あくまでもサンプルとして提供されています）
jQueryを利用して複数ページのスクロールを実現
PEARを利用して、テーブルのデータを表形式で表示

•
•
•
•

ZACL
ZAuth
ZAuthDBZAuthDigest

Zend Frameworkのアクセス制御リスト(ACL)をラップしたもの
Zend Frameworkの認証管理機能をラップしたもの
RDBMSを利用して認証を行う。ZAuthと連携
ファイルを利用して認証を行う。ZAuthと連携

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

10

5Web Servicesカテゴリ• Service データモジュールに配置してWebサービスを提供する。WSDLの出力も可能※ UTF-8 で処理するには、vcl/nusoap/nusoap.php 内にあるすべてのISO-8859-1 を UTF-8 に書き換える。
ただし、「eregi(‘^(ISO-8859-1|US-ASCII|UTF-8)$’,$enc)」の行は除く

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

11

Smartyテンプレート／テンプレートフォーム

6Smartyテンプレートとの連携も可能• WebページのデザインにSmartyテンプレートを利用• PageのTemplateEngineプロパティとTemplateFilenameプロパティを変更• テンプレートファイルにプレースホルダを埋め込む––––{%$HeaderCode%}{%$StartForm%}{%$VCLforPHPのコンポーネント変数名%}{%$EndForm%}

予約済み。<head>の中予約済み。<body>の直後予約済み。</body>の直前
出力結果

SmartyテンプレートファイルVCL for PHPのコンポーネントの配置位置は自由

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

13

ASP.NETライクなテンプレートフォーム• WYSIWYGでHTMLページをデザイン• [ファイル]-[新規作成]-[テンプレートフォーム]で作成• もちろん、VCL for PHP のコンポーネントも配置可能• HTMLデータは、「ユニット名.html」として保存され、[テンプレート]ペインで編集も可能
出力結果
HTMLとVCL for PHPの同時編集が可能

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

14

7

Tips

VCL for PHP の配布• 基本的に「配布ウィザード」は使用しない(泣)
• 必要なファイルが抽出されないことがある• VCL for PHP(vcl/) を丸々コピーしてください(samplesやtestsは除く)• vcl/ フォルダは、アプリケーション配下に作成する• VCL for PHP の vclフォルダを、共有目的で別の位置に置くと…
/vcl-bin/ で始まるURLが必要になる

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

そのまま vcl/ 配下のURLでOK

16

8

Shift_JISで開発・配布するには• デフォルトのUTF-8のほかに、Shift_JISにも対応• Delphi for PHP Ver2.0 の Update1 以降が必要– VCL for PHP に不具合があったので修正しました• EUC-JP も可能だが、.phpのエディタはEUC-JP未対応なので注意

Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

17

Q&A

ご清聴ありがとうございました

Q&A
Copyright ©2008 Embarcadero Technologies, Inc. All Rights Reserved.
本文書の一部または全部の転載を禁止します。

18

9