SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
Webとデータベースの連携プログラミング
   ~スクリプト言語 PHP攻略法~
  日時:2000年5月23日(火曜日)18:30~21:00
  会場:日本オラクル株式会社 本社 12Fセミナールーム


    日本PHPユーザー会 http://www.php.gr.jp/
    廣川 類 <louis@cityfujisawa.ne.jp>
           <hirokawa@php.net>
1.PHPの紹介
2.PHP4の新機能
3.Webアプリ構築の実際
4.PHP国際化
5.課題とまとめ
6.デモ(Linux)
Webアプリケーション

 「Webブラウザ+Webサーバー+データベース」に
  より3層アプリケーションを容易に実現する。
  →開発が容易
 Webアプリケーションに必要な機能
    ユーザ入力に応じて動的にコンテンツを生成。
    安定性
    ユーザ入力に対する迅速な応答
    開発効率・メンテナンス性に優れること。(低コスト)
動的Webコンテンツの実現方法

      クライアントサイドスクリプト         サーバーサイドスクリプト

     Webブラウザ側で実行            Webサーバー側で実行

     サーバーへの負荷が低い            必要な機能をクライアント
長所
                            によらず実現できる

     実現可能な機能がブラウザに          CGIの場合、サーバー
短所   依存する                   への負荷がやや高い
     コードがユーザに見えてしまう

実装   JavaScript, VBScript   Perl-CGI, PHP, ASP
PHPと他のソリューション

                Web     Web
         O/S    サーバ     ミドルウエア     RDBMS


 従来    WinNT    IIS     ASP      SQL-Server

これから   Linux   Apache   PHP      PostgreSQL
               シェア60%



PHP+Apache+PostgreSQLは現在最強の組み合わせ
PHP:Hypertext Preprocessor の特徴
  データベース連携アプリを容易に実現可能
  HTML埋込型Webスクリプト言語
   HTMLとの高い親和性。→開発効率が高い。
  オープンソース
   コミュニティによる開発。無償で使用可能。
  マルチプラットホーム
   UNIX系(Linux等), MS-Windows等で動作
  WebサーバApacheとの高い親和性
   Apacheモジュールとして高速動作、低負荷
  各種データベース、ライブラリと接続・使用可能
PHP:言語としての特徴

 Perl、Java、Cに似た記述
 →親しみやすく、習熟が容易
 ユーザ入力(POST,GET,クッキー)を自動的に
 変数に変換
 デバッグが容易
 →エラー行と原因が表示される。
 ユーザ関数やクラスによる機能拡張が可能
 →有用な機能の共有化
CGI版とモジュール版の違い

    CGI                                    CGI
                                   出力結果
              URLリクエスト
                          Web             プロセス
   ブラウザ                  サーバー
               出力結果                          ロード
                         子プロセス起動
                                           CGI
    Apache       Webサーバーと別プロセスで実行         プログラム
   モジュール          →応答時間・サーバー負荷大
              URLリクエスト        Apache
                          Web
   ブラウザ                  サーバー     スクリプト
                           PHP      ロード    PHP
             出力結果
                         解析・実行部           スクリプト
Webサーバーと同一プロセスで実行        mod_php
  →応答時間・サーバー負荷小
PHPとデータベース/ライブラリ

 データベース
 PostgreSQL MySQL ODBC      SQL Server
 Oracle   Sybase Informix   DB2

 アプリケーションライブラリ
   FTP     正規表現       XML       Image
  IMAP4      Java     POP3      (PNG,GIF)
    COM     LDAP      PDF         SMTP
