Upload
-
View
1.374
Download
2
Embed Size (px)
DESCRIPTION
PHPの基礎であるファイルのインクルードとオブジェクト志向についての説明です。
Citation preview
PHP講座(6)!再利用のためのインクルードとクラス
この授業では、プログラミングにとってもっとも重要な「再利用」について学びます。 同じことを繰り返す無駄をいかになくすか? 「面倒くさがり」であることは、上達への近道です。
再利用の方法
10.4.18 (C) 株式会社破滅派
2
index.php 【出力結果】 こんにちは<br /> お久しぶり!
読み込まれたファイルは呼び出し元のファイルの一部分であるかのように処理されます。
PHPは他のファイルを読み込むことができます。
greet.php
<?php echo “こんにちは”; include(“greet.php”);
?>
<?php echo “<br />”; echo “お久しぶり!”;
?>
【構文】 include(“/var/hogehoge/”);
“/var/hogehoge/”にあるパスを読み込む
ファイル読み込みのよくある例(1)
10.4.18 (C) 株式会社破滅派
3
header.php
category.phpを作ることになっても、ヘッダーやフッターは再利用できる!
Webサイト内で何度も表示するパーツを読み込む
footer.php sidebar.php
contents.php
ヘッダー
サイドバー
フッター
ファイル読み込みのよくある例(2)
10.4.18 (C) 株式会社破滅派
4
ログイン用の機能をlogin.phpに入れることで、コードを何度も書き直さずに済みます。
ログイン機能がある「会員専用サイト」で、認証機能を切り分けて使いまわす。
login.php
bbs.php member.php
index.php
cart.php
<?php $login = is_user_login(); if($login){ //ログイン済みの時 }else{ //ログインしていないときの処理 }
?>
読み込み方法の違い
10.4.18 (C) 株式会社破滅派
5
include($path) 通常の読み込み
require($path) 読み込みに失敗したらエラーが起きてPHP終了
include_once($path) 上記と同じだが、一度しか読み込まない。 require_once($path) (=すでに読み込まれている場合は読み込まない)
読み込み方法には四種類あります。
【includeとrequireの使い分け】 そのプログラムにとって不可欠なものはrequire。なくてもよかったら、include。
【*_onceのあるなし】 なんども呼び出す可能性のあるもの(HTMLタグのパーツ)は_onceなし。 一度しか呼び出せないもの(関数定義)は*_once。
もし関数が書かれたファイルを二回読み込んだら?
つまり…
もし同じ名前の関数を二回定義したら?
ファイルパスについて(おまけ)
10.4.18 (C) 株式会社破滅派
6
URL ex. http://google.co.jp
ファイアルシステム ex. (Windows) C:¥xampp¥htdocs (Linux) /var/www/html
PHPから扱う「パス」には二種類あります
相対パス ex. ../../image/a.jpg ./test.html
絶対パス ex. http://ja.wikipedia.org/広辞苑 C:¥xampp¥htdocs¥20100523¥index.html
パスの書き方には二種類あります
参考情報: 相対パスと絶対パスとは 絶対パスと相対パス
PDFを作ってみる
10.4.18 (C) 株式会社破滅派
7
PHPでPDFを生成することができます。
1. PDFはAdobe社の製品ですが、オープンソースとして、その仕様が公開されています。(参考:http://www.adobe.com/devnet/pdf/pdf_reference.html)
2. したがって誰でもPDFは作れますが、あまりに複雑な仕様なので、並の人間では太刀打ちできません。
3. あるとき、優れたプログラマーがPHPからPDFを作成できるプログラムを作成して、「クラス」という再利用しやすい形で配布してくれました。
その名も「FPDF」 他にもいろんなクラスがあるよ
PEARについて
10.4.18 (C) 株式会社破滅派
8
PEARとは、PHP Extension and Application Repositoryの略で、要するにみんなが作ったクラスを置いておく場所です。
自分のホームページとかに置かれると探すのが大変なので、一箇所に集めています。
インストールがちょっとだけ面倒なので、余裕のある人はトライしてみてください。便利なものがいろいろあります。
ヒント:「PEAR インストール」でググる
クラスとは? オブジェクト指向とは?
10.4.18 (C) 株式会社破滅派
9
オブジェクト指向とは、再利用しやすいプログラムのためのルールです。
一つ一つのプログラムをオブジェクトのように見立てます。
その設計図が「クラス」です。
おそらく、まったく意味がわからないと思います。
クラスのたとえ(1)
10.4.18 (C) 株式会社破滅派
10
オブジェクト指向はそもそも機械工学の世界から誕生しました。 あらゆるものをオブジェクト(モノ)と考えます。
オブジェクト:タイヤ オブジェクト:ハンドル
オブジェクト:フレーム オブジェクト:アクセル
オブジェクト:車
クラスのたとえ(2)
10.4.18 (C) 株式会社破滅派
11
オブジェクト:MyCar
クラスはオブジェクトを作るための設計図。 設計図からオブジェクトを作ることを「インスタンス化」といいます。
クラス:Car
<?php $MyCar = new Car(); ?>
クラスのたとえ(3)
10.4.18 (C) 株式会社破滅派
12
クラスにはプロパティ(部品)とメソッド(機能)があります。
クラス:Car 部品:ブレーキ、ハンドル、
アクセル、エンジン 機能:進む、止まる、曲がる、
バックする、エンジンをかける
<?php class Car{
//プロパティ var $handle; var $break; var $accel; var $engine;
//メソッド function go(){} function stop(){} function turn($direction){} function engine_start(){}
} ?>
PHPerのキャリアパス
10.4.18 (C) 株式会社破滅派
13
上級PHPerになるために必要なこと
• オブジェクト指向プログラミングの理解 • 各種ライブラリ・ツール群の知識 • フレームワークの理解 • サーバ設定の理解
クラスを作って配布する側になるか? 配布されていたものを使う側になるか?