カテゴリー : インクルード

インクルード

まずは、ワードプレスに倣ってファイルを各パーツごとに分割していきましょう!

使用するPHPの関数は

include_onceです。→PHPマニュアル

include_once 命令は、スクリプトの実行時に指定 したファイルを読み込み評価します。

今回行うのは、header部分をheader.phpに、footer部分をfooter.phpに分けていきます。

samplephp

header.phpを作成します。

first.phpからヘッダー情報からheaderタグ~navタグに相当する部分をコピーして header.phpに貼り付けます。

↑header.php

footer.phpを作成します。

first.phpからヘッダー情報からfooterタグ~</html>までをコピーして footer.phpに貼り付けます。

↑ footer.php

index.phpを作成します。

first.phpをコピーして、先ほどheader.phpやfooter.phpに貼り付けた部分を削除してください。または、<section>領域をひとつだけにしてく index(目次)として使用できるようリンクを作ってください(現状はfirst.phpへのリンク)。

↑ index.php

作成したindex.phpの一番上の行に

一番下の行に

を追加してください。

first.phpを修正します。

index.phpと同じように、ヘッダーに関する部分、フッタに関する部分を削除して、それぞれinclude_once関数におき変えてください。

これで、コンテンツ部分を修正や作成する場合はそれぞれの該当するファイルを、ヘッダーやフッタを修正加筆する場合(リンクの追加など)はその該当ファイルだけに行えばよいことになり、保守性がかなりあがります!
ワードプレスも仕組み的にこのようなことを行っています(仕組みとしてはもっと複雑になっていますが・・・)

foreach練習問題2

foreach練習問題1で実行したままだとリンクリストを更新する時若干手間がかかってしまいます。

そこで、リンクナビ用の処理を別ファイルにしインクルードをおこなって一元管理ができるようにしましょう。

見本→

 

if練習問題 パンくずリストをつくろう!

見本→

パンくずリストを作りましょう!!

  • 以前制作したnuv_list.phpから配列部分を抜き出して、nuv_array.phpを作っておくと、URLのパスが複数箇所で使用できるので便利です。
  • breadcrumb.phpを作成してheader.phpに読み込ませておくとファイルの可読性や保守性に有利です。
  • インクルードさせるには、複数回使用しますし、インクルード元で処理がエラー起きたときに処理をとめてほしいので、requireを使うとよいでしょう。
  • 現在アクセスしているURLを取得するには$_SERVER["REQUEST_URI"]を使うと取得できます。

 

要件

  • 現在閲覧しているページに対してはパンくずのリンクを生成しない。
  • TOPページからスタートする階層表現とする。(フォルダ内の階層はindedxもfirstもsecondも並列でかまいません)

継承

継承とは簡単にいうと継承とは、既に存在するあるクラスを元に、それを更に拡張したクラスを作る仕組みです。
継承元となるクラスはスーパークラス。継承の結果できたクラスをサブクラスと言います。

具体例として先ほど作成したPersonクラスと似たようなクラスBusinessPersonを作ってみます。

*require_once dirname(__FILE__).’/Person.php’のdirname(__FILE__)でファイルの絶対パスを通して、インクルードの動作を確実にしています。

実行コードで

このようにして見ましょう。
インスタンスを行っているのは、BusinessPersonクラスのみです。しかし、Pesonクラスのメソッドshow()にもアクセスが可能ですね。サブクラスからはスーパークラスのあれやこれやが参照できるのです。
順番としては、インスタンス化されたクラスの参照先を探し、なければ継承元(スーパークラス)に参照を求めるという動きです。

ちなみに、PHPでは多重継承はみとめていません。