Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于 framework 里面的 support 与应用中的 support 有些重复的文件或代码 #334

Closed
zoujingli opened this issue Sep 14, 2022 · 18 comments

Comments

@zoujingli
Copy link

zoujingli commented Sep 14, 2022

关于 framework 里面的 support 与应用中的 support 有些重复的文件和代码?是后续有计划调整结构还是放错了文件?
目前给人的感觉结构有些混乱,比如: helpers.php,start.php, windows.php,bootstrap.php 等等。

框架基础核心:workerman
框架应用核心:webman-framework
框架业务部分:app+其他

希望代码组件及代码尽量简洁,方便阅读源码。

@zoujingli
Copy link
Author

#328 相似,希望新版本可以下优化组件+应用 结构 😂

@walkor
Copy link
Owner

walkor commented Sep 14, 2022

之前版本是不重复的,helpers.php,start.php, windows.php,bootstrap.php只放在应用目录里,但是升级会遇到麻烦。
用户更新了webman-framework,但是没办法更新应用里的 helpers.php,start.php, windows.php,bootstrap.php,导致无法启动。

后面将这四个文件放到了webman-framework,更新后脚本会自动替换应用目录里对应的4个文件,达到webman-framework 和 应用里的文件同步更新。

@zoujingli
Copy link
Author

之前版本是不重复的,helpers.php,start.php, windows.php,bootstrap.php只放在应用目录里,但是升级会遇到麻烦。 用户更新了webman-framework,但是没办法更新应用里的 helpers.php,start.php, windows.php,bootstrap.php,导致无法启动。

后面将这四个文件放到了webman-framework,更新后脚本会自动替换应用目录里对应的4个文件,达到webman-framework 和 应用里的文件同步更新。

表示理解了,能否将这些非必需加载的文件放置到其他目录,并不以 .php 后缀结束。IDE 提示代码大量重复。

@walkor
Copy link
Owner

walkor commented Sep 14, 2022

什么编辑器?哪里提示代码重复请截图下

@zoujingli
Copy link
Author

image
image

@zoujingli
Copy link
Author

image

@zoujingli
Copy link
Author

image

@walkor
Copy link
Owner

walkor commented Sep 14, 2022

感谢反馈,后面版本里加一个删除就好了

walkor referenced this issue in walkor/webman-framework Sep 14, 2022
@walkor walkor closed this as completed Sep 14, 2022
@zoujingli
Copy link
Author

zoujingli commented Sep 14, 2022

删除可以解决IDE解析提示,但直接阅读核心源代码还是容易误导,上面是我提的建议 😁。

准备从 ThinkPHP 转 Webman,期望有点高,希望大佬不要见怪哈。

@walkor
Copy link
Owner

walkor commented Sep 14, 2022

如果换后缀了,IDE没办法智能提示,查看及编码也不方便,可能还有人会问为啥有个xx后缀的文件,为什么不用php后缀。。。太难了

@zoujingli
Copy link
Author

众口难调,积累了这么久了,要不发个大版本吧 !

@walkor
Copy link
Owner

walkor commented Sep 14, 2022

你是说哪个特性需要发大版本?

@zoujingli
Copy link
Author

zoujingli commented Sep 16, 2022

  1. 启动入口脚本及核心函数组件化,由 composer 管理+初始化配置,其他配置及自定义扩展由应用目录管理。
  2. 核心注释 DOC 标准化,更友好的支持 IDE 提示,目前源码大部没有方法注释描述。
  3. 使用 php 强类型,为后续高版本php标准做准备,提升代码执行效率,标准化形参类型。
  4. 更新框架核心时不影响应用目录,简化应用配置+减轻部署成本。
  5. 增加服务或中间键 composer 注入,实现 composer 组件插件化。(目前代码有做检测依赖 class 是否存在,如 env 配置)

@walkor
Copy link
Owner

walkor commented Sep 16, 2022

234好理解,1 5 具体是什么意思?

@zoujingli
Copy link
Author

  1. 目前应用框架的启动脚本及常用函数是放置于 app 同级目录,用户可随意修改。核心升级管理这些零散的文件不方便,如果用户对其进行了修改,则可能会替换掉。建议核心脚本及核心函数放置于 composer 内部管理,用户需要增加函数,可以自行扩展。
  2. 使用 composer 进行安装或下载组件时,可根据 组件的 composer.json 配置进行自动配置,并存放于 vendor/*.php 或其他目录,比如我的组件有一个中间件,只需要在 composer.json 定义的中间键入口,通过 composer 安装时,会自动生成配置,应用启动时加载对应配置并启用。

@zoujingli
Copy link
Author

通常核心部分是不允许用户修改的,用户只需要 配置+扩展+业务!

@zoujingli
Copy link
Author

启动脚本可以进行封装,如果用户需要扩展或修改,可以继承类再调用初始化。
如:start.php 只需要 include 进来,再调 start.

@walkor
Copy link
Owner

walkor commented Sep 16, 2022

通过 composer 安装时,会自动生成配置,应用启动时加载对应配置并启用

这个目前是支持的,基础插件安装就是这么做的。

启动脚本可以按照你的思路优化下。非常感谢你的建议。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants