私はPHPには新しく、何百ものページですべての手続きを継承しています(ファイルのテキスト検索を行うとどこでも関数定義さえありません)。私はC#とJavaの世界から来ています。私は徐々にOOPを追加する方法を探しています。 (彼らは私にフロントエンドを更新したいと同時に、バックエンドの修正を彼らに説得しようとしており、フレームワーク(dammit)を使用したくない)。php - オートローダの実装では、すべてのクラスをプリロードします
オートローダを見ているうちに...まあ、ここに私の理解です。これは、クラスが格納されているフォルダを登録する方法です。クラス、特性などをインスタンス化すると、クラス/ファイル名/名前空間に基づいてフォルダが検索され、適切な定義がロードされます。
私はいくつかの質問があります:
オートローダは、フォルダを検索し、すべてのページのライフサイクル上の適切な定義をロード(またはそれはそれらをキャッシュしない)していましたか?
プリロード: はオートローダ、またはいくつかの代替を使用する方法がありますが、メモリにすべてのクラス定義をプリロードし、すべてのセッションにわたってそれらを利用できるようにするには?
もしそうなら、クラスファイルを更新するとき、私はクラスファイルを変更するときに、このメカニズムを使ってすべてをメモリにリロードする方法を教えてください。質問へ
UPDATE:
は、両方のあなたの答えをありがとう、それは少し役立ちますが、...私はStackOverflowの上で間違った質問(複数可)ポーズの悪い癖を持っています。
私が避けたいのは、クラスを追加することでページを遅くすることです。つまり、ライブラリを追加し、オートローダーでパスを登録するとしましょう。ページは、複数の依存関係を持つクラスをインスタンス化します。依存グラフに15ファイルが含まれているとします。要求ライフサイクルごとに、サーバーはそのページに15の他のファイルをロードします。
私はコンパイルされた言語から来ているので、私はこれらのクラスをメモリにロードしないで少し奇妙に感じます。すべてのクラスが一緒に5MBを超えてはいけません。
(または多分私はRAMディスクを作成し、起動時にそこにあるすべてのファイルをコピーし、ちょうどシンボリックリンクを持っている必要がありますか?)
[PHP-FIG:Autoloader](http://www.php-fig.org/psr/psr-4/)と[Composer](https://getcomposer.org)をご覧ください/doc/01-basic-usage.md)にアクセスしてください。 – ldg
私はこのルートに行く必要があると思います: https://en.wikipedia.org/wiki/List_of_PHP_accelerators –
@PaulPerrickリンクをありがとう。私自身の展開設定について考えさせてくれます。 – BeetleJuice