Lumen解决容器内部名重复问题

先晒版本

事情起因

系统要引进阿里云的日志系统,去github上淘了一些包,于是选择了这个。

composer require wppd/aliyun-log-php-sdk

于是报了这个错,显示Log的命名重复了。

解决思路

定位Log的命名与服务注册中的Log重名,想办法把服务注册的命名改名。先找到服务注册的地方。

发现在基础包Application.php中有这么一段代码。

/**
* Register the aliases for the application.
*
* @param  array  $userAliases
* @return void
*/
public function withAliases($userAliases = [])
{
    $defaults = [
        'Illuminate\Support\Facades\Auth' => 'Auth',
        'Illuminate\Support\Facades\Cache' => 'Cache',
        'Illuminate\Support\Facades\DB' => 'DB',
        'Illuminate\Support\Facades\Event' => 'Event',
        'Illuminate\Support\Facades\Gate' => 'Gate',
        'Illuminate\Support\Facades\Log' => 'Log',    //就是在这个地方注册的
        'Illuminate\Support\Facades\Queue' => 'Queue',
        'Illuminate\Support\Facades\Route' => 'Route',
        'Illuminate\Support\Facades\Schema' => 'Schema',
        'Illuminate\Support\Facades\Storage' => 'Storage',
        'Illuminate\Support\Facades\URL' => 'URL',
        'Illuminate\Support\Facades\Validator' => 'Validator',
    ];

    if (! static::$aliasesRegistered) {
        static::$aliasesRegistered = true;

        $merged = array_merge($defaults, $userAliases);    //这个地方进行合并

        foreach ($merged as $original => $alias) {
            class_alias($original, $alias);
        }
    }
}

于是就在bootstrap/app.php调用下这个方法,把原来的数组覆盖掉。
注意要在new app 之后就调用withAliases。

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    dirname(__DIR__)
);

$app->withAliases(['Illuminate\Support\Facades\Log' => 'Lara_Log']);

$app->withFacades();

$app->withEloquent();
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