経緯
いままでよくわからんまま使ってたので自分でauto_loadやってみたくなった。
spl_autoload_register()を使ってみよー!
ハマったところ
namespaceの扱いにはまりました。
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:
classes\Greeting
‘\'(バックスラッシュ)として読んでしまう。。
本当は/
(スラッシュ)として読んでほしいのだが、、
こんなふうにしたらいいみたい。
たしかにcomposerのソースとかみてたらこんなことしている。。。
なるほどね〜・。
参考
https://stackoverflow.com/questions/22494980/php-namespacing-and-spl-autoload-register
最近のコメント