SlideShare a Scribd company logo
最新PHP事情
~新バージョンPHP4のご紹介とPHPのXML等への
         応用について~

  日時:2000年7月22日(土曜日)13:50~15:10
  会場:大田区産業プラザ 小展示場


    日本PHPユーザー会 http://www.php.gr.jp/
    廣川 類 <louis@cityfujisawa.ne.jp>
           <hirokawa@php.net>
1.PHP4の新機能
2.Webアプリ構築の実際
3.デモ(Linux)
PHP3の課題


 マルチスレッド未対応
  Native APIがApacheのみ
 大規模コードでの速度低下
  スクリプトの逐次実行
 セッション管理の欠如
  PHPlib等の外部ライブラリによるサポート
PHP4では…

 より高機能に
  セッション、OOP(クラス、Java、COM等)の強化
 より安定に
  リソース管理の強化:マルチスレッド対応、管理自動化
 より簡単に
  拡張モジュールの標準化、標準クラスの整備
PHP4の新機能

Zend Engine      PHP

  リソース管理強化         複数Webサーバ対応
  • マルチスレッド化       信頼性の向上
  • 管理自動化          高速化
   実行時コンパイラ        大規模アプリ対応
  言語強化             セッション機能
  (PHP3上位互換)
                   標準クラス(PEAR)
   Zend Add-on
PHP4の新機能:セッション
 セッション機能のサポート
  HTTPは状態を保存しない→セッションデータ保持が必要
  PHP3ではPHPLIB等の外部ライブラリを使用
  セッションIDによる管理→クライアント側に保存:
   (1)クッキー、(2)GET
  セッションデータ保存
   (1)ファイル、(2)共有メモリ、(3)ユーザ定義(RDBMS等)
  session_start();             // セッションを開始
  print($counter);
  $counter++;
  session_register(”counter”); // セッション変数を登録
                                // session_register($counter);は間違い!
PHP4の新機能:言語の拡張

 foreach文
  PHP3                                        PHP4
 reset( $arr );                             foreach( $arr as $value ) {
 while( list( , $value ) = each( $arr ) )      echo "Value: $value<br>n";
 {                                          }
   echo "Value: $value<br>n";
 }

 ヒア・ドキュメント
  print <<<EOS
  Hello!
  This is a pen!
  EOS;
PHP4の新機能:外部オブジェクト

 Javaのサポート:サーブレット、クラス
   Java                                     PHP4
 import java.io.*;                         $f = new Java("java.io.File",
 ...                                       $filename);
 File f = new File (filename);             $size = $f->length ();
 long size = f.length ();                  echo "$sizen";
 System.out.println (size);

 COM(Common Object Module)
