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

2009 PHP初心者