spl_autoload_register試してみた。
経緯
いままでよくわからんまま使ってたので自分でauto_loadやってみたくなった。 spl_autoload_register()を使ってみよー!
ハマったところ
namespaceの扱いにはまりました。
[code lang=text] Warning: include(classes/classes/Greeting.php): failed to open stream: No such file or directory in /Users/Kiyohara/test/test_php_auto_autoload/Autoloader.php on line 5
Warning: include(): Failed opening ‘classes/classes/Greeting.php’ for inclusion (include_path=’.:’) in /Users/Kiyohara/test/test_php_auto_autoload/Autoloader.php on line 5
Fatal error: Uncaught Error: Class ‘classes\Greeting’ not found in /Users/Kiyohara/test/test_php_auto_autoload/index.php:7 Stack trace:
[/code]
classes\Greeting ’\‘(バックスラッシュ)として読んでしまう。。 本当は/(スラッシュ)として読んでほしいのだが、、
こんなふうにしたらいいみたい。
たしかにcomposerのソースとかみてたらこんなことしている。。。
なるほどね〜・。
参考
https://stackoverflow.com/questions/22494980/php-namespacing-and-spl-autoload-register