PHPのインストール

 ソースコードからインストール
 (1) PHP Webサイト(http://www.php.net/)から入手
 (2) ApacheをDSO版でコンパイル
 (3) Apacheモジュール版PHP(mod_php)をコンパイル
 バイナリからインストール
  各種Linuxディストリビューションに付属
  RPMファイルによる配布
  AlpHa FACTORY http://alpha.or.jp/
PHPによるプログラミング
                                           POST,GET,クッキー変数は自
                                           動的に変数に変換される。
http://localhost/hello.php?name=Taro

                             hello.php
   <html>
   <head><title>test page</title></head>
   <body>                                          Hello, Taro
    <?php
   echo “Hello, $name”;
   ?>                                      エラー発生時は該当行を表示
   </body></html>
PHPによるWebアプリケーション


              Groupware
            Skyboard
                     UNIUS-Lite
 BBS           ELIAS-LX
 phorum                    Database API
        NeoBoard
 w-agora              phpDB PEAR/DB
                          PHPlib
PHPの普及

                                                15,000
 1995   Rasmus LerdorfによりPHP/FI開発

        PHP/FI日本語Webページ,日本語ML
                                    PHP/FI 2
 1996   PHP/FI日本語マニュアル作成プロジェクト
        PHP/FI日本語パッチ
 1997   PHP3開発(新開発体制へ移行)                        50,000

        PHP3日本語マニュアル作成プロジェクト
                                     PHP3
 1998
        PHP3日本語パッチ

 1999   PHP国際化プロジェクト開始                          150,000
        「PHP徹底攻略」出版

 2000   日本PHPユーザ会設立
        PHP4リリース
                                     PHP4      2,000,000
PHPの開発体制
                                Stig Bakken
Rasmus Lerdorf                  PHP Manual
                                Norway
1995年PHPを開発                     FAST Search and Transfer
1996年PHP/FI2を開発
San Francisco, USA
Linuxcare Inc.
                                Egon Schmid
                                PHP Manual
Senior Open-source Researcher   Germany
                                SIX Offene Systeme GmbH
Andi Gutmans
                                Thies Arntzen
Zeev Suraski                    Oracle module
1997年PHP3を開発                    Germany
1999年Zendを設立                    CTO of Digital Collections
Israel
CTO of Zend Technologies Ltd.   Michael Widenius
                                MySQL module
                                Sweden
                                CTO of MySQL
日本PHPユーザ会

2000/4 Linux Conference 2000にて設立記者会見   活動内容(WG)

                                       Web
 設立趣旨                                        http://www.php.gr.jp/

  PHPユーザ相互の情報交換および                     メーリングリスト
  コミュニティの健全な発展                             プロジェクト別ML
                                       ドキュメント整備
  背景                                       マニュアル、FAQ
• 高性能Webミドルウエアへのニーズ増大                  セミナー・イベント
• オープンソースソフトウエアの発展                         無償セミナ等

                                         国際化
         国内PHPユーザの増加                       PHP4の国際化等
1.PHPの紹介
2.PHP4の新機能
3.Webアプリ構築の実際
4.PHP国際化
5.課題とまとめ
6.デモ(Linux)
PHP3の構成と課題
   Web             Server API      Modules API
   Browser            Apache        PostgreSQL     RDBMS
                       CGI          MySQL
                                    Oracle
                PHP Engine
                                    ODBC
                Resource Manager
                                   LDAP      PDF
Class Library   Function Module    IMAP      XML
                Interface
     PHPLIB
                    Executer       GD     正規表現

                     Parser                        問題点
 PHP Script
                                    • マルチスレッド未対応
                                    • Native APIがApacheのみ
                                    • 大規模コードでの速度低下
                                    •セッション管理の欠如
PHP4の新機能

Zend Engine          PHP

    マルチスレッド化           複数Webサーバ対応
                       信頼性の向上
   リソース管理強化
                       高速化
    実行時コンパイラ
                       大規模アプリ対応
    Add-on             セッション機能
    Zend Compiler
                       言語強化(PHP3上位互換)
    Zend Optimizer
                       標準クラス(PEAR)
     Zend Cache
                       MySQLクライアントライブラリ
PHP4の構成
  Web
  Browser        Server API      Modules API
                   Apache
Zend Add-in                       PostgreSQL       RDBMS
                  AOL Server
                     IIS          MySQL
  Zend              CGI           Oracle
  Optimizer
                                  ODBC
              Zend Engine
                                 LDAP      PDF
  Zend        Thread Safe
  Cache       Resource Manager   IMAP      XML
              Function Module     GD       Java
              Interface
                                   正規表現
  Zend
  Compiler    Executer
              Runtime Compiler                     PHP Script
                                   Class Library
                                        PEAR
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の新機能:リソース管理の強化

 Reference Counting
  $a=array(1,2,3); // (1,2,3)の参照カウンタ1
  $b=$a;          // (1,2,3)の参照カウンタ1→2、コピーは行われない。
  $a=5;           // (1,2,3)の参照カウンタ2→1
  $b=0;           // (1,2,3)の参照カウンタ1→0(データは自動的に破棄)


   メモリ節約        速度向上         リソース管理自動化

   while( $row = sql_get_row($result_handle))
     {
       print query_result($row, "name");
       query_free($row);                      PHP3では必要。
     }                                        これを行わないとスクリプト実行終了時
                                     までメモリが開放されない。
                                     →PHP4では自動的に開放される。
PHP4の新機能:ライブラリ拡張の強化
 PHP4では拡張機能の組込手順が統一され,共有ライブラリ化も容易に。
 組込モジュール
   $ cd path-to-php-4.0            # PHP4のソースディレクトリに移動
   $ tar xzvf foo.tar.gz -C ext/   # アーカイブ解凍
   $ ./buildconf                   # 構築環境設定
   $ ./configure [--options]       # makefile等を作成
   $ make install                  # 構築&インストール
 共有モジュール

   $ tar xzvf foo.tar.gz          # アーカイブ解凍
   $ cd foo                       # モジュールソースに移動
   $ phpize                       # 構築環境設定
   $ ./configure [--options]      # makefile等を作成
   $ make install                 # 構築&インストール
  php.ini で extension=foo.so を指定すれば起動時にロードされる。
PHP4の新機能:Zendアドオン

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


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


 Zend Compiler
  スクリプトコードの隠蔽が可能
  →企業ユーザ、商用アプリ開発者にメリット
ベンチマーク: PHP4 対 PHP3
      PHP/Zendα版(1999/10)にて実施

  1
0.9
0.8
0.7
0.6
                                                   PHP3
0.5                                                PHP4
0.4                                                PHP4/Optimizer
0.3
0.2
0.1
  0
           Sort                 Database
      Linux box, with a 100MHz Pentium CPU and 24MB of RAM
ベンチマーク: PHP4 対 ASP
       PHP/Zendα版(1999/10)にて実施
 [s]
50
40
30                                                      ASP
20                                                      PHP4
                                                        PHP4/Optimizer
10
 0
         Sort       Mandelbrot       Loop
       NT4.0SP4+IIS4.0 P2-233 128MB RAM (PHP+ISAPI,ASP+VBScript)
1.PHPの紹介
2.PHP4の新機能
3.Webアプリ構築の実際
4.PHP国際化
5.課題とまとめ
6.デモ(Linux)
PHPとデータベースの連携

 処理の流れ
 $conn = sql_connect ($hostname);                         //   接続をオープン
 $result = sql_query(”select * from tablename”,$conn);   //    クエリーを実行
 while( $row = sql_get_row ($conn,$result)){             //    レコードを取得
     print query_result ($row, “name”);                  //    カラムを表示
 }

 持続的接続 (Persistent Connection)
    同一ホスト、同一ユーザの接続がすでにオープンされている場合は、
     既存の接続を用いる。
     → 特にOracleのように接続負荷が大きい場合に効果的
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と標準クラス:PHPLIBの使用例

 PHPlibの認証:Basic認証との違い
    Basic認証ではカスタマイズ不可:有効期限設定、入力データ項目変更
    パスワードがそのままネットワーク上を流れてしまう。
     →チャレンジレスポンス認証:JavaScriptによりパスワードをMD5ハッシュ化
 使用例
 <?php // local.inc にてサブクラスを作成しておく
  // セッション・認証・パーミッション機能付ページをオープン
   page_open(
    array("sess"=>"Foo_Session","auth"=>"Foo_Callenge_Auth","perm"=>"Foo_Perm"));
   $sess->register("counter"); // セッション変数登録
   print ++$counter;
   if($perm->have_perm("admin")){ // 権限チェック
     echo "あなたは管理者権限を保有しています。";
   }
   page_close();                  // セッション・認証ページを終了
 ?>
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

 EXPAT
 Apache標準、各タグに処理用のコールバック関数を定義
 LIBXML
 GNOME標準、DOM(Document Object Model)
 WDDX(Web Distributed Data Exchange)
 受け渡しデータ用フォーマット:シリアル化
 XML/XSLT
 現状では未サポートだが、将来的にサポート予定。
PHPとPDF

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


 小規模~中規模のアプリケーション
 →HTML埋込型スクリプトPHPによる効率的な開発
 中規模~大規模になると...
  Webサイトレベルの管理が必要。
  デザイン、スクリプトの分離
   テンプレートクラス
   アプリケーションサーバー
    Midgard-Project: http://www.midgard-project.org/
1.PHPの紹介
2.PHP4の新機能
3.Webアプリ構築の実際
4.PHP国際化
5.課題とまとめ
6.デモ(Linux)
PHPと国際化:日本語使用時の問題
             ①フォーム情報
  ブラウザ       漢字コード不明      文字化け発生

⑥ HTMLまたは
画像(バイナリ)         Webサーバー
                    PHP
    ⑤画像          内部データ(漢字コード固定)
    (バイナリ)                      ②クエリ送信
              ④データ
                                (漢字コード固定)
              (漢字コード固定)
                       ③データ
  イメージライブラリ
                             RDBMS
PHPと国際化:機能
課題                              変換 engine
 • ブラウザにより複数の漢字コード
  (SJIS、EUC等)が入出力される             1.PHP3用
   → 文字化け発生                      2. iconv(glibc 2.x)
 • 関数がマルチバイト文字に未対応


 •   内部コード・入出力コード自動変換 (SJIS,EUC,UTF-8,...)
 •   マルチバイト対応文字列関数 mbstrlen($str),...
 •   マルチバイト対応正規表現関数 mbregex(),...
 •   適切なメールMIMEヘッダ・ボディーのエンコード
 •   全文検索エンジン(Namazu )
国際化版PHPによるプログラミング
 設定ファイル(php.ini/php3.ini)にて設定
   i18n.http_output = SJIS           ; 出力コード
   i18n.internal_encoding = EUC-JP   ; 内部コード
   i18n.script_encoding = auto       ; PHPスクリプトのコード
   i18n.http_input = auto            ; 入力のコード
   i18n.http_input_default = SJIS    ; 入力コードのデフォルト値(不明な場合)

 Tips
    画像出力時は自動変換を無効にする。
     i18n_http_output("path");
    GET変数で日本語を渡す際にはURLエンコードを行う。
     <A href="foo.php?name=<? echo urlencode($name) ?>">リンク</A>
    POSTの入力コード(shift_jis<->euc-jp)の自動認識がうまくいかない場合:
     hiddenパラメータでダミー文字列を指定。
国際化版PHP4の現状

 PHP3は既に国際化を実施。ただし、本家へのマージは未了。
 コード変換関数、マルチバイト関数を拡張モジュールとして提供
 ftp://night.fminn.nagano.nagano.jp/php4/ から入手。
     php-4.0XXX_jstring-1.0      : 日本語コード変換、マルチバイト対応関数、メール関数
     php-4.0XXX_mbregex-1.0      : マルチバイト対応正規表現
     php-4.0XXX_iconv-1.0        : iconvによるコード変換:glibc-2.x
     php-4.0XXX_namazu-2.0       : 全文検索エンジンNamazu

 入出力コードの自動変換は未サポート
 PHP4ではデフォルト文字コードを指定可能 (php.iniで指定)
     default_charset = "euc-jp"
1.PHPの紹介
2.PHP4の新機能
3.Webアプリ構築の実際
4.PHP国際化
5.課題とまとめ
6.デモ(Linux)
PHPの未来

 国際化
   どうやって本家にマージするか?
 XML/XSLT
 大規模プロジェクトへの対応
   Webアプリケーションサーバー化:Midguardプロジェクト
   テンプレートエンジン
 標準クラスの整備:PEAR
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.zugeschaut-und-mitgebaut.de/php/
 関連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
まとめ

 PHPの特徴
  親しみやすいスクリプト言語
  データベース(PostgreSQLとの)との高い親和性
  Apacheモジュールによる高速実行
  オープンソースによる開発
 PHP4/Zendによるさらなる高機能化
 PHP国際化作業は今後も課題
PHPに関するデモ(Linux)

(1)PHP全般
(2)全文検索エンジン(Namazu)
(3)テンプレート:PHPlib
(4)認証、許可属性:PHPlib
(5)データベースとの連携(PEAR/DBの使用例)
(6)PDFドキュメントの動的生成
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/samples/ にてコード公開(予定)

Mais conteúdo relacionado

Mais procurados

今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」Soudai Sone
 
FuelPHPでのファイルアップロード
FuelPHPでのファイルアップロード FuelPHPでのファイルアップロード
FuelPHPでのファイルアップロード kenjis
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 Mika Kane
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12kenjis
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHPSho A
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月suno88
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPJunichi Yamamoto
 
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_luaRyosuke MATSUMOTO
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1Fumito Mizuno
 
Flume cassandra real time log processing (日本語)
Flume cassandra real time log processing (日本語)Flume cassandra real time log processing (日本語)
Flume cassandra real time log processing (日本語)CLOUDIAN KK
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Masahiro Nagano
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...do_aki
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118Nozomi Kurihara
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すTakaya Saeki
 
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Nozomi Kurihara
 

Mais procurados (20)

今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」今、最も勢いのあるWebフレームワーク「fuel php」
今、最も勢いのあるWebフレームワーク「fuel php」
 
FuelPHPでのファイルアップロード
FuelPHPでのファイルアップロード FuelPHPでのファイルアップロード
FuelPHPでのファイルアップロード
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014 FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
FuelPHP - フレームワーク4本勝負 @PHPカンファレンス関西2014
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
 
はじめての FuelPHP
はじめての FuelPHPはじめての FuelPHP
はじめての FuelPHP
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Osc2014
Osc2014Osc2014
Osc2014
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHP
 
Fuelphp1.8を始めたい
Fuelphp1.8を始めたいFuelphp1.8を始めたい
Fuelphp1.8を始めたい
 
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
第2回 松本勉強会 2012 05 25 - apache2.4とmod_lua
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
 
Flume cassandra real time log processing (日本語)
Flume cassandra real time log processing (日本語)Flume cassandra real time log processing (日本語)
Flume cassandra real time log processing (日本語)
 
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
 
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
ヤフー発のメッセージキュー 「Pulsar」のご紹介@jjug ccc 20171118
 
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話すWebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
 
Mod mrubyについて
Mod mrubyについてMod mrubyについて
Mod mrubyについて
 
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
 

Destaque

2011 2012 iEARN-projectbook
2011 2012 iEARN-projectbook2011 2012 iEARN-projectbook
2011 2012 iEARN-projectbookFiona Beal
 
Wahlanfechtung volltext
Wahlanfechtung volltextWahlanfechtung volltext
Wahlanfechtung volltextFESD GKr
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)Rui Hirokawa
 
