Псевдоним пространства имен в Laravel - PullRequest
0 голосов
/ 06 ноября 2019

Прошу прощения, если это дубликат;пожалуйста, ведите меня в правильном направлении.

Я знаю, что мы можем создавать псевдонимы классов в Laravel из /config/app.php. Однако попытка создать псевдонимы пространства имен с использованием того же метода завершается неудачей.

    /*
    |--------------------------------------------------------------------------
    | Class Aliases
    |--------------------------------------------------------------------------
    |
    | This array of class aliases will be registered when this application
    | is started. However, feel free to register as many as you wish as
    | the aliases are "lazy" loaded so they don't hinder performance.
    |
    */

    'aliases' => [
    ...

    /*
    *    My custom namespace aliases
    */
    'MyNamespace' => 'App\Models\MyNamespace',

    ],


Проверка этого в мыслителе возвращает следующие результаты:

>> new \MyNamespace\MyClass();

PHP Fatal error:  Class 'MyNamespace/MyClass' not found in Psy Shell code on line 1

Знаете ли вы способ создания пространства именпсевдоним в Laravel?

1 Ответ

4 голосов
/ 06 ноября 2019

Сделайте ваш код PSR-4 совместимым и поместите его в composer.json

"autoload": {
    "psr-4": {
      "MyNamespace\\": "src/MyNameSpace",
    }
},

Затем запустите composer dumpautoload. Пока вы придерживаетесь соглашения о том, что подпапки являются пространствами имен, ваши классы будут автоматически загружаться.

src/MyNamespace/SomeClass.php будет иметь namespace MyNamespace;, а class SomeClass.

src/MyNamespace/Something/SomethingElse.php будет иметь namespace MyNamespace\Something; и class SomethingElse.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...