Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>F**k yes. Yes, I can take the liberty to swear on a public forum this one time. </p> <p>A huge shout out to @Shivan Raptor for helping me along the way and not giving up. </p> <p>There were numerous minor issues in the auto-loader function. But the debugging took me so long for just a simple reason that I couldn't see any echo messages. Only lord and XAMPP knows why. Seemed like XAMPP had somehow cached the class on first run or something and no changes later showed any effect. But creating a new class and class file all of a sudden started showing all my echo including the ones inside autoload. Anyone who has picked up the auto-loader code from the link below, please ensure you look at all the variables' values. It doesn't work "out of the box", if you don't keep everything in the document root. And if you are new to both PSR-0 and concept of auto loading, this can kill at least a sizable portion of your perfectly capable brain cells. </p> <pre><code>https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md </code></pre> <p>Here's the final index.php that worked for me. </p> <pre><code>&lt;?php define('CLASSDIR', 'mylib'); define('BASEPATH', @realpath( dirname (__FILE__).'/../').'/'.CLASSDIR); spl_autoload_register(null, false); spl_autoload_extensions('.php'); function autoLoader($className){ $className = ltrim($className, '\\'); $classPath = ''; $namespace = ''; if ($lastNsPos = strrpos($className, '\\')) { $namespace = substr($className, 0, $lastNsPos); $className = substr($className, $lastNsPos + 1); $classPath = str_replace('\\', DIRECTORY_SEPARATOR, $namespace).DIRECTORY_SEPARATOR; } $fileName = BASEPATH.'/'.$classPath.str_replace('_', DIRECTORY_SEPARATOR, $className).'.php'; require $fileName; } spl_autoload_register('autoLoader'); $obj = new \Vendor\Module\MyClass(); $obj::test(); ?&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload