2009 php初心者

40
PHP 初初初初初WEB 初初初初初初初初初初 初初初初初初初初初 初初初初初 初初 初初

Upload: hideo-kashioka

Post on 25-Jan-2015

2.662 views

Category:

Technology


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 2009 PHP初心者

~ PHP初心者講座~  WEB業界で生き抜くため

 に

有限会社アリウープ   代表取締役 柏岡 秀男

Page 2: 2009 PHP初心者

アジェンダ

• PHPの仕組み• 簡単なサンプル解説• Smarty

Page 3: 2009 PHP初心者

PHPの基本

Page 4: 2009 PHP初心者

PHPとは?

• HTML埋め込み型スクリプト言語• サーバサードスクリプト• <? PHP   ?>の開始、終了タグにより

PHPモードに入る

Page 5: 2009 PHP初心者

簡単なサンプル<html>

    <head>        <title>サンプル </title>    </head>    <body>

        <?php        echo “PHPスクリプトです ";        ?>

     </body></html>

Page 6: 2009 PHP初心者

PHPの動作

  

HTTP   リクエスト

こんにちは

サーバーレスポンス

<HTML>

<?php

echo “ ”こんにちは ;

?>

</HTML>

スクリプトのロード

<HTML>

こんにちは

</HTML>

スクリプトの解析

Page 7: 2009 PHP初心者

JavaScriptの動作

  

HTTP   リクエスト

こんにちは

サーバーレスポンス

<HTML>

<script type="text/javascript">

こんにち……は

Javascriptがロードされる

Page 8: 2009 PHP初心者

何が得意で、何が苦手か

得意その1HTMLとの親和性が高い。

<html>

<body>

<?php echo “Hello World” ?>

</body>

</html>

Page 9: 2009 PHP初心者

何が得意で、何が苦手か

得意その2Webに関連ある関数が豊富。

setcookie関数header関数mail関数image関数XML関数ネットワーク関数

 

Page 10: 2009 PHP初心者

実際に出来ることは?

• クッキーを使って訪問回数をしらせたり、ユーザ独自のページ

• mail関数で問い合わせフォームから直接メール送信

• 時間の比較とインクルードを使って、アクセス時間によって全体が変わるサイト

• ……ショッピングカート• http://alleyoop.jp

Page 11: 2009 PHP初心者

何が得意で、何が苦手か

• サンプル(接続元表示)

<html>

<body>

<?php

echo “ ” あなたは .  gethostbyaddr($_SERVER[‘REMOTE_ADDR’]) . “からのアクセスで

”すね。 ;

?>

</body>

</html>

Page 12: 2009 PHP初心者

何が得意で、何が苦手か

• サンプル(ファイル読み込み)

<html>

<body>

<?php

include(“test.html”);

?>

メインコンテンツ

</body>

</html>

Page 13: 2009 PHP初心者

何が得意で、何が苦手か

苦手その1• サーバに通信してもらわないと仕事が出来ない。–JavascriptやActionScriptとの併用

– Ajaxも結局はサーバと通信している

Page 14: 2009 PHP初心者

何が苦手?

苦手その1• アクションがあるたび PHPファイルを読み込んでもらわないと仕事が出来ない。–JavascriptやActionScriptとの併用

–ここらへんWEB2.0 ……とか言われてたり– Ajax使うとちょっと違う

Page 15: 2009 PHP初心者

何が得意で、何が苦手か

• 苦手その2• PHPが使えるサーバが無いと動かない。–Javascript等はブラウザが処理を行う。

– PHPがサーバにインストールされている必要がある

Page 16: 2009 PHP初心者

実際使うには

• Linux、MacOS、Windows等多くのOSで動かすことが出来る。

• でも使えるサーバを借りてしまえばいい• サーバー管理の必要無し• 場合によってはDBまで使える• 探せば無料のスペースもある。

Page 17: 2009 PHP初心者

インストール

• XAMPP(Windows)• Apache HTTPD 2.0.52

MySQL 4.1.8PHP 5.0.3 + 4.3.10 + PEAR + SwitchMiniPerl 5.8.3mod_ssl 2.0.51Openssl 0.9.7ePHPMyAdmin 2.6.0 pl3,Webalizer 2.01-10Mercury Mail Transport System fur Win32 und NetWare Systems v4.01aFileZilla FTP Server 0.9.4dSQLite 2.8.15ADODB 4.52Zend Optimizer 2.5.7XAMPP Security

Page 18: 2009 PHP初心者

XAMPPの特徴

• 一括インストール• PHP4,5の切り替え• 各種管理ツールが付属• http://www.apachefriends.org/en/

index.html

