投稿数 585
公開から 2940

spl_autoload_register試してみた。


Categories: basic-php php

経緯

いままでよくわからんまま使ってたので自分で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