Как укоротить namespace и use?

Добрый вечер, как можно укоротить namespace и use?

В данный момент имеется: namespace folder\folder\folder\Components\Class, а хотелось бы namespace Components\Class и в дальнейшем использовать: use Component\Class. Возможно ли это реализовать?
  • Вопрос задан
  • 205 просмотров
Решения вопроса 2
myks92
@myks92 Куратор тега PHP
Нашёл решение — пометь вопрос ответом!
Так? composer.json
"autoload": {
    "psr-4": {
      "Myks92\\User\\": "src/"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "Myks92\\User\\Tests\\": "tests/"
    }
  },
Ответ написан
@rafxxxa Автор вопроса
<?php

namespace platform\core\Autoload;

class Autoload
{
    private array $customs = [
        'Plugin' => 'resources/plugins'
    ];

    public function __construct()
    {
        spl_autoload_register(function ($class){
            $path = str_replace('\\', '/', $class . '.php');
            if (!$this->load($path)){
                $this->custom($path);
            }
        });
    }

    private function custom(string $path)
    {
        $part = explode('/', $path);
        if (isset($this->customs[$part[0]])){
            $path = str_replace($part[0], $this->customs[$part[0]], $path);
            $this->load($path);
        }
    }

    private function load(string $path)
    {
        if (file_exists($path)){
            require_once $path;
            return true;
        }
        return false;
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SerafimArts
@SerafimArts
Senior Notepad Reader
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы