weixin_39914752
weixin_39914752
2021-01-12 15:26

swoft 2.0 开发意见收集

swoft 2.0 开发意见收集

鉴于1.0的规划过于庞大,一些组件其实很少人使用,开发团队感觉维护困难。

决定开发2.0:

  • 全协程化: swoole 4.3+, php 7.1+
  • 重心调整:核心团队首先专注基础框架和核心组件的开发维护
  • 其他组件的重心放低,鼓励社区和感兴趣的人开发维护
  • 有更充足的时间编写单元测试和相关文档

这里做一些意见收集

  • 那些是你认为的核心组件?
  • 在使用中有哪些不足或者没有你希望的效果?
  • 对一些核心功能,希望怎么改进?或有什么建议?

去除的功能:

  • auto reload 极大的增加了框架启动逻辑复杂度
  • defer(getResult) 很少人使用
  • 框架核心,不再提供服务注册和发现这一套(待定)。
  • 不再提供redis 前缀支持
  • 不再提供定时任务(分布式任务系统扩展)
  • 不再提供session支持

需改进的功能:

  • 注解扫描将会重构
  • 改进和简化组件的注册
  • 验证将会重构,简化使用 ( )
  • 路由将会改进: 支持命名路由
  • 关于开发时自动重启:提供一个 swoft-cli 它来监控项目变动,发送重启信号
  • 数据库ORM大体会和laravel使用一样
  • rpc 协议支持适配器,默认提供 jsonrpc 适配器,用户可以根据接口实现自己需要的协议 ( )
  • config 支持常用的配置格式(yaml json)
  • bean的注册和收集将会做一些调整
  • 增加支持别名
  • 数组方式配置支持添加bean选项(支持别名,作用域设置)
  • 提供测试辅助工具库 更方便编写单元测试
  • 异常处理优化

新增的功能:

  • 进程池的封装
  • 迁移脚本

该提问来源于开源项目:swoft-cloud/swoft

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

