• ベストアンサー

phpで複数のファイルのインクルード方法

phpの勉強の為に、他人が作ったプログラムを見ました。 すると、クラスごとにファイルを分けていました。 そのファイルの数は、かなりの数があります。 普通に考えると、必要のたびにインクルードする方法が考えられます。 しかし、それだとかなり面倒だと思います。 そのプログラムを解析すればいいのですが、今の実力では出来ません。 何か、複数のファイルを一気にインクルードする定石などがあるのでしょうか? たとえば、フォルダに入っているファイル名を配列に入れ、forなどでincludeする方法でもしているのでは?と予想しています。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • SHlVA
  • ベストアンサー率48% (20/41)
回答No.2

私もクラスごとにわけてたりしますよ。autoloadが楽なもので・・・ 基本的に必要なものだけをロードする、というのは定石ですが、すべてのページでロードするものもあるでしょう。 そういう時は、1つファイルに、必須include() を書いて、それ1つをincludeし、あとは、各必要な時にincludeする、って感じでいいんじゃないでしょうか。 autoload使えば、手動でincludeしなくてもいいですし便利ですよ。

参考URL:
http://php.benscom.com/manual/ja/language.oop5.autoload.php

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>何か、複数のファイルを一気にインクルードする定石などがあるのでしょうか? include_once(もしくはrequire_once) で列記すればよいのでは? >たとえば、フォルダに入っているファイル名を配列に入れ、forなどでincludeする方法でもしているのでは?と予想しています。 そういうのは無謀なのでやめた方がいいでしょう。 初心者ならなおさら。 必要に応じてインクルードするのはどのプログラムも一緒でしょ?

a-z_A-Z
質問者

お礼

コメントありがとうございます。 >include_once(もしくはrequire_once) で列記すればよいのでは? もし、classが30個ぐらいあれば、30個列記するって事でしょうか? 私の場合は、1つのファイルに30個のclass を書いて、そのファイルをrequire_oneceしています。 ところが、最近他人のプログロムを見ると、phpの場合、やたらファイルを分割しているように見えます。 そこで、最近のプログラミングのやり方はどうなってんだ?ってことで質問しました。 近頃は、自分でプログラムを組む事もなくなり、他人の作ったのをちょこっと、改造することぐらいです。 もっとスムーズに、目的の関数を見つけることは出来ないかと思い、ふと疑問に思いました。

関連するQ&A

  • include_onceで呼び出したPHPファイル

    PHPでサイトを組んでいるのですが、include_onceで以下のようにPHPの各ファイルを呼び出して実行しているのですがうまくいきません。 <?php //レンタルサーバーのcronを利用して、定期的に走らせるコードです。 include_once "example_a.php"; include_once "example_b.php"; include_once "example_c.php"; ?> 各ファイルは、RSSで読み込んだデータをMySQLに格納するプログラムです。 個別で各ファイルを実行すると正しい結果となりますが上記のようなプログラムでまとめて実行するとexample_a.phpは正しい結果となりますが、example_b.php、example_c.phpは正しく処理されません。 原因として考えられるものがあれば、教えていただきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • [PHP]負荷の少ない方法は?

    PHPでテキスト広告をランダム表示するプログラムを作ろうと思います。 方法が幾つかあるとは思うのですができるだけ負荷を少ないしたいです。 以下の様な方法を思いついたのですが どれが処理が早いでしょうか? ■配列に広告を入れてシャッフル表示 $ad[] = ("広告名","URL"); といった感じで広告の数の文だけ作る。 ■広告の数の文だけファイルをつくりinclude $n;<ランダムな数字 include ("ad".$n.".html"); 広告ファイルの管理が面倒ですが・・ ■MYSQL+PHPでランダム表示 広告データの数はせいぜい50~100件程度かとは思いますが 1000件、1万件クラスになった場合のパターンも合わせて 教えてほしいです。

    • ベストアンサー
    • PHP
  • phpの(例えば)include

    phpでwebアプリを作成しています。 例えば、windowsでいうiniファイルに似たようなファイルを作成し、 そのファイルにdbopen情報を持たせてopenしたいのです。 global変数を使うということで、試しているのですが、うまくいきません。  ※postgresqlを使っています。 ・sysparm.inc <?php $inf1="1111"; $inf2="user"; $inf3="pass"; $inf4="name"; ?> ・dbaccess.php <?php include ("./include/sysparm.inc"); $dbinfo = "port=".$inf1 . " user=".$inf2." password=".$inf3." dbname=".$inf4;   ・   ・   ・ この$dbinfo 情報でopenしたいのですが、$inf1~$inf4まで何もはいってきません。 こういう場合、dbaccess.phpの $inf1~$inf4 まで”global" をつけるんでしょうか? つけて試したのですが、入ってきませんでした。 この方法は、windows版で言う GetPrivateProfileString・・・の用なことをしたくてたどり着きました。 最初はファイルを読んで、dbアクセス情報を取得していたのですが。。。 結局includeされていないのでしょうか? includeのパスの指定も dirname(__FILE__)."/include/sysparm.inc" のようにしてみてもだめでした。 どんな書き方、使い方が正解なのか、教えていただけないでしょうか? すみません、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPの includeについて?

    現在、レッツPHPさんの新着ブロガーを設置しようと試みています。 -------------------- rss/new/index.html /PEAR.php /rssup.php /XML/Parser.php /XML/RSS.php ------------------------ 上記のようなファイル構造で、index.html内に<?php include("rssup.php"); ?>を記述しているのですが、何も起きません。 ※rssup.phpは、正常に動いていてRSS情報の取得は出来ています。 設置方法通りに<?php include("rssup.php"); ?>を記述するだけでは、駄目なのですか? どなたかご教授いただけないでしょうか?

    • ベストアンサー
    • PHP
  • <?php include("xxxxx"); ?>について

    宜しくお願いします。 現在、PHPにて逆アクセスランキングの結果を サイトのTOPページ(index.php)に結果部分のみを表示したいと おもっております。 あるプログラムを使用しているのですが 仕様としてhttp://hogehogehogera.hoge/rank.php が新着となっています。 in数順に表示したいのですが、上記PHPの新着順は http://hogehogehogera.hoge/rank.php?form=new となっております。 index.phpに <?php include("rank.php?form=new"); ?> と書いても動かなかったのですが、上記のように結果を新着順に 表示する為に<?php includeを別の指定方法ですれば動くのでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • PHP includeについて

    今、下記のようなサーバサイドのプログラムを作成しており、 解決できずに困っております。 【環境】 CentOS5 [PHP5] sakuraインターネット レンタルサーバ スタンダートプランです。 参考:http://www.sakura.ne.jp/rentalserver/matrix.html 【概要】 cronよりinclude関数を含むPHPファイルを実行、 そのPHPファイル内から他dirに保管されているテキストを参照し、 外部ASPへ文字列を送信する、という内容です。 理想としては、 cron1よりphp1を実行し、 php1に記載されている下記、 include 'phpA'; include 'phpB'; これら2行を完結させる事です。 しかしphpAは正常動作するのですが、 phpBは正常に動作せず、理想と異なる結果になります。 テストとして、下記を実行しました。 ★test1 php1のinclude関数を入れ替える。 include 'phpB'; include 'phpA'; 結果:phpBは正常動作、phpAにエラー。 ★test2 cron1よりphpAのみを実行 cron2を追加しphpBを実行 結果:phpA&B共に正常動作。 ★test3 test1と同じ構造でphp1を次のように変更。 include 'phpA'; sleep(30); session_unset(); $_SESSION = array(); session_destroy(); session_start(); include 'phpB'; 結果:phpAのみ正常動作。 上記の通り、cronを2種作成すれば理想の結果が返るのですが、 仕様上それは採用できず、あくまでphp1のみをcronより実行する 必要があります。 セッション・変数をリセットする必要があるのかと test3を試しましたが結果は同じでした。 尚、私はPGを専業としておらず質問に不適切な記載があるかと存じます。 お知恵をお借りできますと幸いです。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • ドキュメントルートより上のディレクトリにあるPHPファイルをインクルードするには?

    外部に公開する必要がないディレクトリをドキュメントルートの外に置く構成のPHPプログラムを使用したいのですが、ドキュメントルートより上のディレクトリのPHPファイルをインクルードするにはどうすればよいのでしょうか? 例えば、DocumentoRootが/var/www/htmlで、 /var/www/html/test.phpから/var/www/data/include.phpをインクルードするようなケースです。 include.phpをtest.phpと同じディレクトリ(/var/www/html/)に置いた場合はインクルードできることを確認しています。 パーミッションは設定してあります。 phpinfo()でinclude_pathは「.:」となっています。 http.conf、php.ini等も編集することができる環境です。 ご存知の方がいらっしゃいましたら、アドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • includeファイルの文字コードについて

    お世話になります。 PHPでのincludeファイルのことで考えています。 SJISコードで保存されたファイルを、EUCで書かれ ましたPHPプログラムで、文字化けをせずに読み込む 事は可能なのでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPでincludeから取り込んだphpファイル内の相対パスの記述方法について

    階層の異なる場所にあるphpスクリプトファイル内に記述してあるticker.phpを参照するとします。 --"sample.php" <?php include_once(dirname(__FILE__) . "/../ticker.php"); ?> ------------ --"../ticker.php" // ※一部割愛 <embed src="ticker.swf"> ------------ と、このように何の変更も加えない状態だと、ticker.php内に記述しているembedファイルがsample.phpフォルダにあると見なされ、swfファイルの読み込みに失敗します。この「ticker.swf」をきちんと参照できるようにしたいのですが、最適な方法はございますでしょうか。

    • ベストアンサー
    • PHP
  • includeファイルのアクセス権について

    お世話になります。 ApacheでWeb上に公開をしているプログラムで、 そのプログラムにWeb上に公開をしていない所に あるファイルをincludeいたしました。 このincludeファイルのアクセス権のことなのですが、 基本的に、このファイルをincludeしましたWeb上の プログラムには、誰でもアクセスが出来るように 行いたいと思っております。 でも、Web上に公開をしていない所においています includeファイルには、直接、他のユーザーからは、 読み込みなどで、ファイルの中身が見られないよう に、しておきたいと思っています。 出来れば、.htaccessなどを使いまして、フォルダに 個別に設定を行えるようにしたいと思っているのですが、 よく分からずに困っています。 どのような方法で行えば、よろしいのでしょうか。 また、.htaccessを使うとしましたら、どのように、 使用をしまして設定を行えばよいのでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP

専門家に質問してみよう