2009 PHP初心者

3,172 views

Published on

PHPカンファレンス2009の初心者セッション。有限会社アリウープ柏岡秀男

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,172
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
20
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

2009 PHP初心者

  1. 1. ~ PHP 初心者講座~   WEB 業界で生き抜くために 有限会社アリウープ 代表取締役 柏岡 秀男
  2. 2. アジェンダ <ul><li>PHP の仕組み </li></ul><ul><li>簡単なサンプル解説 </li></ul><ul><li>Smarty </li></ul>
  3. 3. PHP の基本
  4. 4. PHP とは? <ul><li>HTML 埋め込み型スクリプト言語 </li></ul><ul><li>サーバサードスクリプト </li></ul><ul><li><? PHP  ?>の開始、終了タグにより PHP モードに入る </li></ul>
  5. 5. 簡単なサンプル <ul><li><html>     <head>         <title> サンプル </title>     </head>     <body>         <?php         echo “PHP スクリプトです &quot;;         ?>      </body> </html> </li></ul>
  6. 6. PHP の動作 HTTP  リクエスト こんにちは サーバーレスポンス <HTML> <?php echo “ こんにちは” ; ?> </HTML> スクリプトのロード <HTML> こんにちは </HTML> スクリプトの解析
  7. 7. JavaScript の動作 HTTP  リクエスト Javascript がロードされる こんにちは サーバーレスポンス <HTML> <script type=&quot;text/javascript&quot;> こんにちは……
  8. 8. 何が得意で、何が苦手か <ul><li>得意その1 </li></ul><ul><li>HTMLとの親和性が高い。 </li></ul><html> <body> <?php echo “Hello World” ?> </body> </html>
  9. 9. 何が得意で、何が苦手か <ul><li>得意その2 </li></ul><ul><li>Webに関連ある関数が豊富。 </li></ul><ul><li>setcookie 関数 </li></ul><ul><li>header 関数 </li></ul><ul><li>mail 関数 </li></ul><ul><li>image 関数 </li></ul><ul><li>XML 関数 </li></ul><ul><li>ネットワーク関数 </li></ul>
  10. 10. 実際に出来ることは? <ul><li>クッキーを使って訪問回数をしらせたり、ユーザ独自のページ </li></ul><ul><li>mail 関数で問い合わせフォームから直接メール送信 </li></ul><ul><li>時間の比較とインクルードを使って、アクセス時間によって全体が変わるサイト </li></ul><ul><li>ショッピングカート…… </li></ul><ul><li>http:// alleyoop.jp </li></ul>
  11. 11. 何が得意で、何が苦手か <ul><li>サンプル(接続元表示) </li></ul><html> <body> <?php echo “ あなたは” . gethostbyaddr($_SERVER[‘REMOTE_ADDR’]) . “ からのアクセスですね。” ; ?> </body> </html>
  12. 12. 何が得意で、何が苦手か <ul><li>サンプル(ファイル読み込み) </li></ul><html> <body> <?php include(“test.html”); ?> メインコンテンツ </body> </html>
  13. 13. 何が得意で、何が苦手か <ul><li>苦手その1 </li></ul><ul><li>サーバに通信してもらわないと仕事が出来ない。 </li></ul><ul><ul><li>JavascriptやActionScriptとの併用 </li></ul></ul><ul><ul><li>Ajax も結局はサーバと通信している </li></ul></ul>
  14. 14. 何が苦手? <ul><li>苦手その1 </li></ul><ul><li>アクションがあるたび PHP ファイルを読み込んでもらわないと仕事が出来ない。 </li></ul><ul><ul><li>JavascriptやActionScriptとの併用 </li></ul></ul><ul><ul><li>ここらへん WEB2.0 とか言われてたり…… </li></ul></ul><ul><ul><li>Ajax 使うとちょっと違う </li></ul></ul>
  15. 15. 何が得意で、何が苦手か <ul><li>苦手その2 </li></ul><ul><li>PHPが使えるサーバが無いと動かない。 </li></ul><ul><ul><li>Javascript等はブラウザが処理を行う。 </li></ul></ul><ul><ul><li>PHP がサーバにインストールされている必要がある </li></ul></ul>
  16. 16. 実際使うには <ul><li>Linux、MacOS、Windows等多くのOSで動かすことが出来る。 </li></ul><ul><li>でも使えるサーバを借りてしまえばいい </li></ul><ul><li>サーバー管理の必要無し </li></ul><ul><li>場合によってはDBまで使える </li></ul><ul><li>探せば無料のスペースもある。 </li></ul>
  17. 17. インストール <ul><li>XAMPP ( Windows) </li></ul><ul><li>Apache HTTPD 2.0.52 MySQL 4.1.8 PHP 5.0.3 + 4.3.10 + PEAR + Switch MiniPerl 5.8.3 mod_ssl 2.0.51 Openssl 0.9.7e PHPMyAdmin 2.6.0 pl3, Webalizer 2.01-10 Mercury Mail Transport System fur Win32 und NetWare Systems v4.01a FileZilla FTP Server 0.9.4d SQLite 2.8.15 ADODB 4.52 Zend Optimizer 2.5.7 XAMPP Security </li></ul>
  18. 18. XAMPP の特徴 <ul><li>一括インストール </li></ul><ul><li>PHP4,5 の切り替え </li></ul><ul><li>各種管理ツールが付属 </li></ul><ul><li>http://www.apachefriends.org/en/index.html </li></ul>
  19. 19. インストール( Unix ) <ul><li>大抵のディストリビュータで初めから利用可能 </li></ul><ul><li>個別のオプション等を利用したい場合はソースよりインストール </li></ul><ul><li>http://www.php.net/manual/ja/install.unix.php </li></ul>
  20. 20. より便利に
  21. 21. ライブラリ <ul><li>PEAR ( PHP Extension and Application Repository ) PHP で書かれたライブラリ </li></ul><ul><li>Ajax,DB, キャッシュ等の機能を提供 </li></ul><ul><li>PHP のネイティブ関数でも可能であるが、簡略、使いやすくなるものが多い </li></ul>
  22. 22. 簡単なプログラムの例 <ul><li>http://a-shop.biz/phpcon/ </li></ul><ul><li>仕様 </li></ul><ul><li>ID,PASS の入力欄を持つ </li></ul><ul><li>ID は数字2文字 </li></ul><ul><li>PASS はアルファベット </li></ul><ul><li>上記が正しい場合、 ID とパスワードをメールする </li></ul>
  23. 23. テンプレートシステム
  24. 24. デザインとの連携 <ul><li>PHP のみでも元々 HTML との親和性は高い </li></ul><ul><li>テンプレートシステムを利用することでデザインとプログラムの分離が出来る </li></ul>
  25. 25. Smarty <ul><li>Smarty について </li></ul><ul><ul><li>デザインテンプレートシステム </li></ul></ul><ul><ul><li>{}でHTMLに埋め込む </li></ul></ul><ul><li>別のテンプレートシステムでも同様のこと </li></ul>
  26. 26. どのように動作するのか? index.php index.tpl PHP の Web 製作では結構メジャー ブラウザからのアクセスは php ファイル
  27. 27. 実際のテンプレートファイル <HTML> <BODY> {* 当日表示 *} {$smarty.now|date_format} {* 前日表示 *} {$yesterday|date_format} </BODY> </HTML> Index.tpl php で設定された変数 smarty に準備された変数
  28. 28. 呼び出す側のphpファイル index.php <?php      $smarty = new Smarty; $smarty->assign('yesterday', strtotime('-1 day')); $smarty->display('index.tpl');      ?>
  29. 29. 呼び出される側 <ul><li>Index.tpl </li></ul>本日の日付は、 {$date} です。
  30. 30. Smarty の便利なところ <ul><li>デザインとプログラムを分離できる </li></ul><ul><li>できると何がいいか? </li></ul>
  31. 31. UI 設計 (デザイン決定) テンプレートを利用しないひとつのファイルに両方の要素がある場合 システム設計 (内部使用決定) デザイン作成 HTML 作成 出来上がった HTML を もとにプログラムと組み合わせる この後手戻りや修正が入るとデザインとシステムでソースが行ったり来たりすることになる テンプレートを利用した場合 UI 設計 (デザイン決定) システム設計 (内部使用決定) デザイン作成 プログラム作成 完成 完成 デザインや修正が入っても それぞれが独立して作業 出来る。 ※ 項目の増減等は両方で作業は必要。
  32. 32. Smarty やテンプレートを 利用すると?
  33. 33. Smarty やテンプレートを 利用すると <ul><li>Web 開発特有の作業待ち状態に悩まされなくなる </li></ul><ul><li>全体として作業効率 UP </li></ul><ul><li>ひいては開発や運用にかかるコスト削減 </li></ul>
  34. 34. フレームワーク <ul><li>比較的メジャーなフレームワーク </li></ul><ul><ul><li>Ethna </li></ul></ul><ul><ul><li>Maple </li></ul></ul><ul><ul><li>CakePHP </li></ul></ul><ul><ul><li>Symfony </li></ul></ul><ul><ul><li>Zend Framework </li></ul></ul><ul><ul><li>Phrame </li></ul></ul><ul><li>一人勝ちなフレームワークは無い? </li></ul><ul><li>使いやすいものを使う </li></ul>
  35. 35. フレームワークの利点 <ul><li>毎回、同じようなコードを書かなくてすむ </li></ul><ul><li>提供されている機能によって一定のクオリティが保てる </li></ul><ul><li>XSS,CSRF,SQL インジェクション等の対策 </li></ul><ul><li>MVC なフレームワークの場合、デザインと機能の分離が出来る </li></ul><ul><li>開発スピードが上がる </li></ul>
  36. 36. MVC <ul><li>Model </li></ul><ul><li>View </li></ul><ul><li>Contloler </li></ul><ul><li>http://ethna.jp/image/ethna-fig1.png </li></ul>
  37. 37. PHP の勉強方法 <ul><li>マニュアルの読み方 http://www.php.net/manual/ja/ </li></ul><ul><li>Ml からの情報 </li></ul><ul><li>SNS のコミュニティ </li></ul><ul><li>空前の勉強会ブーム </li></ul>
  38. 38. 必要なスキル <ul><li>プログラマとして </li></ul><ul><ul><li>サーバの知識 </li></ul></ul><ul><ul><li>アプリケーションの知識 </li></ul></ul><ul><ul><li>Web サーバ、 DB </li></ul></ul><ul><ul><li>JavaScript </li></ul></ul><ul><ul><li>フレームワーク </li></ul></ul><ul><li>NEXT ステップ </li></ul>
  39. 39. プラス1 デザイン flash XML WordPress PHP W3C Ajax クラウド CSS
  40. 40. ~ PHP 初心者講座~  WEB 業界で生き抜くために 有限会社アリウープ 代表取締役 柏岡 秀男 [email_address]

×