2010 2011 IEARN project book
2010 2011 IEARN project book2010 2011 IEARN project book
2010 2011 IEARN project bookFiona Beal
 
Metrology education presentation
Metrology education presentationMetrology education presentation
Metrology education presentationMichael Taylor
 
Diferencia entre mapa conceptual y mapa mental
Diferencia entre mapa conceptual y mapa mentalDiferencia entre mapa conceptual y mapa mental
Diferencia entre mapa conceptual y mapa mentalDandresgon
 
Fabrica de alfileres de adam smith
Fabrica de alfileres de adam smithFabrica de alfileres de adam smith
Fabrica de alfileres de adam smithOscar Sarrias
 
Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentesAaron Luna
 
Clase teoria atomicas
Clase teoria atomicasClase teoria atomicas
Clase teoria atomicaskhokhestem
 
Ejercicios FuncióN AfíN
Ejercicios FuncióN AfíNEjercicios FuncióN AfíN
Ejercicios FuncióN AfíNCarmen Mourelle
 
Cartel Con PowerPoint 2007
Cartel Con PowerPoint 2007Cartel Con PowerPoint 2007
Cartel Con PowerPoint 2007Charles Segui
 
Ventaja Absoluta - Adam Smith
Ventaja Absoluta - Adam SmithVentaja Absoluta - Adam Smith
Ventaja Absoluta - Adam Smithsoyicthus
 