99条回答

  • weixin_39554290 weixin_39554290 3月前

    连接池可以抽离出来 连接池包 数据库连接池包 redis连接池包 .... 按需在composer中引入 默认框架可以引入部分 然后其他人有需要在不用这框架也可以引入使用

    点赞 评论 复制链接分享
  • weixin_39726697 weixin_39726697 3月前

    关于项目初始化提供的大量例子,我觉得全部移至文档或一个demo repo,保持初始化最简单

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    关于项目初始化提供的大量例子,我觉得全部移至文档或一个demo repo,保持初始化最简单

    2.0 的初始化项目结构会保持最精简的 同时会提供一些含有其他demo的初始化repo

    点赞 评论 复制链接分享
  • weixin_39699746 weixin_39699746 3月前

    image 是否考虑socket增加心跳机制和分组

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    这个配置是 swoole 就提供了的啊

    点赞 评论 复制链接分享
  • weixin_39906878 weixin_39906878 3月前

    用ci用久了,发现这个有点难学,希望文档再详细一点,加油😊

    点赞 评论 复制链接分享
  • weixin_39850920 weixin_39850920 3月前

    比较关心 2.0 是否是一个不兼容更新,如果是,那么是否会提供详细的升级说明

    点赞 评论 复制链接分享
  • weixin_39863371 weixin_39863371 3月前

    我觉得http server 部分舍弃view部分,只提供api接口功能就够了

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    我觉得http server 部分舍弃view部分,只提供api接口功能就够了

    嗯 view 一直是可选的

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    比较关心 2.0 是否是一个不兼容更新,如果是,那么是否会提供详细的升级说明

    这个到时要考虑下

    点赞 评论 复制链接分享
  • weixin_39793189 weixin_39793189 3月前

    希望文档能丰富一些

    点赞 评论 复制链接分享
  • weixin_39710462 weixin_39710462 3月前

    希望能更加安全和注意细节 97404667 邮箱97404667.com 签名由 网易邮箱大师 定制 在2019年01月23日 17:21,拾年磨一剑 写道: 希望文档能丰富一些 — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

    点赞 评论 复制链接分享
  • weixin_39835925 weixin_39835925 3月前

    我能提个过分的需求么 强烈建议支持 https://github.com/alibaba/fescar 解决数据一致性一直很头痛。。。要撸巨多修复代码,能支持fescar或者GTS这种分布式事务框架就好了。微服务话才能轻松进行

    点赞 评论 复制链接分享
  • weixin_39789094 weixin_39789094 3月前

    swoft中间件希望能够像laravel的中间件一样可以实现传参,现在的中间件实用性不高

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    swoft中间件希望能够像laravel的中间件一样可以实现传参,现在的中间件实用性不高

    传参 指的是提前new出中间件对象,设置一些东西吗?

    点赞 评论 复制链接分享
  • weixin_39548541 weixin_39548541 3月前

    微核心,把所有的功能都组件化.

    点赞 评论 复制链接分享
  • weixin_39548541 weixin_39548541 3月前

    线程池管理类 跟 线程池基类为什么要混在一块.

    点赞 评论 复制链接分享
  • weixin_39548541 weixin_39548541 3月前

    对于event log pipe pool proxy Validator 甚至APP都可以组件化.

    点赞 评论 复制链接分享
  • weixin_39548541 weixin_39548541 3月前

    极其讨厌 注解 方式写代码. 为什么不能像 symfony提供两种方式?

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    极其讨厌 注解 方式写代码. 为什么不能像 symfony提供两种方式?

    工作量太大 😄 不喜欢注解可以用 easyswoole imi mixphp 等基于swoole的框架

    点赞 评论 复制链接分享
  • weixin_39823676 weixin_39823676 3月前

    希望swoft 2.0提供类似于php artisan vendor:publish 这种命令,便于发布vendor扩展包下的配置文件,比如我要使用devtool这个包时,可以通过发布配置文件到config目录,然后可以自定义配置文件,生成符合项目需求的配置文件。比如 image这种头文件信息,可以通过自定义配置文件配置。

    目前这部分可以通过修改头配置文件实现,可以看一下:https://doc.swoft.org/master/zh-CN/devtool/gen-commands.html

    点赞 评论 复制链接分享
  • weixin_39605455 weixin_39605455 3月前

    希望swoft 2.0提供类似于php artisan vendor:publish 这种命令,便于发布vendor扩展包下的配置文件,比如我要使用devtool这个包时,可以通过发布配置文件到config目录,然后可以自定义配置文件,生成符合项目需求的配置文件。比如 image这种头文件信息,可以通过自定义配置文件配置。

    点赞 评论 复制链接分享
  • weixin_39727005 weixin_39727005 3月前

    希望swoft2.0连接池,能够支持多个负载服务地址,指定获取某个地址的连接功能。 需求其实主要是针对rpc这块,目前有些应用场景,对应多个rpc-server,希望能够定向分配一个server(比如用户登录成功后固定分配某一个server)。 目前1.0是按照连接池配置、服务写死的,有了这个功能,我想可以做到rpc-server动态上下线。

    点赞 评论 复制链接分享
  • weixin_39947521 weixin_39947521 3月前

    对新技术比较喜欢 切数据安全要求不高的项目 性能更有说服力。。。学swoft和学spring一样就没必要 有哪样的项目 也不会选择PHP 和 swoft框架 ,大部分公司负责人 都不敢把核心项目方在swoole上跑

    既然基于swoole性能方面就不需要太担心。框架稳定和易用这个是最最重要的,swoft应该着重在这方面下功夫。

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    swoft-cli生成项目,建议可以替换swoft关键词,可以由开发者自定义关键词。并非不尊重版权云云,是希望swoft更加开放。

    如我们开发商业产品,如产品源码大量出现swoft关键词对商业产品有不好影响。 这点beego之类框架做得很好都做得不错

    没明白,你是说 swoft-cli 这个名字吗? 还是说框架的代码里有Swoft关键字?

    • swoft-cli 只是个包名,工具名。就像 vue-cli 一样
    • 至于用Swoft开发的项目,里面的代码 Swoft并没有任何限制
    点赞 评论 复制链接分享
  • weixin_39870238 weixin_39870238 3月前

    实际上依赖文件内swoft关键词没啥。

    如下启动脚本关键词对于开发商业软件还是介意的。 当然也可以自己麻烦下去改, 不过还是希望swoft-cli创建项目的时候本身就集成了修改的功能

    // Start HTTP Server php bin/swoft start

    // Start Daemonize HTTP Server php bin/swoft start -d

    // Restart HTTP server php bin/swoft restart

    // Reload HTTP server php bin/swoft reload

    // Stop HTTP server php bin/swoft stop

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    bin/swoft 这个吗? 只是个入口文件 你可以随便命名的

    点赞 评论 复制链接分享
  • weixin_39842955 weixin_39842955 3月前

    最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高

    点赞 评论 复制链接分享
  • weixin_39603799 weixin_39603799 3月前

    最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高

    能具体说明下对比的框架是哪个么?

    点赞 评论 复制链接分享
  • weixin_39842955 weixin_39842955 3月前

    最近使用swoft1.0 , ab压力测试了一下,性能和其他swoole框架比较起来, 相差较大; 希望在2.0 能对性能方面有提高

    能具体说明下对比的框架是哪个么?

    使用vm虚拟机测试:配置1核1G swoole=4.2.10 worker_num=1 测试命令:ab -n 10000 -c 1000 url easyswoole 3.0.9: Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests

    Server Software: EasySwoole Server Hostname: 192.168.22.134 Server Port: 9501

    Document Path: /test Document Length: 21 bytes

    Concurrency Level: 1000 Time taken for tests: 4.516 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 1690000 bytes HTML transferred: 210000 bytes Requests per second: 2214.50 [#/sec] (mean) Time per request: 451.570 [ms] (mean) Time per request: 0.452 [ms] (mean, across all concurrent requests) Transfer rate: 365.48 [Kbytes/sec] received

    Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.8 0 8 Processing: 241 426 55.8 439 513 Waiting: 156 415 64.0 431 510 Total: 241 426 55.9 440 513 swoft1.0.8:(关闭日志,命令行输出) Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests

    Server Software: swoole-http-server Server Hostname: 192.168.22.134 Server Port: 9988

    Document Path: /hi/index Document Length: 5 bytes

    Concurrency Level: 1000 Time taken for tests: 6.734 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 2240000 bytes HTML transferred: 50000 bytes Requests per second: 1484.95 [#/sec] (mean) Time per request: 673.426 [ms] (mean) Time per request: 0.673 [ms] (mean, across all concurrent requests) Transfer rate: 324.83 [Kbytes/sec] received

    Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 1.0 0 8 Processing: 51 657 152.3 680 850 Waiting: 51 518 137.8 530 831 Total: 52 658 152.4 681 851 WARNING: The median and mean for the initial connection time are not within a normal deviation These results are probably not that reliable.

    Percentage of the requests served within a certain time (ms) 50% 681 66% 733 75% 750 80% 761 90% 792 95% 835 98% 846 99% 847 100% 851 (longest request)

    mixphp: Benchmarking 192.168.22.134 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests

    Server Software: swoole-http-server Server Hostname: 192.168.22.134 Server Port: 9966

    Document Path: / Document Length: 29 bytes

    Concurrency Level: 1000 Time taken for tests: 3.355 seconds Complete requests: 10000 Failed requests: 0 Total transferred: 1990000 bytes HTML transferred: 290000 bytes Requests per second: 2980.58 [#/sec] (mean) Time per request: 335.505 [ms] (mean) Time per request: 0.336 [ms] (mean, across all concurrent requests) Transfer rate: 579.23 [Kbytes/sec] received

    Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.6 0 6 Processing: 89 317 55.7 319 421 Waiting: 89 275 55.0 278 416 Total: 89 317 55.8 319 421

    Percentage of the requests served within a certain time (ms) 50% 319 66% 337 75% 351 80% 357 90% 368 95% 394 98% 406 99% 412 100% 421 (longest request)

    点赞 评论 复制链接分享
  • weixin_39870238 weixin_39870238 3月前

    我本机测试了下, mac15款 I5+8G内存, 开了一堆程序。

    swoole原生测试8000Requests per secon

    easyswoole 测试大概是5000 swoft 测试4000多

    以上测试都是hello测试 AB测试

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    2.0 会优化的,流程会理清晰后再做开发

    点赞 评论 复制链接分享
  • weixin_39727005 weixin_39727005 3月前

    也简单ab压测了下easyswoole,swoft。关闭日志,debug,开启1个worker,仅输出hello world。 easyswoole:swoft 大概 1650:1200,有些差距。 但是喜欢swoft。所以,还是非常期待swoft 2.0的。 加油!!!

    点赞 评论 复制链接分享
  • weixin_39829236 weixin_39829236 3月前

    MongoDB连接池支持,github上开源的基本上很少~

    点赞 评论 复制链接分享
  • weixin_39647186 weixin_39647186 3月前

    之前开发1.0组件的时候,有遇到过循环调用,导致coredump,排查起来非常困难,希望2.0可以把这一点在底层屏蔽掉,再就是swoole底层错误,和框架错误的日志风格不统一,后期采集比较困难,跑多进程任务的时候,框架内部出错,提示的日志信息无法定位错误点

    点赞 评论 复制链接分享
  • weixin_39827775 weixin_39827775 3月前

    2.0 会优化的,流程会理清晰后再做开发

    其实应该是 简介化 性能优先 对比mixPHP 性能差的更多 使用swoole的 一般都是对新技术比较喜欢 切数据安全要求不高的项目 性能更有说服力。。。学swoft和学spring一样就没必要 有哪样的项目 也不会选择PHP 和 swoft框架 ,大部分公司负责人 都不敢把核心项目方在swoole上跑

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    所以我们朝着这个方向努力啊,出一个能支撑大项目的框架

    点赞 评论 复制链接分享
  • weixin_39842955 weixin_39842955 3月前

    支持支持,期待2.0发布

    点赞 评论 复制链接分享
  • weixin_39726697 weixin_39726697 3月前

    配置部分: - 一些组件默认env覆盖config配置项,不是很直观,可以将这个操作改成只从config文件里读取,config里通过env获取覆盖?

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    配置部分:

    • 一些组件默认env覆盖config配置项,不是很直观,可以将这个操作改成只从config文件里读取,config里通过env获取覆盖?

    嗯 这个部分会去掉,应用里面默认都从 config 取配置

    点赞 评论 复制链接分享
  • weixin_39831039 weixin_39831039 3月前

    还是希望核心组件能包含队列 这个太常用了.第三方实现不是很靠谱 与框架集成配合不完美很容易不好用

    点赞 评论 复制链接分享
  • weixin_39973196 weixin_39973196 3月前

    建议: 抽取出基础的依赖库,可供swoft本身、其它流行框架共用 目前,对于rpc的需求还是很强烈的。

    点赞 评论 复制链接分享
  • weixin_39834328 weixin_39834328 3月前

    希望2.0的组件能解构;能做到其他框架composer引入可以直接使用

    对,希望引入就可用,不用再去修改文件了

    点赞 评论 复制链接分享
  • weixin_39952182 weixin_39952182 3月前

    1.建议依赖注入支持注解,配置,autowire多种方式,方便引入其他包和组件,也方便swoft的包和组件能简单注入其他框架。 2.抽象qb和ar的接口,方便后续对接各种db的时候有统一的调用方式,可以参考yii2。

    点赞 评论 复制链接分享
  • weixin_39842955 weixin_39842955 3月前

    注解:希望多给一点例子和原理讲解 , 降低入门门槛 ; 基本没有php框架用注解功能

    点赞 评论 复制链接分享
  • weixin_39765057 weixin_39765057 3月前

    什么时候开始,代码在哪里?

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    先收集意见,下周估计开始规划

    点赞 评论 复制链接分享
  • weixin_39608657 weixin_39608657 3月前

    有这么几个想法:(可能意义不大)

    1. 希望能从现今的版本比较平滑的迁移到2.0版本;

    2.数据库ORM方面希望能够增加对json 类型的支持;

    3.能够更好的处理生命周期逻辑(其实现在也已经很好了,可能是文档没吃透)

    4.注解的类提示上可以再友好点(原谅技术太渣很多东西只能靠提示来弥补)

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    我在这再回复下 :)

    1. 平滑迁移的可能性不大,2.0 出来后,看情况
    2. 这到得看时间了... 有兴趣的话,可以贡献
    3. 有啥发现的问题,可以向我们提
    4. 类提示靠的是IDE插件 😄
    点赞 评论 复制链接分享
  • weixin_39932939 weixin_39932939 3月前

    希望能够支持mongodb协程客户端,类似mysql。还有就是我们公司在使用过程中发现,水平较为初级的开发者认为文档较为难懂,不是很详细,个人认为文档如果能更易懂详细的话,更利于框架的推广吧

    点赞 评论 复制链接分享
  • weixin_39536806 weixin_39536806 3月前

    希望重点优化mysql数据库还有redis在协程下的使用体验。这是我最希望有的改进

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    希望能够支持mongodb协程客户端,类似mysql。还有就是我们公司在使用过程中发现,水平较为初级的开发者认为文档较为难懂,不是很详细,个人认为文档如果能更易懂详细的话,更利于框架的推广吧

    • mongo 后续会支持的
    • 有些文档使用,我们没发站到使用者的角度或者没想到。需要使用者帮忙贡献下,使用中的注意 文档补充
    点赞 评论 复制链接分享
  • weixin_39832727 weixin_39832727 3月前

    希望增加对log的优化 mongo的支持 还有队列呀 队列 注解的文档 如果可以的话 能完善下 就更好啦~~~

    点赞 评论 复制链接分享
  • weixin_39617669 weixin_39617669 3月前

    可以考虑 对 graphql 的支持

    点赞 评论 复制链接分享
  • weixin_39687192 weixin_39687192 3月前

    说说我们现在的项目使用的技术: 数据库:mongodb、mysql 缓存:redis 搜索引擎:elasticsearch 队列:beanstalk、kafka、rabbitmq

    需要满足基本使用这些,基本都是很常用的都能满足就可以很好使用了,考虑第三方composer包怎么使用,demo文档更详细一点,希望demo能有点业务逻辑代码,比如,mysql查询数据、redis获取数据、操作业务,API接口栗子,单元测试,代码调试监控进程状态,如果有日志管理就更好了,可以基于swoft开发项目壮大社区,这样更容易理解,毕竟新手很多,了解理解协程、异步、进程、线程这些网络IO这些复杂度就上升了,希望体验度要和传统的fpm框架无差异,这样社区才能壮大,来自本人理解,不对的地方,请谅解哈。

    点赞 评论 复制链接分享
  • weixin_39870238 weixin_39870238 3月前

    swoft-cli生成项目,建议可以替换swoft关键词,可以由开发者自定义关键词。并非不尊重版权云云,是希望swoft更加开放。

    如我们开发商业产品,如产品源码大量出现swoft关键词对商业产品有不好影响。 这点beego之类框架做得很好都做得不错

    点赞 评论 复制链接分享
  • weixin_39854369 weixin_39854369 3月前

    重启加载的时候,能不能变快点,有的东西compose 目录不需要多次扫描的,开发的时候有时候调试,修修改改很正常..每次等10s以上,好麻烦,尽量扫描的快些,,5秒内最好

    点赞 评论 复制链接分享
  • weixin_39828847 weixin_39828847 3月前

    参考laravel,yii,symfony做一个debug bar,可以极大的方便开发和调试

    点赞 评论 复制链接分享
  • weixin_39617113 weixin_39617113 3月前

    参考laravel,yii,symfony做一个debug bar,可以极大的方便开发和调试

    对,SQL报错,也不提示。找个错误好难

    点赞 评论 复制链接分享
  • weixin_39548832 weixin_39548832 3月前

    希望tcp协议支持多种数据格式传输, 支持msgpack,protobuf,这两种格式对游戏开发生态比较好

    点赞 评论 复制链接分享
  • weixin_39647186 weixin_39647186 3月前

    不提供session 支持?是否提供其他类型的会话权限认证?

    点赞 评论 复制链接分享
  • weixin_39525097 weixin_39525097 3月前

    基础需求

    1. 配置解耦,方式多样性,尽量采用对象属性描述单个配置
    2. 服务发现(Consul)注册支持采集主机(容器)信息,进行注册。(当前按配置进行注册,可能存在误解)
    3. RPC协议多样性支持(protobuf需求量最大吧,不再赘述)
    4. SQL预编译操作交由Swoole\MySQL客户端或PDO客户端,避免维护sql注入问题

    进阶需求

    1. Key-Value远端配置(Consul),支持配置变更监听
    2. 服务正常关闭、消亡处理,取消服务注册、回收协程、待重要队列任务完成
    3. 若grpc不适用于框架,可自行编写Pb生成器拓展,达到最终效果
    4. ORM当然是越好用越OK
    5. Swagger类似的API文档的生成支持
    6. 文件变化监听,可通过inotify拓展
    7. 保留现有埋点,支持jaegertracing链路追踪
    8. 当前Log功能基础上,增加日志Handler

    以上内容纯属建议,可选择性采纳 如若需要帮忙,请Email:marico.cn,或群里联系本人

    点赞 评论 复制链接分享
  • weixin_39635432 weixin_39635432 3月前

    建议: 1,期望有zf2框架相似的模块化部署结构; 2,mongodb连接池,如同mysql连接池实现;

    点赞 评论 复制链接分享
  • weixin_39634579 weixin_39634579 3月前

    路由。路由。路由呀。要支持自定义呀

    点赞 评论 复制链接分享
  • weixin_39842955 weixin_39842955 3月前

    希望2.0的组件能解构;能做到其他框架composer引入可以直接使用

    点赞 评论 复制链接分享
  • weixin_39884412 weixin_39884412 3月前

    能支持http的chunk吗,不分片的吗,大文件无法下载。

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    路由。路由。路由呀。要支持自定义呀

    怎么自定义?详细说明下

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    希望2.0的组件能解构;能做到其他框架composer引入可以直接使用

    正在讨论考虑中

    点赞 评论 复制链接分享
  • weixin_39634579 weixin_39634579 3月前

    路由。路由。路由呀。要支持自定义呀

    怎么自定义?详细说明下

    文件自定义路由,类似laravel那样,可以考虑分路由模式或者做下兼容

    点赞 评论 复制链接分享
  • weixin_39876514 weixin_39876514 3月前

    我觉得 应该把swoft完全做成一个php的应用容器,然后就是加载各种组件的事了。哪怕组件有问题,也不要把应用容器搞挂了。

    点赞 评论 复制链接分享
  • weixin_39727005 weixin_39727005 3月前

    常用的Tcp、Upd server更好的支持~ 服务启动速度能进一步优化就更好了 其他上述其他道友也基本都提到了

    点赞 评论 复制链接分享
  • weixin_39605455 weixin_39605455 3月前

    很有道理,就是orm这个核心组件参照laravel。还是很强大的,比yii2的都强大

    点赞 评论 复制链接分享
  • weixin_39593593 weixin_39593593 3月前

    希望把RPC server 完善下,尤其是 错误处理。

    点赞 评论 复制链接分享
  • weixin_39871649 weixin_39871649 3月前

    demo希望更加完善一些,便于上手开发降低学习成本。

    点赞 评论 复制链接分享
  • weixin_39777019 weixin_39777019 3月前

    manaphp的ORM更强大,使用Query与Model兼容mongodb与sql

    点赞 评论 复制链接分享
  • weixin_39961943 weixin_39961943 3月前

    希望文档能完善一些 最好把你们自己写的测试demo发一套代码出来

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    希望文档能完善一些 最好把你们自己写的测试demo发一套代码出来

    现在 swoft 项目就是一个完整的demo 我们的测试也是用的它,还有些功能测试代码 就在各个组件的 test 目录下

    点赞 评论 复制链接分享
  • weixin_39947521 weixin_39947521 3月前

    服务注册和发现希望能继续支持并完善。php微服务化还不成熟,大多数phper对rpc也不熟悉,如果仅仅只提供rpc的server和client的通讯功能,那想使用rpc就会困难很多了。rpc通讯很多框架早就提供了,这一块并不是难点,如果swoft能提供一套稳定完善的rpc微服务解决方案,那才是优势所在。

    另外希望增加以下rpc service的exception handler支持。

    点赞 评论 复制链接分享
  • weixin_39947521 weixin_39947521 3月前

    易扩展和简洁易用在1.0就做得不是很好,我觉得最主要是体现在bean容器,orm和扩展swoft组件上,希望2.0能着重优化下。 swoft bean容器是在服务启动之时就注入好的,但是这么做就有个坑爹的地方了:如果我是需要在服务启动之时做一些操作,就会发现有些bean容器里面的对象(包括官方的和自定义的)用不了!!而且通过数组方式注册服务到bean容器的时候是强制使用单例的!而且注册服务到bean容器不能像laravel那样在注册之时带一些逻辑。 还有就是custom.component这个功能有问题,配置了注解文件的命名空间也不一定能扫描到

    点赞 评论 复制链接分享
  • weixin_39630813 weixin_39630813 3月前

    希望模仿laravel的orm系统 方法 用法一样也行

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    bean对象用不了 指的是?

    点赞 评论 复制链接分享
  • weixin_39996096 weixin_39996096 3月前

    创建项目可以选择自己希望的特性,比如不需要微服务? 配置文件希望也能明确一点,现在不看源码基本不知道哪些最后的配置文件是什么样子。(可以在应用运行后生成最终的配置文件?)

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    创建项目可以选择自己希望的特性,比如不需要微服务? 配置文件希望也能明确一点,现在不看源码基本不知道哪些最后的配置文件是什么样子。(可以在应用运行后生成最终的配置文件?)

    • 后面会简化配置。
    • 创建项目后面会调整,提供几个通用的服务模板项目
    • 另外,现在最后的配置可以通过 devtools 看到的
    点赞 评论 复制链接分享
  • weixin_39593593 weixin_39593593 3月前

    环境变量配置现在已经很方便了,尤其是像docker、k8s 这样的容器部署,有一点就是希望配置文件能分环境(不改变config文件),类似laravel的 .env 和 .env.production 这样一些非敏感信息 可以通过git 提交到代码库,部署的时候不用再配置环境变量。

    点赞 评论 复制链接分享
  • weixin_39991222 weixin_39991222 3月前

    建议的核心组件

    • 常见协议的 server,接口留出,允许自定义其他应用协议
    • db,AR 参考 Yii2,AR 中常用的操作要丰富
    • cache,接口要给出,常见的,例如 redis 实现一个,其他的依据接口自行扩展
    • devtool,脚手架更丰富些,涉及常见操作
    • jwt,既然不要 session
    • view,模板引擎适配器留出,自行接入常见模板引擎
    • http-message
    • i18n
    • memory
    • task
    • swagger
    • router,除了注解路由也支持自定义路由和路由

    建议改进的

    1. 及时更新文档
    2. 丰富的 demo,能用 demo 说明白的,不写字
    3. 提高 pr 进入新版本的速度
    4. 真正可以一键打包 phar
    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    环境变量配置现在已经很方便了,尤其是像docker、k8s 这样的容器部署,有一点就是希望配置文件能分环境(不改变config文件),类似laravel的 .env 和 .env.production 这样一些非敏感信息 可以通过git 提交到代码库,部署的时候不用再配置环境变量。

    这个没限制呀 .env.production 你可以放到里面,上线时,通过脚本改名为 .env

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前
    • 这次去除一些非核心的组件,更有精力专注核心文档。非核心的组件文档靠维护者和社区贡献
    • PR 合并速度受这个PR的代码影响。代码牵扯到较多的逻辑就会慢一些
    • demo 会尽量提供。也需要用户贡献才能丰富,有些我们不一定能想到
    • phar 打包一直都提供了的,只是有些兼容问题。这个看情况,因为并未听到有多少人用。
    点赞 评论 复制链接分享
  • weixin_39947521 weixin_39947521 3月前

    bean对象用不了 指的是?

    比如beforeStart事件中有些注册bean容器的对象就用不了,

    点赞 评论 复制链接分享
  • weixin_39687192 weixin_39687192 3月前

    mongodb 驱动支持,消息队列支持:kafka、rabbitmq、beanstalk等 另外demo希望更加完善一些,便于上手开发降低学习成本。

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    mongodb 驱动支持,消息队列支持:kafka、rabbitmq、beanstalk等 另外demo希望更加完善一些,便于上手开发降低学习成本。

    • mongodb 后面也会支持
    • 消息队列 也将在第二阶段做
    点赞 评论 复制链接分享
  • weixin_39526651 weixin_39526651 3月前

    建议完善中间件,可参考下laravel的,路由可设定参数,中间件可获取 优化验证机制,现有的验证感觉好鸡肋,开发效率相当的低

    点赞 评论 复制链接分享
  • weixin_39589394 weixin_39589394 3月前

    土壤原因,我觉得成为 spring-cloud 那样的生态是不现实的, 倒是能做成 sf 那样, sf 体现了自己对php-fpm 的理解,所写出的组件成了很多现代框架的一砖一瓦。 我觉得 swoft 对 swoole-cli 的理解是最深的,应能能做出这样的贡献。

    点赞 评论 复制链接分享
  • weixin_39617113 weixin_39617113 3月前

    希望整合laravel的orm系统

    点赞 评论 复制链接分享
  • weixin_39572152 weixin_39572152 3月前

    是的,我们也意识到这个问题,所以重构2.0

    点赞 评论 复制链接分享
  • weixin_39526651 weixin_39526651 3月前

    土壤原因,我觉得成为 spring-cloud 那样的生态是不现实的,

    这个很有道理,php的特性就是方便快捷,spring-cloud的生态不适phper,适合java转型的

    点赞 评论 复制链接分享
  • weixin_39914752 weixin_39914752 3月前

    建议完善中间件,可参考下laravel的,路由可设定参数,中间件可获取 优化验证机制,现有的验证感觉好鸡肋,开发效率相当的低

    • 这个是支持的 路由可设定参数,中间件可获取
    • 验证之前做的很匆忙,这次会重新调整
    点赞 评论 复制链接分享
  • weixin_39572152 weixin_39572152 3月前

    我们计划也是兼容laravel的orm使用方式,但是有点小改动,整体使用一样。

    点赞 评论 复制链接分享
  • weixin_39589394 weixin_39589394 3月前

    希望整合laravel的orm系统

    接上面的论述,我觉得这些整合这个,整个那个不应当是重点,不应当耗费开发组的精力

    点赞 评论 复制链接分享
  • weixin_39572152 weixin_39572152 3月前

    不是整合,我们ORM使用方式,大体会和laravel一样

    点赞 评论 复制链接分享