use в php выводит ошибку syntax error, unexpected '$class_path', expecting '('
Пытаюсь написать функцию автозагрузки на php.
spl_autoload_register( function ( $class ) {
$class_path = '\app\classes\\';
$path = str_replace('\\', '/', $class_path);
include $path . $class . '_class.php';
$class_path = $class_path . $class;
use $class_path;
} );
Мне надо подключить файл класса и использовать namespace класса, чтобы использовать статический класс.
use пишет ошибку
syntax error, unexpected '$class_path', expecting '('
Ответы (1 шт):
Автор решения: Евгений Тихии
→ Ссылка
Autoloader:
<?php
namespace app\core;
/**
* $rawClassPath = (example) app\src\controllers\PostController
* $filePath = (example) app/src/controllers/PostController.php
*/
spl_autoload_register (function (string $rawClassPath) {
$filePath = $rawClassPath.'.php';
if (file_exists ($filePath)) {
require_once str_replace ('\\', '/', $filePath);
} else
throw new \Exception (
'File ['.$filePath.'] not found.',
500
);
});
Usage:
namespace app;
use app\core\Router;
$exampleVar = Router::exampleStaticMethod ();