Desktop Management Using Microsoft SCCM
Desktop Management Using Microsoft SCCMDesktop Management Using Microsoft SCCM
Desktop Management Using Microsoft SCCMJerry Bishop
 
頚部の腫瘤の鑑別診断
頚部の腫瘤の鑑別診断頚部の腫瘤の鑑別診断
頚部の腫瘤の鑑別診断Izumi Mihashi
 

Destaque (20)

2011 2012 iEARN-projectbook
2011 2012 iEARN-projectbook2011 2012 iEARN-projectbook
2011 2012 iEARN-projectbook
 
10 G Love 1.4
10 G Love 1.410 G Love 1.4
10 G Love 1.4
 
10 G Love 1.3
10 G Love 1.310 G Love 1.3
10 G Love 1.3
 
Wahlanfechtung volltext
Wahlanfechtung volltextWahlanfechtung volltext
Wahlanfechtung volltext
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
2010 2011 IEARN project book
2010 2011 IEARN project book2010 2011 IEARN project book
2010 2011 IEARN project book
 
CMSI計算科学技術特論A(2) MPIの基礎
CMSI計算科学技術特論A(2) MPIの基礎CMSI計算科学技術特論A(2) MPIの基礎
CMSI計算科学技術特論A(2) MPIの基礎
 
