2005/08/15
iTMS RSS Feedを徹底利用するPHP4ライブラリ(導入編その3)
「導入編その2」の続きです。
このエントリーでは、ライブラリ「iTMSRSSFeed.php」と「RSS.php」(「導入編4」に持ち越し)をどこに置いたら良いか書きたいと思います。
さて、話は既にサーバにインストール済みの「sample.php」から始まります。
そのファイルの中身を覗いてみると、次のような行が見つかります。
require_once 'iTMSRSSFeed.php';
この1行は、「'iTMSRSSFeed.php'を読み込みなさい」という命令になります。なお、「iTMSRSSFeed.php」というのは、iTMS RSS Feedを利用するためのクラスライブラリである「iTMS_RSS」が収められたファイルです。クラスライブラリを読み込むことにより、その機能を利用できるようにするわけです。
この「require_once」命令でファイルを指定する方法には、2通りあります。一つは呼び出し側(この場合、sample.php)から見て、読み込むファイルの位置を相対的に指定する方法、もう一つは、サーバ上のファイルの位置を絶対的に指定する方法です。
さて、上の記述方法は一体どちらかというと、「相対的」な呼び出しで、呼び出し側のファイル「sample.php」と同一のディレクトリにある「iTMSRSSFeed.php」が読み込まれます。
相対的な呼び出し例を次に挙げてみましょう。
「sample.php」と同じ場所に「dir1」ディレクトリがあり、その中の「aaa.php」を読み込む。
require_once 'dir1/aaa.php';
「sample.php」の一つ上の階層に「dir2」ディレクトリがあり、その中にある「bbb.php」を読み込むなら、
require_once '../dir2/bbb.php';
それじゃあ、「絶対的」にファイルを指定するにはどうすればよいかというと、次のようになります。
require_once '/(ファイルへのパス)/iTMSRSSFeed.php';
サーバのルート「/」から「iTMSRSSFeed.php」までのパスを全部記述してファイルを指定するわけです。
相対的 vs 絶対的
「iTMSRSSFeed.php」はiTMS RSS Feedを使う上で便利なクラスライブラリが収められたファイルですから、サーバ上のどっか一カ所に置いといて、ライブラリを利用したいファイルから「require_once」命令で読み出して使うのが吉でしょう。
じゃあ、読み込み方は「絶対的」と「相対的」とでは、どっちが良いでしょうか?
どっちでも良いです。が、「相対的」の場合には、呼び出す側から見た「iTMSRSSFeed.php」のファイル位置を考慮しなければならず、ちょっと面倒かも知れないですね。その点、「絶対的」の方はいつも同じ文で呼び出せるので簡単でいいです。
そもそも「絶対的」ってどこ?
「絶対的」に「iTMSRSSFeed.php」を指定するとして、さて、「iTMSRSSFeed.php」はサーバのどこにあるのでしょう?
それを知らべてみましょう。
「iTMSRSSFeed.php」のサーバ上における位置を調べるために、次の内容のファイルを作成します。
なお、改行は「LF」にしてね。
<?php
echo getcwd();
?>
このファイルの名前を、例えば「cwd.php」とし、サーバ上の「iTMSRSSFeed.php」と同一ディレクトリにアップロードします。
次に、Webブラウザで、cwd.phpにアクセスします。
URLは次のような感じになるはずです。
http://(サーバのドメイン名)/(ファイルへのパス)/cwd.php
表示されたディレクトリが、「cwd.php」が存在する「絶対的」なディレクトリです。もちろん、「iTMSRSSFeed.php」も同一ディレクトリに置かれています。
さぁて、「iTMSRSSFeed.php」の「絶対的」なファイル位置が分かりました。
それでは、「require_once」命令で、「iTMSRSSFeed.php」を「絶対的」に読み込んでみましょう。
ファイルがあるディレクトリが「/Users/user1/Sites/dir1」だとすると、次のようになります。
require_once '/Users/user1/Sites/dir1/iTMSRSSFeed.php';
時間の都合で今日はここまで。
「RSS.php」をどこに置くかについても言及する予定でしたが、次回、「導入編4」を持ち越しです。
リンク
導入編その1
導入編その2
導入編その3
導入編その4

