PHPでクラス発見が必要なシステムがあるとします。 クラス検出の結果は、パフォーマンスのためにキャッシュされます。PHPのクラスハッシュ、コードの変更を検出するには?
コードが変更された場合、キャッシュをクリアまたは無効にしようとしました。開発者が何かをしたか、サードパーティのライブラリの新しいバージョンがダウンロードされたからです。
考えられるのは、クラスファイルのファイルハッシュを比較することです。しかし、これを例えばmd5(file_get_contents($file))
はかなり費用がかかりますが、すべてのリクエスト/プロセスで実行したいことはありません。
コードが変更された場合に別の結果が得られる、PHPクラスのハッシュを取得する別の方法がありますか?
私は答えはノーだと思いますが、誰かがいつでも尋ねることができます。
異なるハッシュの速度をチェックし、['hash_file'](http://php.net/manual/en/function.hash-file.php)を使うことができます。おそらく、変更の日付とサイズを比較することもできます。それはほとんどのFTPプログラムがそれをする方法です。 – h2ooooooo
私はあなたの質問の文脈を見ていませんが、ReflectionClassを使って方法を見つけられないのではないかと思います。http://php.net/manual/en/class.reflectionclass.php PHPクラスの情報を取得するためのもの – kjones
デプロイ時にキャッシュを無効にするのはどうですか? – localheinz