2.5.0 (build 415) #43
crazywhalecc
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
以下是版本新增内容:
module_loader
项,用于配置外部模块加载的一些设置。runtime
配置项,可自定义配置 Swoole 的一些运行时参数,目前可配置一键协程化的 Hook 参数和 Swoole Server 的启动模式。module:list
命令,用于查看未打包和已打包的模块列表。module:pack
命令,用于打包现有 src 目录下的模块。module:unpack
命令,用于解包现有的 phar 模块包。build
。./zhamao
,效果同vendor/bin/start
或bin/start
。--interact
:又重新支持交互终端了,但还是有点问题,不推荐使用。--disable-safe-exit
:如果你的项目在 Ctrl+C 时总是卡住且项目内没有什么使用 LightCache 等缓存在内存的数据可开启防止关不掉框架。--preview
:只显示参数,不启动炸毛框架的服务器。--force-load-module
:强制打包状态下加载的模块(使用英文逗号分隔多个模块名称)。CoroutinePool
协程池新增getRunningCoroutineCount
方法,用于查看协程池中的协程数量。DataProvider
新增getFrameworkRootDir()
、getSourceRootDir()
,分别代表获取框架的根目录和用户源码根目录。(详见下方对目录的定义解释)DataProvider
中getDataFolder
新增参数$second = ''
,如果给定,则自动创建子目录$second
并返回。DataProvider
新增scanDirFiles()
方法,用于扫描目录,可选择是否递归、是否返回相对路径,也支持扫描 Phar 文件内的路径,非常好用。DataProvider
新增isRelativePath()
方法,检查路径是否为相对路径(根据第一个字符是否是 '/' 来判断)。ZMUtil
新增getClassesPsr4()
方法,用于根据 Psr-4 标准来获取目录下的所有类文件。./zhamao build
来构建框架的 phar 包时增加显示进度条。getEid()
和getClass()
,分别用于获取事件分发 ID 和注解事件的注解类名称。doctrine/dbal
组件,更灵活和稳定。SWOOLE_BASE
模式的支持(支持只启动一个进程的 Server)。以下是版本修改内容:
vendor/bin/start
修改为 shell 脚本,可自动寻找 PHP 环境。league/climate
组件。zm_data
根目录默认修改为WORKING_DIR
。systemd:generate
修改为generate:systemd
。server_event_handler_class
项,此项废弃。ZMRobot
类转移为OneBotV11
类,但提供兼容。daemon:reload
和daemon:stop
命令可能失效的问题。ZM\Http\RouteManager
移动到ZM\Utils\Manager\RouteManager
,但原地址兼容。Terminal
类使用的一些问题。pcntl
扩展改为可选依赖,当 Swoole 版本大于等于 4.6.7 时不需要安装pcntl
扩展。@OnSetup
和@SwooleHandler
可直接使用,无需设置server_event_handler_class
即可。--debug-mode
参数时,自动开启热更新。对目录的定义解释:
在 2.4.4 版本之前,使用炸毛框架中,只含有两种目录,
getWorkingDir
和getDataFolder
,分别代表获取工作目录和数据目录。在 2.5 版本中,又新增了getFrameworkRootDir
代表获取框架的根目录,getSourceRootDir
代表获取源码的根目录。以 Composer 运行模式举例,如果你使用
composer create-project zhamao/framework-starter
命令新建的框架,那么假设我们从/app
目录下运行此命令,然后使用cd framework-starter/
进入项目目录,此时我们使用vendor/bin/start server
命令运行服务器,对应的目录为:WorkingDir
:/app/framework-starter/
SourceRootDir
:/app/framework-starter/
FrameworkRootDir
:/app/framework-starter/vendor/zhamao/framework/
如果以源码模式(直接克隆
zhamao-framework.git
仓库),启动框架,那么使用命令bin/start server
启动框架后,以上三个返回的目录则完全相同。如果以 2.5 版本新的项目归档模式(build)启动框架,假设我们的项目代码打包为
server.phar
,在/app/
目录,我们使用命令php server.phar server
启动炸毛框架,那么它对应的目录为:WorkingDir
:/app/
SourceRootDir
:phar:///app/server.phar/
FrameworkRootDir
:phar:///app/server.phar/vendor/zhamao/framework/
如果最后一种归档方式启动的框架是从源码模式打包而来,那么
FrameworkRootDir
就与SourceRootDir
相同。版本部分兼容问题变化:
理论上如果不使用框架内部未开放的接口方法的话,从 2.4 升级到 2.5 是非常自然的,但是也有一部分可能会造成不兼容的问题。
systemd:generate
变成generate:systemd
。zm_data
的父目录由__DIR__ . "/../"
改为WORKING_DIR
。OneBotV11
类中,但原先的 ZMRobot 还可以使用。This discussion was created from the release 2.5.0 (build 415).
Beta Was this translation helpful? Give feedback.
All reactions