xiaosongshu/closure-table 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

xiaosongshu/closure-table

最新稳定版本:v1.1.3

Composer 安装命令:

composer require xiaosongshu/closure-table

包简介

"测试发布一个laravel插件"

README 文档

README

扩展包开发

创建一个packages的目录

在项目的根目录下面创建一个packages目录,用来存放需要开发的扩展包。

文件目录

第一层是开发者的名称,比如xiaosongshu,第二层是扩展包的名称,比如closure-table。
所有的文件都放在/xiaosongshu/closure-table/src目录下面。

生成composer.json配置文件,

进入/xiaosongshu/closure-table/目录下,执行composer init命令,生成扩展初始化配置。 会自动生成src目录,生成vendor目录,生成composer.json目录。

编程

所有要写的功能代码,服务提供者都放在src目录下。

配置文件

首先在src下面创建config目录,然后创建closure-table.php 配置文件,里面写初始化的配置数据。

扩展文件的服务类

这个是提供原始功能的方法,在src下面,创建ClosureTable类,里面可以写我们需要的任意方法。 这个类是整个扩展的核心功能模块,是必须的。

创建插件的命令行

创建TalkCommand,继承Illuminate\Console\Command,然后里面写你的命令行需要实现的业务逻辑。

创建服务提供者

创建服务提供者,ClosureTableServiceProvider.php 需要继承Illuminate\Support\ServiceProvider类。
这个类是用来注册服务类的。
1,发布配置
2,注册命令行的
3,注册服务并设置别名
4,设置服务延迟加载

创建门面操作类

创建SongShu.php 继承Illuminate\Support\Facades\Facade,里面只需要写一个方法getFacadeAccessor
返回值必须是服务提供者里面绑定服务的时候设置的别名。

设置composer里面的服务提供者和门面类

其中,autoload这个是自动加载项,必须符合PSR-4规范。当我们引入Xiaosongshu\ClosureTable\的时候,会 自动定位到src目录。里面的files表示需要自动引入的文件,通常用来放助手函数的。

"autoload": {
        "psr-4": {
            "Xiaosongshu\\ClosureTable\\": "src/"
        },
        "files": [
            "./src/helper.php"
        ]
    },

关于服务提供者的配置

"extra": {
        "laravel": {
            "providers": [
                "Xiaosongshu\\ClosureTable\\ClosureTableServiceProvider"
            ],
            "aliases": {
                "SongShu": "Xiaosongshu\\ClosureTable\\Facades\\SongShu"
            }
        }
    }

必须有extra目录,然后指定到laravel。其中providers这个数组就是自动注册服务提供者,里面 的每一个元素都是具体的服务提供者的名称,aliases实际上是门面操作类,前面注册的服务提供者,不需要使用 app(服务者名称)的方式调用,可以直接静态化方法的调用。

关于服务提供者和门面类

如果不在composer.json 配置extra,那么就要手动把服务提供者写入到项目的config/app.php的provider数组里面去, 否则无法注册服务。
如果不在composer.json 配置aliases,那么如果要使用门面类,就要手动把门面类添加到config/app.php 下面的aliases数组里面去。

关于命名空间

这个命名空间不能乱写的,在src目录下面,有一层目录才有一层命名空间,否则会出现找不到类的问题。 命名空间和文件目录必须严格对应。

发布配置文件

php artisan vendor:publish --provider="Xiaosongshu\ClosureTable\ClosureTableServiceProvider" --force

这个命令的作用是将配置文件复制到项目的config目录下面的。

关于composer.json文件中的脚本scripts

参考文件:https://www.likecs.com/show-1020064.html
https://www.wenjiangs.com/doc/xgpri2m3

删除暂存区的文件 git rm --cached packages/xiaosongshu/closure-table

统计信息

  • 总下载量: 30
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-07-28