Metrology education presentation
Metrology education presentationMetrology education presentation
Metrology education presentation
 
Diferencia entre mapa conceptual y mapa mental
Diferencia entre mapa conceptual y mapa mentalDiferencia entre mapa conceptual y mapa mental
Diferencia entre mapa conceptual y mapa mental
 
Fabrica de alfileres de adam smith
Fabrica de alfileres de adam smithFabrica de alfileres de adam smith
Fabrica de alfileres de adam smith
 
Plan de-emergecia-sura-pptx
Plan de-emergecia-sura-pptxPlan de-emergecia-sura-pptx
Plan de-emergecia-sura-pptx
 
Tecnologias emergentes
Tecnologias emergentesTecnologias emergentes
Tecnologias emergentes
 
Clase teoria atomicas
Clase teoria atomicasClase teoria atomicas
Clase teoria atomicas
 
25. Architettura Romanica
25. Architettura Romanica25. Architettura Romanica
25. Architettura Romanica
 
Ejercicios FuncióN AfíN
Ejercicios FuncióN AfíNEjercicios FuncióN AfíN
Ejercicios FuncióN AfíN
 
Cartel Con PowerPoint 2007
Cartel Con PowerPoint 2007Cartel Con PowerPoint 2007
Cartel Con PowerPoint 2007
 
Transcultural nursing
Transcultural nursingTranscultural nursing
Transcultural nursing
 
Ventaja Absoluta - Adam Smith
Ventaja Absoluta - Adam SmithVentaja Absoluta - Adam Smith
Ventaja Absoluta - Adam Smith
 
Desktop Management Using Microsoft SCCM
Desktop Management Using Microsoft SCCMDesktop Management Using Microsoft SCCM
Desktop Management Using Microsoft SCCM
 
頚部の腫瘤の鑑別診断
頚部の腫瘤の鑑別診断頚部の腫瘤の鑑別診断
頚部の腫瘤の鑑別診断
 

Semelhante a スクリプト言語PHP攻略法

PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~Rui Hirokawa
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)Rui Hirokawa
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTeruo Kawasaki
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -Masaki Takeda
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020Rui Hirokawa
 
Movable Type PHP API について - MTCafe Saitama 2013
Movable Type PHP API について - MTCafe Saitama 2013Movable Type PHP API について - MTCafe Saitama 2013
Movable Type PHP API について - MTCafe Saitama 2013Taketoshi Yagishita
 
OSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションOSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションMasaki Takeda
 
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話Yuki Kanazawa
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
『RIA開発におけるサービス開発のイロハ』
 『RIA開発におけるサービス開発のイロハ』 『RIA開発におけるサービス開発のイロハ』
『RIA開発におけるサービス開発のイロハ』Jun Funakura
 
RIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハRIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハJun Funakura
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Frameworkryota ichie
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Akira Inoue
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
05 はじめてのmy sql
05 はじめてのmy sql05 はじめてのmy sql
05 はじめてのmy sql文樹 高橋
 

Semelhante a スクリプト言語PHP攻略法 (20)

PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
 
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
PHP Now and Then 2012 at PHP Conference 2012, Tokyo Japan (in japanese)
 
TokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoopTokyoWebminig カジュアルなHadoop
TokyoWebminig カジュアルなHadoop
 
PHP 開発環境構築 - Windows 編 -
PHP 開発環境構築- Windows 編 -PHP 開発環境構築- Windows 編 -
PHP 開発環境構築 - Windows 編 -
 
PHPの今とこれから2020
PHPの今とこれから2020PHPの今とこれから2020
PHPの今とこれから2020
 
Movable Type PHP API について - MTCafe Saitama 2013
Movable Type PHP API について - MTCafe Saitama 2013Movable Type PHP API について - MTCafe Saitama 2013
Movable Type PHP API について - MTCafe Saitama 2013
 
OSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッションOSC 2010 Tokyo/Fall MSセッション
OSC 2010 Tokyo/Fall MSセッション
 
Webの勉強会#5
Webの勉強会#5Webの勉強会#5
Webの勉強会#5
 
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
【PHPカンファレンス福岡】PHP 5.3 + CakePHP 1.3 → PHP 7 + CakePHP 3 移行を決めた話
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
『RIA開発におけるサービス開発のイロハ』
 『RIA開発におけるサービス開発のイロハ』 『RIA開発におけるサービス開発のイロハ』
『RIA開発におけるサービス開発のイロハ』
 
RIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハRIA開発におけるサービス開発のイロハ
RIA開発におけるサービス開発のイロハ
 
CakePHP PHP Framework
CakePHP PHP FrameworkCakePHP PHP Framework
CakePHP PHP Framework
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
Apache Hadoopを改めて知る
Apache Hadoopを改めて知るApache Hadoopを改めて知る
Apache Hadoopを改めて知る
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
05 はじめてのmy sql
05 はじめてのmy sql05 はじめてのmy sql
05 はじめてのmy sql
 

