3v4l.org

run code in 300+ PHP versions simultaneously
<?php function loadClass($name) { $className = ltrim($name, '\\'); if($lastNsPos = strrpos($className, '\\')) { /*имеется namespace, значит vendor*/ $namespace = substr($className, 0, $lastNsPos); $className = substr($className, $lastNsPos + 1); $fileName = __DIR__.'/../../vendor/'; $fileName .= str_replace('\\', '/', $namespace).'/'; } else { /*в modules */ $fileName = __DIR__.'/../'; $is_controller=false; if(strpos($className, 'c_') === 0) { $is_controller = true; $className = substr($className, strlen('c_')); } if(strpos($className, '_')!==false) { $className = str_replace('_', '/', $className); } else { if($is_controller) { $className = $className.'/'.'c_'.$className; } else { $className = $className.'/'.$className; } } } $fileName .= $className.'.class.php'; //Здесь именно include, т.к. require вывалит фатальную ошибку echo $fileName; echo "\n"; } loadClass('sdf_fdffd_ffff'); loadClass('sdf'); loadClass('c_sdf_fdffd_ffff'); loadClass('c_sdf'); loadClass('c\sdf\5tttt');

preferences:
47.02 ms | 402 KiB | 5 Q