PhpStorm autoload live template
February 20, 2015
Yet another autoload live template for PHP 5.2 code.
The PhpStorm live template
Simply copy and paste the code below in PhpStorm live template editor:
/**
* Takes care of the attempted autoloading of a class.
*
* Presumes classes are under the `/src` dir relative to the dir this file lives
* in and that classes are properly named.
* Given `$prefix` as `some_plugin`:
*
* some_plugin_SomeClass
*
* will map to:
*
* /src/SomeClass.php
*
* Modify the `$sep` variable to map class names to sub-folders.
* Given `$sep` as `_`:
*
* some_Plugin_PseudoNamespace_SomeClass
*
* will map to
*
* /src/PseudoNamespace/SomeClass.php
*
* Class names will be long no matter what.
*
* @param string $class The class name
*/
function $prefix$_autoload($class)
{
$prefix = '$prefix$_';
$sep = '_';
if (!strpos($class, $prefix) === 0) {
return;
}
$class_name = str_replace($sep, DIRECTORY_SEPARATOR, str_replace($prefix, '', $class));
if (!(file_exists($class_file = dirname(__FILE__) . '/src/' . $class_name . '.php'))) {
return;
}
require $class_file;
}
spl_autoload_register('$prefix$_autoload');
and save under a meaningful abbreviation (like 'autoloadspl'). Stop manually requiring.