2016-09-04 9 views
1

をindex.phpにない来る:index.phpをregistration.phporder.php製品ページ.phpなどです。だから、私はおそらく、logging_class.phpです。私はこのようにindex.phpでクラスのautoload関数を書いた:クラス、サイト内のautoloadユーザーが、私はいくつかのページでサイトを持っている単純なケースで

spl_autoload_register(function ($className) { 
    return require_once $className . ".php"; 
}); 

そして私はindex.phpの後のすべてのスクリプトが自動的にクラスを(その場合には、それはlogging_class.phpです)が含まれますだと思う理由です。しかし、ユーザーがメインページをバイパスして製品ページにgoogleから私のサイトに来る場合index.phpは実行されません。したがって、のproduct-page.phpは、クラスの自動ロードについては何も知りません。

すべてのスクリプトで同じ関数を書くのは正しい方法ではありません。おそらく、autoload.phpと書いて、クラスを使用する必要のあるスクリプトに含めることは正しいでしょう。しかし、私はプロジェクトのさまざまな部分にたくさんのインクルード文字列を持っています。

ので、すべてのスクリプトでautoload.phpを含まないサーバースクリプトでindex.phpをの実行を自動的に作成する方法はありますか?

+0

もちろん、すべてのトラフィックをindex.phpにルーティングできますが、PHPルーターを作成する必要があります。したがって、次の選択肢があります:a)すべてのスクリプトにautoload.phpを含めるか、またはb)PHPルーターを作成する –

答えて

1

ウェブサイト(index.php、registration.php、order.php、product-page.phpなど)に複数のエントリポイントがある場合、最適な解決策は "autoload.php"を作成してあなたが書いたように、どこにでもあります。

auto_prepend_fileのような他の解決策がありますが、あなたの解決策を「読みやすい」(個人的な意見)にしません。

また、 "autoload.php"という名前ではなく、 "common.php"や "bootstrap.php"のような名前を付けることをお勧めします。これは他の一般的なものも含む可能性が高いためですオートローダーだけでなく、

関連する問題