欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

laravel 项目配置 Facades Redis 自动完成、方法视图

最编程 2024-06-02 07:55:31
...

问题原因:

因为Laravel的Redis连接实例是通过RedisManger的工厂类创建的,返回的是一个mixin的类型,因此在IDE中不能自动补全Redis的方法,缺少这个功能,使用起来有些麻烦,尤其是Redis有数十个方法,每个方法也有不少参数。

相关部分的代码如下:

/**
 * @mixin \Illuminate\Redis\Connections\Connection
 */
class RedisManager implements Factory

.......

    /**
     * Get the connector instance for the current driver.
     *
     * @return \Illuminate\Contracts\Redis\Connector
     */
    protected function connector()
    {
        $customCreator = $this->customCreators[$this->driver] ?? null;

        if ($customCreator) {
            return $customCreator();
        }

        switch ($this->driver) {
            case 'predis':
                return new PredisConnector;
            case 'phpredis':
                return new PhpRedisConnector;
        }
    }

解决方案

下面先看下最终的效果:
下图中可以看到,输入Redis Facades静态类名后,后面会自动提示方法名和方法参数。
在这里插入图片描述

这里借助的工具laravel-ide-helper

参考资料: Redis autocomplete not work? #519

项目中的安装文档需要安装相应的依赖,虽然可以区分环境安装,依赖安装后可以生成对应的帮助类文件(_ide开头的文件,主要是IDE来使用的)。
如果不想安装,可以直接将生成的_ide开头的文件,复制到自己项目的根目录中即可,IDE可以自动识别(缺点是不能自动更新,不过没有太多更新需要的话,直接复制文件,同时将文件加到 gitignore中,则比较清洁)。

主要需要两个文件:
_ide_helper.php, 这个是安装依赖后,通过命令生成的(可以直接从别处考来,也可以安装依赖后,生成,再卸载依赖)

composer require --dev barryvdh/laravel-ide-helper
php artisan ide-helper:generate
#composer remove --dev barryvdh/laravel-ide-helper

另外一个文件是_ide_helper_redis.php, 这个文件主要是为Redis类添加了方法描述,IDE正是通过这个文件实现的自动补全。可以从上面的github issue下载,也可以自己编辑维护。

下面只是一个示例(可能缺失某些方法,大家可以自己进行修改):

<?p

推荐阅读