php - Laravel 中的命名空间别名

标签 php laravel namespaces

如果这是重复的,我深表歉意;请指导我正确的方向。

我知道我们可以从 /config/app.php 在 Laravel 中创建类别名.但是,尝试使用相同的方法创建命名空间别名失败。

    /*
    |--------------------------------------------------------------------------
    | 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',

    ],



在 thinker 中对此进行测试会返回以下结果:
>> new \MyNamespace\MyClass();

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

你知道在 Laravel 中创建命名空间别名的方法吗?

最佳答案

使您的代码 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 .

关于php - Laravel 中的命名空间别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58731031/

相关文章:

php - Laravel:如何用一个响应设置多个 cookie?

templates - MarkLogic 中的 XQuery 模板不显示任何值,只显示属性 (TDE)

haskell - 避免 Haskell 中的 namespace 污染

php - 如何将 PHP 闭包(lambda 函数)保存到 $this->var 中并稍后从同一类的另一个方法调用它?

java - 如何解决无法连接到/192.168.15.186(端口80): connect failed: ETIMEDOUT (Connection timed out) in Windows Firewall

javascript - 返回未定义的 jQuery JSON

php - 在 laravel 5 中使用参数进行路由

php - 用户 'homestead' @'localhost' 的访问被拒绝(使用密码 : YES)

c# - System.IO.File 是一种类型而不是命名空间

php - 从 php 数组元素创建超链接