Page 19: 2009 PHP初心者

インストール( Unix)

• 大抵のディストリビュータで初めから利用可能

• 個別のオプション等を利用したい場合はソースよりインストール

• http://www.php.net/manual/ja/install.unix.php

Page 20: 2009 PHP初心者

より便利に

Page 21: 2009 PHP初心者

ライブラリ

• PEAR( PHP Extension and Application Repository ) PHPで書かれたライブラリ

• Ajax,DB,キャッシュ等の機能を提供• PHPのネイティブ関数でも可能であるが、簡略、使いやすくなるものが多い

Page 22: 2009 PHP初心者

簡単なプログラムの例

• http://a-shop.biz/phpcon/

• 仕様• ID,PASSの入力欄を持つ• IDは数字2文字• PASSはアルファベット• 上記が正しい場合、 IDとパスワードをメールする

Page 23: 2009 PHP初心者

テンプレートシステム

Page 24: 2009 PHP初心者

デザインとの連携

• PHPのみでも元々 HTMLとの親和性は高い

• テンプレートシステムを利用することでデザインとプログラムの分離が出来る

Page 25: 2009 PHP初心者

Smarty

• Smartyについて–デザインテンプレートシステム–{}でHTMLに埋め込む

• 別のテンプレートシステムでも同様のこと

Page 26: 2009 PHP初心者

どのように動作するのか?index.phpindex.tpl PHPのWeb製作では

結構メジャー

ブラウザからのアクセスは

phpファイル

Page 27: 2009 PHP初心者

実際のテンプレートファイル

<HTML>

<BODY>

{*   当日表示 *}

{$smarty.now|date_format}

{*   前日表示 *} 

{$yesterday|date_format}

</BODY>

</HTML>

Index.tpl

phpで設定された変数

smartyに準備された変数

Page 28: 2009 PHP初心者

呼び出す側のphpファイルindex.php

<?php    $smarty = new Smarty;$smarty->assign('yesterday', strtotime('-1 day'));$smarty->display('index.tpl');    ?> 

Page 29: 2009 PHP初心者

呼び出される側

• Index.tpl

本日の日付は、 {$date}  です。

Page 30: 2009 PHP初心者

Smartyの便利なところ

• デザインとプログラムを分離できる• できると何がいいか?

Page 31: 2009 PHP初心者

UI設計(デザイン決定)

テンプレートを利用しないひとつのファイルに両方の要素がある場合

システム設計(内部使用決定)

デザイン作成HTML作成

出来上がった HTMLをもとにプログラムと組み合わせる

この後手戻りや修正が入るとデザインとシステムでソースが行ったり来たりすることになる

テンプレートを利用した場合

UI設計(デザイン決定)

システム設計(内部使用決定)

デザイン作成

プログラム作成

完成

完成

デザインや修正が入ってもそれぞれが独立して作業出来る。※項目の増減等は両方で作業は必要。

Page 32: 2009 PHP初心者

Smartyやテンプレートを利用すると?

Page 33: 2009 PHP初心者

Smartyやテンプレートを利用すると

• Web開発特有の作業待ち状態に悩まされなくなる

• 全体として作業効率 UP

• ひいては開発や運用にかかるコスト削減

Page 34: 2009 PHP初心者

フレームワーク

• 比較的メジャーなフレームワーク– Ethna – Maple – CakePHP – Symfony– Zend Framework– Phrame

• 一人勝ちなフレームワークは無い?• 使いやすいものを使う

Page 35: 2009 PHP初心者

フレームワークの利点

• 毎回、同じようなコードを書かなくてすむ• 提供されている機能によって一定のクオリティが保てる

• XSS,CSRF,SQLインジェクション等の対策• MVCなフレームワークの場合、デザインと機能の分離が出来る

• 開発スピードが上がる

Page 36: 2009 PHP初心者

MVC

• Model

• View

• Contloler

• http://ethna.jp/image/ethna-fig1.png

Page 37: 2009 PHP初心者

PHPの勉強方法

• マニュアルの読み方http://www.php.net/manual/ja/

• Mlからの情報• SNSのコミュニティ• 空前の勉強会ブーム

Page 38: 2009 PHP初心者

必要なスキル

• プログラマとして–サーバの知識–アプリケーションの知識– Webサーバ、 DB– JavaScript–フレームワーク

• NEXTステップ

Page 39: 2009 PHP初心者

プラス1デザイン

flash XML

WordPress

PHP W3C

Ajax クラウドCSS

Page 40: 2009 PHP初心者

~ PHP  初心者講座~WEB  業界で生き抜くために

有限会社アリウープ   代表取締役 柏岡 秀男

[email protected]