wordpress - How do I autoload PHP classes? -


i using classes wordpress , trying autoload them in functions.php file:

spl_autoload_register(function($class) {     include('classes/'.$class.'.php'); }); 

this classes directory looks like:

  • classes/
    • project/
      • application.php
      • core.php
      • site.php
      • helpers.php
    • utils/
      • helpers.php
      • twig.php
    • views/
      • layout.php
      • modules.php
      • pages/
        • home.php

each class namespaced based on directory in. example:

$homeclass = new \views\pages\home();

when autoload classes, error:

php warning: include(classes/project\application.php): failed open stream: no such file or directory

obviously backslashes part of namespacing don't work in path. update function replace backslashes forward slashes this:

spl_autoload_register(function($class) {     include('classes/'.str_replace("\\", "/", $class).'.php'); }); 

but seems odd that required. missing something?

it's not odd @ all!

registering autoloaders using namespaces means denote directory structure common practice. recommend following psr-4 conventions, if you're far in refactor naming conventions, recommend using directory_separator constant php decide whether use '/' or '\', windows servers use latter, , linux servers use former.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -