• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 

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

on

  • 1,131 views

記念すべき第1回PHPカンファレンスのプレゼン資料です。2000年の資料のため、技術的には賞味期限切れですが、単純に懐かしみたい方にどうぞ。

記念すべき第1回PHPカンファレンスのプレゼン資料です。2000年の資料のため、技術的には賞味期限切れですが、単純に懐かしみたい方にどうぞ。

Statistics

Views

Total Views
1,131
Views on SlideShare
1,131
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 最新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の動的生成