$word = new COM("word.application");
$word->documents->add();
$word->selection->typetext(”Hello!");
$word->documents[1]->saveas("test.doc");
$word->quit();
PHP4の新機能:リソース管理の強化

 Reference Counting
   リソースはポインタで管理され、コピーは行わない。
    →高速化
   参照されなくなったリソースは自動的に開放される。
    →メモリの節約、安定性の増大
   while( $row = sql_get_row($result_handle))
     {
       print query_result($row, "name");
       query_free($row);
     }                                PHP3では必要。
                                これを行わないとスクリプト実行終了
                                時までメモリが開放されない。
                                →PHP4では自動的に開放される。
PHP4の新機能:Zendアドオン

 Zend Optimizer
  スクリプトコードの最適化により大幅に高速化
  現在RC1版リリース中


 Zend Cache
  コンパイル後のコードをメモリ上にキャッシュ
  →コンパイル、ロードの時間を節約


 Zend Compiler
  スクリプトコードの隠蔽が可能
  →企業ユーザ、商用アプリ開発者にメリット
1.PHP4の新機能
2.Webアプリ構築の実際
3.デモ(Linux)
PHPと標準クラス

なぜクラスの標準化が必要か?
 背景:
 PHP組込関数ではWebアプリに必要な機能を実装できない。
 →ユーザ関数として作成・配布
 →同一機能・複数実装による非効率、コード仕様が不統一
 クラス標準化の試み
  PHPlib :PHP Base Library
  PEAR
PHPと標準クラス:PHPLIBの概要
 機能
   DB抽象化: DB_Sqlクラス                         Perm      User
     PostgreSQL,MySQL,Oracle,ODBC,...をサポート      Auth
   セッション管理: Sessionクラス
                                               Session
     クッキーまたはGET変数を使用
   認証:Authクラス                                 DB_sql
     チャレンジレスポンス認証、有効時間を指定可能。                    PHP
   パーミッション管理:Permクラス
     ユーザ保有権限(管理者、一般ユーザ)毎のアクセス管理
   ユーザ管理:Userクラス
   テンプレート:Templateクラス
 資料:PHPlibドキュメント(翻訳版)
 http://www.php.gr.jp/php/phplib/
PHPと標準クラス:PEAR
 クラスの標準化 → PerlのCPAN, TeXのCTAN
 機能
    DB: DB抽象化クラス(MySQL,PostgreSQL,ODBC,...)
    FILE: ファイル操作
 使用例
 DSNの指定方法:            データベース種類://ユーザ名:パスワード@ホスト名/データベース

 <?php // PEAR/DB サンプル
 $dsn = "odbc://nobody:nobody@test";                    // ODBC
 // $dsn = "pgsql://nobody:nobody@localhost/test";     // PostgreSQL
 $obj = DB::connect($dsn);                             // データベースに接続
 $res = $obj->simpleQuery(“select * from product”);    // クエリ実行
 while($row = $obj->fetchRow($res)){                  // 結果を取得・表示
   print join(":",$row) . "<BR>n";
 }
 ?>
PHPとXML

 SAXパーサ:EXPAT
 Apache標準、各タグに処理用のコールバック関数を定義
 DOMパーサ:LIBXML
 GNOME標準、DOM(Document Object Model)
 XSLTパーサ(開発中)
  Javaインターフェース: Saxon、Cocoon2
  PHP拡張モジュール:Sablotron、Xalan/C(予定)
PHPとPDF

 PDF (Portable Document Format)
   電子文書フォーマットの標準
   PDF-APIにより動的にPDFを作成可能
 API:PDFlib,ClibPDF
   日本語に対応(PDFlib:3.0以降,ClibPDF:2.0以降)
   PDFのマージには未対応
   ライセンス: 非商用は無料、商用利用は有償
PHPとイメージ


 イメージを動的に生成可能
  画像フォーマット:PNG,JPEG,WBMP,XBM (,GIF)
  TrueTypeフォントを使用可能
 イメージ情報の取得
  サイズ等の基本情報の取得
  EXIF情報を取得可能
 Shockwave Flashファイルの動的生成
PHPとテンプレート
 テンプレートの概要
    HTMLテンプレートにはPHPコードを書かずにタグのみを記述
    PHPスクリプトによりタグに値を代入し、代入後のHTMLを表示

 複数のテンプレートクラスが既に存在
    FastTemplate:Perlから移植
    PHPlibのtemplateクラス
    PHP4用テンプレートエンジン:作成中                                 テンプレート
使用例                                                      mytemp.ihtml
$tpl = new Template();                    // インスタンスを作成   私の名前は {name}
$tpl->set_file("mytemp","mytemp.ihtml"); // テンプレート読込     です。
$tpl->set_var("name","太郎"); // タグ"name"に値を代入
$tpl->parse("output1","mytemp");         // テンプレートを処理    私の名前は 太郎
$tpl->p("output1");                      // 出力           です。
PHPに関する情報源
 関連URL(英語)
    PHP       http://www.php.net/
    Zend       http://www.zend.com/
    PHPBuilder http://www.phpbuilder.com/
    DevShed http://www.devshed.com/Server_Side/PHP/
    PHP Function Table http://www. zend.com/phpfunc/
 関連URL(日本語)
  日本PHPユーザ会 http://www.php.gr.jp/
  広川のページ http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/

 メーリングリスト
  日本語ML:php-jp,ユーザ会,国際化
  英語ML:xxx@lists.php.net
     php-general,php-windows,php-i18n,php-db,php-dev,php-pear,php-kb
まとめと課題

 PHP4の新機能
  より高機能に:セッション、Java、COM等のサポート
  より安定に:リソース管理の強化
  より簡単に:拡張の簡単化、標準クラスの整備
 今後の課題
  PHP国際化
  XML/XSLT、Templateのネーティブサポート
  アプリケーションサーバー化
1.PHP4の新機能
2.Webアプリ構築の実際
3.デモ(Linux)
PHPに関するデモ(Linux)

 (1)PHP全般
 (2)全文検索エンジン(Namazu)
 (3)テンプレート:PHPlib
 (4)認証、許可属性:PHPlib
 (5)データベースとの連携(PEAR/DBの使用例)
 (6)PDFドキュメントの動的生成
 (7) Shockwave Flashの動的生成

More Related Content

What's hot (20)

PDF
HHVM Hack
Masaaki Yonebayashi
 
PDF
最近の PHP の話
y-uti
 
PDF
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
 
PDF
PHPコアから読み解くPHP5.5
Yahoo!デベロッパーネットワーク
 
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
 
PDF
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
 
PDF
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
 
PDF
CodeIgniter入門
Sho A
 
PDF
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
 
PDF
PHP の GC の話
y-uti
 
PDF
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
 
PPTX
CMSとPerlで遊ぼう
Daiki Ichinose
 
PDF
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
PPTX
Perl logging
keroyonn
 
PDF
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
 
PDF
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
 
KEY
あらためてPHP5.3
Masashi Shinbara
 
PDF
第21回Creators MeetUp
Kenichi Mukai
 
KEY
FuelPHPをさわってみて
Sotaro Omura
 
最近の PHP の話
y-uti
 
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
 
PHPコアから読み解くPHP5.5
Yahoo!デベロッパーネットワーク
 
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
 
PHPにおけるI/O多重化とyield
Yahoo!デベロッパーネットワーク
 
PHP5.5新機能「ジェネレータ」初心者入門
kwatch
 
CodeIgniter入門
Sho A
 
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
 
PHP の GC の話
y-uti
 
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
 
CMSとPerlで遊ぼう
Daiki Ichinose
 
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
 
Perl logging
keroyonn
 
FuelPHPで3種のprofilerを使ってみた
Katsuhiro Miura
 
実"戦"CakePHP Plugin
Kenichirou Oyama
 
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
 
あらためてPHP5.3
Masashi Shinbara
 
第21回Creators MeetUp
Kenichi Mukai
 
FuelPHPをさわってみて
Sotaro Omura
 

Similar to 最新PHP事情 (2000年7月22日,PHPカンファレンス) (20)

PDF
10分でわかるFuelPHP @ 2011/12
kenjis
 
PPTX
PHP基礎勉強会
Yuji Otani
 
PDF
スクリプト言語PHP攻略法
Rui Hirokawa
 
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
PDF
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
 
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
 
PDF
知って得する標準関数の使い方
Soudai Sone
 
PDF
PHPの今とこれから2017
Rui Hirokawa
 
PDF
WordPress テーマ作成&PHP超入門
Michinari Odajima
 
PDF
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
 
PDF
WebAPIではじめるphp入門
Hiroaki Murayama
 
PDF
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
PDF
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
 
PDF
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
 
PDF
PHPの今とこれから2023
Rui Hirokawa
 
PDF
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
 
PDF
Web技術勉強会 20100925
龍一 田中
 
PDF
Weeklycms20120218
Yoshi Sakai
 
PPTX
Php5 4勉強会
Yuji Otani
 
PDF
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
Hideo Kashioka
 
10分でわかるFuelPHP @ 2011/12
kenjis
 
PHP基礎勉強会
Yuji Otani
 
スクリプト言語PHP攻略法
Rui Hirokawa
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
 
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
 
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
 
知って得する標準関数の使い方
Soudai Sone
 
PHPの今とこれから2017
Rui Hirokawa
 
WordPress テーマ作成&PHP超入門
Michinari Odajima
 
PHPの今とこれから2024 at PHP Conference Japan 2024
Rui Hirokawa
 
WebAPIではじめるphp入門
Hiroaki Murayama
 
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
 
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
 
PHPカンファレンス2014の懇親会飛び込みLT資料
Junichi Ishida
 
PHPの今とこれから2023
Rui Hirokawa
 
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
 
Web技術勉強会 20100925
龍一 田中
 
Weeklycms20120218
Yoshi Sakai
 
Php5 4勉強会
Yuji Otani
 
PHP初心者セッション2023 〜ChatGPT時代の簡単な始め方〜
Hideo Kashioka
 
Ad

More from Rui Hirokawa (15)

PDF
PHPの今とこれから2022
Rui Hirokawa
 
PDF
日本PHPユーザ会の紹介
Rui Hirokawa
 
PDF
PHPの中の人によるパネルディスカッション
Rui Hirokawa
 
PDF
PHPの今とこれから2009
Rui Hirokawa
 
PDF
PHPの今とこれから2008
Rui Hirokawa
 
PDF
PHPの今とこれから2007
Rui Hirokawa
 
PDF
PHPの今とこれから2006
Rui Hirokawa
 
PDF
PHPの今と未来を語る
Rui Hirokawa
 
PDF
PHPの今と未来を語る
Rui Hirokawa
 
PDF
php.netの歩き方
Rui Hirokawa
 
PDF
PHPの今とこれから2018
Rui Hirokawa
 
PDF
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
 
PDF
PHPの今とこれから2016
Rui Hirokawa
 
PDF
PHPの今とこれから2015
Rui Hirokawa
 
PDF
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
 
PHPの今とこれから2022
Rui Hirokawa
 
日本PHPユーザ会の紹介
Rui Hirokawa
 
PHPの中の人によるパネルディスカッション
Rui Hirokawa
 
PHPの今とこれから2009
Rui Hirokawa
 
PHPの今とこれから2008
Rui Hirokawa
 
PHPの今とこれから2007
Rui Hirokawa
 
PHPの今とこれから2006
Rui Hirokawa
 
PHPの今と未来を語る
Rui Hirokawa
 
PHPの今と未来を語る
Rui Hirokawa
 
php.netの歩き方
Rui Hirokawa
 
PHPの今とこれから2018
Rui Hirokawa
 
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
 
PHPの今とこれから2016
Rui Hirokawa
 
PHPの今とこれから2015
Rui Hirokawa
 
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
 
Ad

Recently uploaded (13)

PDF
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
PDF
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
PDF
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
PDF
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
PDF
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
PDF
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
PDF
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
PDF
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
PDF
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
PDF
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 
安尾 萌, 藤代 裕之, 松下 光範. 協調的情報トリアージにおけるコミュニケーションの影響についての検討, 第11回データ工学と情報マネジメントに関する...
Matsushita Laboratory
 
論文紹介:AutoPrompt: Eliciting Knowledge from Language Models with Automatically ...
Toru Tamaki
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2024_報告会資料_増野さ...
IGDA Japan SIG-Audio
 
第3回デジタル理学療法研究会学術大会シンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」の講演資料.
Matsushita Laboratory
 
論文紹介:Unbiasing through Textual Descriptions: Mitigating Representation Bias i...
Toru Tamaki
 
安尾 萌, 北村 茂生, 松下 光範. 災害発生時における被害状況把握を目的とした情報共有システムの基礎検討, 電子情報通信学会HCGシンポジウム2018...
Matsushita Laboratory
 
SIG-AUDIO 2025 Vol.02 オンラインセミナー 「GDC2025 オーディオ報告会」SIG-Audio_GDC2025_報告会資料_渡辺さ...
IGDA Japan SIG-Audio
 
漁船に搭載されている電子装備と漁法について_VRC海洋学研究会_海のLT会発表資料
Yuuitirou528 default
 
API認可を支えるKeycloakの基本と設計の考え方 ~ OAuth/OIDCによるAPI保護のベストプラクティス ~
Hitachi, Ltd. OSS Solution Center.
 
マルチAIエージェントの産業界での実践に向けたオープンソース活動の展望 - Japan Regional User Group (RUG) Meet-Up
Kosaku Kimura
 
第3回デジタル理学療法学会のシンポジウム「デジタル理学療法の組織活用:教育・管理・研究を繋ぐ新たな地平」での話題提供
Matsushita Laboratory
 
安尾 萌, 松下 光範. 環境馴致を計量可能にするための試み,人工知能学会第4回仕掛学研究会, 2018.
Matsushita Laboratory
 
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
 

最新PHP事情 (2000年7月22日,PHPカンファレンス)

  • 1. 最新PHP事情 ~新バージョンPHP4のご紹介とPHPのXML等への 応用について~ 日時:2000年7月22日(土曜日)13:50~15:10 会場:大田区産業プラザ 小展示場 日本PHPユーザー会 http://www.php.gr.jp/ 廣川 類 <[email protected]> <[email protected]>
  • 3. PHP3の課題  マルチスレッド未対応  Native APIがApacheのみ  大規模コードでの速度低下  スクリプトの逐次実行  セッション管理の欠如  PHPlib等の外部ライブラリによるサポート
  • 4. PHP4では…  より高機能に  セッション、OOP(クラス、Java、COM等)の強化  より安定に  リソース管理の強化:マルチスレッド対応、管理自動化  より簡単に  拡張モジュールの標準化、標準クラスの整備
  • 5. PHP4の新機能 Zend Engine PHP リソース管理強化 複数Webサーバ対応 • マルチスレッド化 信頼性の向上 • 管理自動化 高速化 実行時コンパイラ 大規模アプリ対応 言語強化 セッション機能 (PHP3上位互換) 標準クラス(PEAR) Zend Add-on
  • 6. PHP4の新機能:セッション  セッション機能のサポート  HTTPは状態を保存しない→セッションデータ保持が必要  PHP3ではPHPLIB等の外部ライブラリを使用  セッションIDによる管理→クライアント側に保存: (1)クッキー、(2)GET  セッションデータ保存 (1)ファイル、(2)共有メモリ、(3)ユーザ定義(RDBMS等) session_start(); // セッションを開始 print($counter); $counter++; session_register(”counter”); // セッション変数を登録 // session_register($counter);は間違い!
  • 7. PHP4の新機能:言語の拡張  foreach文 PHP3 PHP4 reset( $arr ); foreach( $arr as $value ) { while( list( , $value ) = each( $arr ) ) echo "Value: $value<br>n"; { } echo "Value: $value<br>n"; }  ヒア・ドキュメント print <<<EOS Hello! This is a pen! EOS;
  • 8. PHP4の新機能:外部オブジェクト  Javaのサポート:サーブレット、クラス Java PHP4 import java.io.*; $f = new Java("java.io.File", ... $filename); File f = new File (filename); $size = $f->length (); long size = f.length (); echo "$sizen"; System.out.println (size);  COM(Common Object Module) $word = new COM("word.application"); $word->documents->add(); $word->selection->typetext(”Hello!"); $word->documents[1]->saveas("test.doc"); $word->quit();
  • 9. PHP4の新機能:リソース管理の強化  Reference Counting  リソースはポインタで管理され、コピーは行わない。 →高速化  参照されなくなったリソースは自動的に開放される。 →メモリの節約、安定性の増大 while( $row = sql_get_row($result_handle)) { print query_result($row, "name"); query_free($row); } PHP3では必要。 これを行わないとスクリプト実行終了 時までメモリが開放されない。 →PHP4では自動的に開放される。
  • 10. PHP4の新機能:Zendアドオン  Zend Optimizer スクリプトコードの最適化により大幅に高速化 現在RC1版リリース中  Zend Cache コンパイル後のコードをメモリ上にキャッシュ →コンパイル、ロードの時間を節約  Zend Compiler スクリプトコードの隠蔽が可能 →企業ユーザ、商用アプリ開発者にメリット
  • 12. PHPと標準クラス なぜクラスの標準化が必要か?  背景: PHP組込関数ではWebアプリに必要な機能を実装できない。 →ユーザ関数として作成・配布 →同一機能・複数実装による非効率、コード仕様が不統一  クラス標準化の試み  PHPlib :PHP Base Library  PEAR
  • 13. PHPと標準クラス:PHPLIBの概要  機能  DB抽象化: DB_Sqlクラス Perm User PostgreSQL,MySQL,Oracle,ODBC,...をサポート Auth  セッション管理: Sessionクラス Session クッキーまたはGET変数を使用  認証:Authクラス DB_sql チャレンジレスポンス認証、有効時間を指定可能。 PHP  パーミッション管理:Permクラス ユーザ保有権限(管理者、一般ユーザ)毎のアクセス管理  ユーザ管理:Userクラス  テンプレート:Templateクラス  資料:PHPlibドキュメント(翻訳版) http://www.php.gr.jp/php/phplib/
  • 14. PHPと標準クラス:PEAR  クラスの標準化 → PerlのCPAN, TeXのCTAN  機能  DB: DB抽象化クラス(MySQL,PostgreSQL,ODBC,...)  FILE: ファイル操作  使用例 DSNの指定方法: データベース種類://ユーザ名:パスワード@ホスト名/データベース <?php // PEAR/DB サンプル $dsn = "odbc://nobody:nobody@test"; // ODBC // $dsn = "pgsql://nobody:nobody@localhost/test"; // PostgreSQL $obj = DB::connect($dsn); // データベースに接続 $res = $obj->simpleQuery(“select * from product”); // クエリ実行 while($row = $obj->fetchRow($res)){ // 結果を取得・表示 print join(":",$row) . "<BR>n"; } ?>
  • 15. PHPとXML  SAXパーサ:EXPAT Apache標準、各タグに処理用のコールバック関数を定義  DOMパーサ:LIBXML GNOME標準、DOM(Document Object Model)  XSLTパーサ(開発中)  Javaインターフェース: Saxon、Cocoon2  PHP拡張モジュール:Sablotron、Xalan/C(予定)
  • 16. PHPとPDF  PDF (Portable Document Format)  電子文書フォーマットの標準  PDF-APIにより動的にPDFを作成可能  API:PDFlib,ClibPDF  日本語に対応(PDFlib:3.0以降,ClibPDF:2.0以降)  PDFのマージには未対応  ライセンス: 非商用は無料、商用利用は有償
  • 17. PHPとイメージ  イメージを動的に生成可能  画像フォーマット:PNG,JPEG,WBMP,XBM (,GIF)  TrueTypeフォントを使用可能  イメージ情報の取得  サイズ等の基本情報の取得  EXIF情報を取得可能  Shockwave Flashファイルの動的生成
  • 18. PHPとテンプレート  テンプレートの概要  HTMLテンプレートにはPHPコードを書かずにタグのみを記述  PHPスクリプトによりタグに値を代入し、代入後のHTMLを表示  複数のテンプレートクラスが既に存在  FastTemplate:Perlから移植  PHPlibのtemplateクラス  PHP4用テンプレートエンジン:作成中 テンプレート 使用例 mytemp.ihtml $tpl = new Template(); // インスタンスを作成 私の名前は {name} $tpl->set_file("mytemp","mytemp.ihtml"); // テンプレート読込 です。 $tpl->set_var("name","太郎"); // タグ"name"に値を代入 $tpl->parse("output1","mytemp"); // テンプレートを処理 私の名前は 太郎 $tpl->p("output1"); // 出力 です。
  • 19. PHPに関する情報源  関連URL(英語)  PHP http://www.php.net/  Zend http://www.zend.com/  PHPBuilder http://www.phpbuilder.com/  DevShed http://www.devshed.com/Server_Side/PHP/  PHP Function Table http://www. zend.com/phpfunc/  関連URL(日本語)  日本PHPユーザ会 http://www.php.gr.jp/  広川のページ http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/  メーリングリスト  日本語ML:php-jp,ユーザ会,国際化  英語ML:[email protected] php-general,php-windows,php-i18n,php-db,php-dev,php-pear,php-kb
  • 20. まとめと課題  PHP4の新機能  より高機能に:セッション、Java、COM等のサポート  より安定に:リソース管理の強化  より簡単に:拡張の簡単化、標準クラスの整備  今後の課題  PHP国際化  XML/XSLT、Templateのネーティブサポート  アプリケーションサーバー化
  • 22. PHPに関するデモ(Linux) (1)PHP全般 (2)全文検索エンジン(Namazu) (3)テンプレート:PHPlib (4)認証、許可属性:PHPlib (5)データベースとの連携(PEAR/DBの使用例) (6)PDFドキュメントの動的生成 (7) Shockwave Flashの動的生成