問題の説明。今日、composer のオートロードを調べました。autoload_real.php に次のようなコードがあります。
spl_autoload_register(array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader'), true, true) ;
PHP マニュアルに記載されている spl_autoload_register の最初のパラメータの説明は次のとおりです:
autoload_function
登録されるオートロード関数。パラメータを指定しない場合は、autoload のデフォルト実装関数 spl_autoload() が自動的に登録されます。
マニュアルには、最初のパラメータは関数であると記載されていますが、これが指定されていない場合は、関数 spl_autoload() がデフォルトで実装されます。
autoload_real.php のクラス名は次のとおりです: ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788,
クラスには静的メソッドloadClassLoader($class)があります。
よく考えてみると、array('ComposerAutoloaderInitc80c5962bd70112ae6c86782593af788', 'loadClassLoader') の最初のメンバーがクラス名で、2 番目のメンバーが静的メソッド名である場合、それは self と同等ですか? :loadClassLoader()。しかし、問題は、loadClassLoader のパラメータをどのように取得するかということです。本当にわかりません。
最後に、練習をして自分でクラスを作成し、静的メソッドを作成し、上記の配列メソッドを真似してみたところ、関数は実行されませんでしたが、素直に配列が作成されました。 ?それでは、composer のコード行は何を行うのでしょうか?詳しい先輩方に教えていただければと思います。