laravel11 如何设置Facade别名 aliases

前言

在 laravel 10 中我想声明别名,都是在config/app.php中:

    'aliases' => Facade::defaultAliases()->merge([
         'oss' => \App\Providers\OssServiceProvider::class,
    ])->toArray(),

但在 Laravel 11 中,这个别名不再存在于 app.php 上,相关的服务提供者provider 也放在了bootstrap\providers.php中,我该如何实现类似功能。

??解决方法

  1. 是继续在config\app.php 中添加aliases

     'aliases' => \Illuminate\Support\Facades\Facade::defaultAliases()->merge([
         'oss' => \App\Providers\OssServiceProvider::class,
     ])->toArray(),
  2. 还是在bootstrap\app.php 中设置withProviders

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 4

如果是Provider 我是直接在provides.php裡面加
如何是Facade別名 還是在config/app.php加 laravel11 只是沒有在config/app.php加上這個 但是源碼包裡面的config/app.php是有的 他是通過源碼包裡面的config配置文件合併 項目根目錄下config的 後面會覆蓋前面的

'aliases' => Facade::defaultAliases()->merge([
        // 'Example' => App\Facades\Example::class,
    ])->toArray(),
6个月前 评论

推荐别名可以写到 composer.json 文件中

扩展包开发《Laravel 11 中文文档》

原配置还是有兼容处理的,只是后期版本有废弃的可能。

// Illuminate\Foundation\Bootstrap\RegisterFacades;
AliasLoader::getInstance(array_merge(
  $app->make('config')->get('app.aliases', []),
  $app->make(PackageManifest::class)->aliases()
))->register();

// Illuminate\Foundation\PackageManifest
public function aliases()
{
  return $this->config('aliases');
}
6个月前 评论
cccdz 6个月前
kis龍 (作者) 6个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!