Mais de Rui Hirokawa

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

Mais de Rui Hirokawa (20)

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

Último

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Último (9)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

スクリプト言語PHP攻略法

  • 1. Webとデータベースの連携プログラミング ~スクリプト言語 PHP攻略法~ 日時:2000年5月23日(火曜日)18:30~21:00 会場:日本オラクル株式会社 本社 12Fセミナールーム 日本PHPユーザー会 http://www.php.gr.jp/ 廣川 類 <louis@cityfujisawa.ne.jp> <hirokawa@php.net>
  • 3. Webアプリケーション  「Webブラウザ+Webサーバー+データベース」に より3層アプリケーションを容易に実現する。 →開発が容易  Webアプリケーションに必要な機能  ユーザ入力に応じて動的にコンテンツを生成。  安定性  ユーザ入力に対する迅速な応答  開発効率・メンテナンス性に優れること。(低コスト)
  • 4. 動的Webコンテンツの実現方法 クライアントサイドスクリプト サーバーサイドスクリプト Webブラウザ側で実行 Webサーバー側で実行 サーバーへの負荷が低い 必要な機能をクライアント 長所 によらず実現できる 実現可能な機能がブラウザに CGIの場合、サーバー 短所 依存する への負荷がやや高い コードがユーザに見えてしまう 実装 JavaScript, VBScript Perl-CGI, PHP, ASP
  • 5. PHPと他のソリューション Web Web O/S サーバ ミドルウエア RDBMS 従来 WinNT IIS ASP SQL-Server これから Linux Apache PHP PostgreSQL シェア60% PHP+Apache+PostgreSQLは現在最強の組み合わせ
  • 6. PHP:Hypertext Preprocessor の特徴  データベース連携アプリを容易に実現可能  HTML埋込型Webスクリプト言語 HTMLとの高い親和性。→開発効率が高い。  オープンソース コミュニティによる開発。無償で使用可能。  マルチプラットホーム UNIX系(Linux等), MS-Windows等で動作  WebサーバApacheとの高い親和性 Apacheモジュールとして高速動作、低負荷  各種データベース、ライブラリと接続・使用可能
  • 7. PHP:言語としての特徴  Perl、Java、Cに似た記述 →親しみやすく、習熟が容易  ユーザ入力(POST,GET,クッキー)を自動的に 変数に変換  デバッグが容易 →エラー行と原因が表示される。  ユーザ関数やクラスによる機能拡張が可能 →有用な機能の共有化
  • 8. CGI版とモジュール版の違い CGI CGI 出力結果 URLリクエスト Web プロセス ブラウザ サーバー 出力結果 ロード 子プロセス起動 CGI Apache Webサーバーと別プロセスで実行 プログラム モジュール →応答時間・サーバー負荷大 URLリクエスト Apache Web ブラウザ サーバー スクリプト PHP ロード PHP 出力結果 解析・実行部 スクリプト Webサーバーと同一プロセスで実行 mod_php →応答時間・サーバー負荷小
  • 9. PHPとデータベース/ライブラリ  データベース PostgreSQL MySQL ODBC SQL Server Oracle Sybase Informix DB2  アプリケーションライブラリ FTP 正規表現 XML Image IMAP4 Java POP3 (PNG,GIF) COM LDAP PDF SMTP
  • 10. PHPのインストール  ソースコードからインストール (1) PHP Webサイト(http://www.php.net/)から入手 (2) ApacheをDSO版でコンパイル (3) Apacheモジュール版PHP(mod_php)をコンパイル  バイナリからインストール  各種Linuxディストリビューションに付属  RPMファイルによる配布 AlpHa FACTORY http://alpha.or.jp/
  • 11. PHPによるプログラミング POST,GET,クッキー変数は自 動的に変数に変換される。 http://localhost/hello.php?name=Taro hello.php <html> <head><title>test page</title></head> <body> Hello, Taro <?php echo “Hello, $name”; ?> エラー発生時は該当行を表示 </body></html>
  • 12. PHPによるWebアプリケーション Groupware Skyboard UNIUS-Lite BBS ELIAS-LX phorum Database API NeoBoard w-agora phpDB PEAR/DB PHPlib
  • 13. PHPの普及 15,000 1995 Rasmus LerdorfによりPHP/FI開発 PHP/FI日本語Webページ,日本語ML PHP/FI 2 1996 PHP/FI日本語マニュアル作成プロジェクト PHP/FI日本語パッチ 1997 PHP3開発(新開発体制へ移行) 50,000 PHP3日本語マニュアル作成プロジェクト PHP3 1998 PHP3日本語パッチ 1999 PHP国際化プロジェクト開始 150,000 「PHP徹底攻略」出版 2000 日本PHPユーザ会設立 PHP4リリース PHP4 2,000,000
  • 14. PHPの開発体制 Stig Bakken Rasmus Lerdorf PHP Manual Norway 1995年PHPを開発 FAST Search and Transfer 1996年PHP/FI2を開発 San Francisco, USA Linuxcare Inc. Egon Schmid PHP Manual Senior Open-source Researcher Germany SIX Offene Systeme GmbH Andi Gutmans Thies Arntzen Zeev Suraski Oracle module 1997年PHP3を開発 Germany 1999年Zendを設立 CTO of Digital Collections Israel CTO of Zend Technologies Ltd. Michael Widenius MySQL module Sweden CTO of MySQL
  • 15. 日本PHPユーザ会 2000/4 Linux Conference 2000にて設立記者会見 活動内容(WG) Web 設立趣旨 http://www.php.gr.jp/ PHPユーザ相互の情報交換および メーリングリスト コミュニティの健全な発展 プロジェクト別ML ドキュメント整備 背景 マニュアル、FAQ • 高性能Webミドルウエアへのニーズ増大 セミナー・イベント • オープンソースソフトウエアの発展 無償セミナ等 国際化 国内PHPユーザの増加 PHP4の国際化等
  • 17. PHP3の構成と課題 Web Server API Modules API Browser Apache PostgreSQL RDBMS CGI MySQL Oracle PHP Engine ODBC Resource Manager LDAP PDF Class Library Function Module IMAP XML Interface PHPLIB Executer GD 正規表現 Parser 問題点 PHP Script • マルチスレッド未対応 • Native APIがApacheのみ • 大規模コードでの速度低下 •セッション管理の欠如
  • 18. PHP4の新機能 Zend Engine PHP マルチスレッド化 複数Webサーバ対応 信頼性の向上 リソース管理強化 高速化 実行時コンパイラ 大規模アプリ対応 Add-on セッション機能 Zend Compiler 言語強化(PHP3上位互換) Zend Optimizer 標準クラス(PEAR) Zend Cache MySQLクライアントライブラリ
  • 19. PHP4の構成 Web Browser Server API Modules API Apache Zend Add-in PostgreSQL RDBMS AOL Server IIS MySQL Zend CGI Oracle Optimizer ODBC Zend Engine LDAP PDF Zend Thread Safe Cache Resource Manager IMAP XML Function Module GD Java Interface 正規表現 Zend Compiler Executer Runtime Compiler PHP Script Class Library PEAR
  • 20. PHP4の新機能:セッション  セッション機能のサポート  HTTPは状態を保存しない→セッションデータ保持が必要  PHP3ではPHPLIB等の外部ライブラリを使用  セッションIDによる管理 →クライアント側に保存: (1)クッキー、(2)GET  セッションデータ保存 (1)ファイル、(2)共有メモリ、(3)ユーザ定義(RDBMS等) session_start(); // セッションを開始 print($counter); $counter++; session_register(”counter”); // セッション変数を登録 // session_register($counter);は間違い!
  • 21. 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;
  • 22. PHP4の新機能:リソース管理の強化  Reference Counting $a=array(1,2,3); // (1,2,3)の参照カウンタ1 $b=$a; // (1,2,3)の参照カウンタ1→2、コピーは行われない。 $a=5; // (1,2,3)の参照カウンタ2→1 $b=0; // (1,2,3)の参照カウンタ1→0(データは自動的に破棄) メモリ節約 速度向上 リソース管理自動化 while( $row = sql_get_row($result_handle)) { print query_result($row, "name"); query_free($row); PHP3では必要。 } これを行わないとスクリプト実行終了時 までメモリが開放されない。 →PHP4では自動的に開放される。
  • 23. PHP4の新機能:ライブラリ拡張の強化  PHP4では拡張機能の組込手順が統一され,共有ライブラリ化も容易に。  組込モジュール $ cd path-to-php-4.0 # PHP4のソースディレクトリに移動 $ tar xzvf foo.tar.gz -C ext/ # アーカイブ解凍 $ ./buildconf # 構築環境設定 $ ./configure [--options] # makefile等を作成 $ make install # 構築&インストール  共有モジュール $ tar xzvf foo.tar.gz # アーカイブ解凍 $ cd foo # モジュールソースに移動 $ phpize # 構築環境設定 $ ./configure [--options] # makefile等を作成 $ make install # 構築&インストール php.ini で extension=foo.so を指定すれば起動時にロードされる。
  • 24. PHP4の新機能:Zendアドオン  Zend Optimizer スクリプトコードの最適化により大幅に高速化 現在β2版リリース中  Zend Cache コンパイル後のコードをメモリ上にキャッシュ →コンパイル、ロードの時間を節約  Zend Compiler スクリプトコードの隠蔽が可能 →企業ユーザ、商用アプリ開発者にメリット
  • 25. ベンチマーク: PHP4 対 PHP3 PHP/Zendα版(1999/10)にて実施 1 0.9 0.8 0.7 0.6 PHP3 0.5 PHP4 0.4 PHP4/Optimizer 0.3 0.2 0.1 0 Sort Database Linux box, with a 100MHz Pentium CPU and 24MB of RAM
  • 26. ベンチマーク: PHP4 対 ASP PHP/Zendα版(1999/10)にて実施 [s] 50 40 30 ASP 20 PHP4 PHP4/Optimizer 10 0 Sort Mandelbrot Loop NT4.0SP4+IIS4.0 P2-233 128MB RAM (PHP+ISAPI,ASP+VBScript)
  • 28. PHPとデータベースの連携  処理の流れ $conn = sql_connect ($hostname); // 接続をオープン $result = sql_query(”select * from tablename”,$conn); // クエリーを実行 while( $row = sql_get_row ($conn,$result)){ // レコードを取得 print query_result ($row, “name”); // カラムを表示 }  持続的接続 (Persistent Connection)  同一ホスト、同一ユーザの接続がすでにオープンされている場合は、 既存の接続を用いる。 → 特にOracleのように接続負荷が大きい場合に効果的
  • 29. PHPと標準クラス なぜクラスの標準化が必要か?  背景: PHP組込関数ではWebアプリに必要な機能を実装できない。 →ユーザ関数として作成・配布 →同一機能・複数実装による非効率、コード仕様が不統一  クラス標準化の試み  PHPlib :PHP Base Library  PEAR
  • 30. 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/
  • 31. PHPと標準クラス:PHPLIBの使用例  PHPlibの認証:Basic認証との違い  Basic認証ではカスタマイズ不可:有効期限設定、入力データ項目変更  パスワードがそのままネットワーク上を流れてしまう。 →チャレンジレスポンス認証:JavaScriptによりパスワードをMD5ハッシュ化  使用例 <?php // local.inc にてサブクラスを作成しておく // セッション・認証・パーミッション機能付ページをオープン page_open( array("sess"=>"Foo_Session","auth"=>"Foo_Callenge_Auth","perm"=>"Foo_Perm")); $sess->register("counter"); // セッション変数登録 print ++$counter; if($perm->have_perm("admin")){ // 権限チェック echo "あなたは管理者権限を保有しています。"; } page_close(); // セッション・認証ページを終了 ?>
  • 32. 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"; } ?>
  • 33. PHPとXML  EXPAT Apache標準、各タグに処理用のコールバック関数を定義  LIBXML GNOME標準、DOM(Document Object Model)  WDDX(Web Distributed Data Exchange) 受け渡しデータ用フォーマット:シリアル化  XML/XSLT 現状では未サポートだが、将来的にサポート予定。
  • 34. PHPとPDF  PDF (Portable Document Format)  電子文書フォーマットの標準  PDF-APIにより動的にPDFを作成可能  API:PDFlib,ClibPDF  日本語に対応(PDFlib:3.0以降,ClibPDF:2.0以降)  PDFのマージには未対応  ライセンス: 非商用は無料、商用利用は有償
  • 35. 大規模プロジェクトへの対応  小規模~中規模のアプリケーション →HTML埋込型スクリプトPHPによる効率的な開発  中規模~大規模になると...  Webサイトレベルの管理が必要。  デザイン、スクリプトの分離  テンプレートクラス  アプリケーションサーバー Midgard-Project: http://www.midgard-project.org/
  • 37. PHPと国際化:日本語使用時の問題 ①フォーム情報 ブラウザ 漢字コード不明 文字化け発生 ⑥ HTMLまたは 画像(バイナリ) Webサーバー PHP ⑤画像 内部データ(漢字コード固定) (バイナリ) ②クエリ送信 ④データ (漢字コード固定) (漢字コード固定) ③データ イメージライブラリ RDBMS
  • 38. PHPと国際化:機能 課題 変換 engine • ブラウザにより複数の漢字コード (SJIS、EUC等)が入出力される 1.PHP3用 → 文字化け発生 2. iconv(glibc 2.x) • 関数がマルチバイト文字に未対応 • 内部コード・入出力コード自動変換 (SJIS,EUC,UTF-8,...) • マルチバイト対応文字列関数 mbstrlen($str),... • マルチバイト対応正規表現関数 mbregex(),... • 適切なメールMIMEヘッダ・ボディーのエンコード • 全文検索エンジン(Namazu )
  • 39. 国際化版PHPによるプログラミング  設定ファイル(php.ini/php3.ini)にて設定 i18n.http_output = SJIS ; 出力コード i18n.internal_encoding = EUC-JP ; 内部コード i18n.script_encoding = auto ; PHPスクリプトのコード i18n.http_input = auto ; 入力のコード i18n.http_input_default = SJIS ; 入力コードのデフォルト値(不明な場合)  Tips  画像出力時は自動変換を無効にする。 i18n_http_output("path");  GET変数で日本語を渡す際にはURLエンコードを行う。 <A href="foo.php?name=<? echo urlencode($name) ?>">リンク</A>  POSTの入力コード(shift_jis<->euc-jp)の自動認識がうまくいかない場合: hiddenパラメータでダミー文字列を指定。
  • 40. 国際化版PHP4の現状  PHP3は既に国際化を実施。ただし、本家へのマージは未了。  コード変換関数、マルチバイト関数を拡張モジュールとして提供 ftp://night.fminn.nagano.nagano.jp/php4/ から入手。  php-4.0XXX_jstring-1.0 : 日本語コード変換、マルチバイト対応関数、メール関数  php-4.0XXX_mbregex-1.0 : マルチバイト対応正規表現  php-4.0XXX_iconv-1.0 : iconvによるコード変換:glibc-2.x  php-4.0XXX_namazu-2.0 : 全文検索エンジンNamazu  入出力コードの自動変換は未サポート PHP4ではデフォルト文字コードを指定可能 (php.iniで指定) default_charset = "euc-jp"
  • 42. PHPの未来  国際化  どうやって本家にマージするか?  XML/XSLT  大規模プロジェクトへの対応  Webアプリケーションサーバー化:Midguardプロジェクト  テンプレートエンジン  標準クラスの整備:PEAR
  • 43. 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.zugeschaut-und-mitgebaut.de/php/  関連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
  • 44. まとめ  PHPの特徴  親しみやすいスクリプト言語  データベース(PostgreSQLとの)との高い親和性  Apacheモジュールによる高速実行  オープンソースによる開発  PHP4/Zendによるさらなる高機能化  PHP国際化作業は今後も課題