DaemonApplication
扩展 CliApplication将 CliApplication 应用程序转换为守护程序的类。它需要 PHP 中内置的 CLI 和 PCNTL 支持。
链接 | |
---|---|
自 |
1.7.0 |
包 |
Joomla CMS |
方法
__construct
类构造函数。
__construct(\Joomla\CMS\Input\Cli input = null, \Joomla\Registry\Registry config = null, \Joomla\Event\DispatcherInterface dispatcher = null) :
自 |
1.7.0 |
---|
参数
- 输入
Cli|null
一个可选参数,用于为应用程序的输入对象提供依赖项注入。如果参数是 JInputCli 对象,则该对象将成为应用程序的输入对象,否则将创建一个默认输入对象。- 配置
Registry|null
一个可选参数,用于为应用程序的配置对象提供依赖项注入。如果参数是 Registry 对象,则该对象将成为应用程序的配置对象,否则将创建一个默认配置对象。- 调度程序
DispatcherInterface|null
一个可选参数,用于为应用程序的事件调度程序提供依赖项注入。如果参数是 DispatcherInterface 对象,则该对象将成为应用程序的事件调度程序,如果它是 null,则将根据应用程序的 loadDispatcher() 方法创建默认事件调度程序。
响应
混合
__get
用于访问应用程序属性的魔术方法。
__get( name) :
自 |
4.0.0 |
---|---|
已弃用 |
4.0 将在 6.0 中删除 这是一个针对已弃用读访问的 B/C 代理 例如:Factory::getApplication()->getInput(); |
参数
- 名称
string
属性的名称。
响应
mixed
如果属性名称有效,则为一个值,否则为 null。
bootComponent
启动具有给定名称的组件。
bootComponent( component) : \Joomla\CMS\Extension\ComponentInterface
bootModule
启动具有给定名称的模块。
bootModule( module, applicationName) : \Joomla\CMS\Extension\ModuleInterface
bootPlugin
启动具有给定名称和类型的插件。
bootPlugin( plugin, type) : \Joomla\CMS\Extension\PluginInterface
changeIdentity
用于更改守护程序进程和资源身份的方法。
changeIdentity() :
自 |
1.7.0 |
---|---|
参见 | posix_setuid() |
响应
bool
如果身份成功更改,则为 True
createExtensionNamespaceMap
允许应用程序加载自定义或默认身份。
createExtensionNamespaceMap() :
自 |
4.0.0 |
---|
响应
空
daemonize
用于将应用程序置于后台的方法。
daemonize() :
自 |
1.7.0 |
---|---|
抛出 |
|
响应
布尔值
detach
这是真正发生魔术的地方。在这里,我们分叉进程并杀死父进程,这本质上就是将应用程序转换为守护程序的操作。
detach() :
自 |
3.0.0 |
---|---|
抛出 |
|
响应
空
enqueueMessage
将系统消息排队。
enqueueMessage( msg, type = self::MSG_INFO) :
自 |
4.0.0 |
---|
参数
- 消息
string
要排队的消息。- 类型
string
消息类型。
响应
空
execute
执行守护程序。
execute() :
自 |
1.7.0 |
---|
响应
空
fork
用于分叉进程的方法。
fork() :
自 |
1.7.0 |
---|---|
抛出 |
|
响应
int
对父进程的子进程 ID,对子进程的子进程为零。
gc
用于执行基本垃圾回收和内存管理(在清除状态缓存方面)的方法。我们可能会在主循环中非常定期地调用此方法。
gc() :
自 |
1.7.0 |
---|
响应
空
getCliInput
获取 CLI 输入对象。
getCliInput() : \Joomla\CMS\Application\CLI\CliInput
getConfig
检索应用程序配置对象。
getConfig() : \Joomla\Registry\Registry
自 |
4.0.0 |
---|
响应
注册表
getContainer
获取 DI 容器。
getContainer() : \Joomla\DI\Container
自 |
4.0.0 |
---|---|
抛出 |
|
响应
容器
getDispatcher
获取事件调度程序。
getDispatcher() : \Joomla\Event\DispatcherInterface
自 |
4.0.0 |
---|---|
抛出 |
|
响应
DispatcherInterface
getInput
用于获取应用程序输入对象的方法。
getInput() : \Joomla\Input\Input
自 |
4.0.0 |
---|
响应
输入
getInstance
返回对全局 CliApplication 对象的引用,仅当它不存在时才会创建它。
getInstance( name = null) : \Joomla\CMS\Application\CliApplication
此方法必须以以下方式调用:$cli = CliApplication::getInstance();
自 |
1.7.0 |
---|---|
已弃用 |
4.0 将在 6.0 中删除 通过容器或通过工厂加载应用程序 例如:Factory::getContainer()->get(CliApplication::class) |
抛出 |
|
参数
- 名称
string
要实例化的 Application Cli 类的名称(可选)。
响应
getLanguage
用于获取应用程序语言对象的方法。
getLanguage() : \Joomla\CMS\Language\Language
getLogger
获取记录器。
getLogger() : \Psr\Log\LoggerInterface
自 |
4.0.0 |
---|
响应
LoggerInterface
getMessageQueue
获取系统消息队列。
getMessageQueue() : mixed||string|int
自 |
4.0.0 |
---|
响应
array<string|int, mixed>
系统消息队列。
getSession
用于获取应用程序会话对象的方法。
getSession() : \Joomla\Session\SessionInterface
自 |
4.0.0 |
---|
响应
SessionInterface
会话对象
in
从标准输入获取值。
in() :
自 |
4.0.0 |
---|
响应
string
来自标准输入的输入字符串。
isActive
检查守护程序是否处于活动状态。这并不假设 $this 守护程序处于活动状态,而仅假设应用程序的实例作为守护程序处于活动状态。
isActive() :
自 |
1.7.0 |
---|
响应
bool
如果守护程序处于活动状态,则为 True。
isCli
应用程序实例是 CLI 还是基于 Web 的应用程序的标志。
isCli() :
辅助函数,您应该使用本机 PHP 函数来检测它是否为 CLI 应用程序。
自 |
4.0.0 |
---|---|
已弃用 |
4.0 将在 6.0 中删除 将被删除,无需替换 |
响应
布尔值
isClient
按名称检查客户端接口。
isClient( identifier) :
自 |
4.0.0 |
---|
参数
- 标识符
string
应用程序接口的字符串标识符
响应
bool
如果此应用程序是给定类型客户端接口,则为 True。
loadConfiguration
将对象或数组加载到应用程序配置对象中。
loadConfiguration( data) : \Joomla\CMS\Application\DaemonApplication
loadExtension
加载扩展。
loadExtension( type, extensionName, extensionPath) : \Joomla\CMS\Extension\ComponentInterface|\Joomla\CMS\Extension\ModuleInterface|\Joomla\CMS\Extension\PluginInterface
自 |
4.0.0 |
---|
参数
- 类型
string
扩展类型- 扩展名称
string
扩展名称- 扩展路径
string
扩展的路径
响应
loadIdentity
允许应用程序加载自定义或默认身份。
loadIdentity(\Joomla\CMS\User\User identity = null) :
loadPluginFromFilesystem
从文件系统创建 CMS 插件。
loadPluginFromFilesystem( plugin, type) : \Joomla\CMS\Plugin\CMSPlugin
out
将字符串写入标准输出。
out( text = '', nl = true) :
自 |
4.0.0 |
---|
参数
- 文本
string
要显示的文本。- nl
bool
True(默认)在输出字符串末尾追加一个新行。
响应
$this
pcntlChildExitStatus
用于返回已终止子进程的退出代码的方法。
pcntlChildExitStatus( status) :
参见 | pcntl_wexitstatus() |
---|---|
自 |
1.7.3 |
参数
- 状态
int
状态参数是对 pcntl_waitpid() 的成功调用提供的状态参数。
响应
int
子进程退出代码。
pcntlFork
用于返回已终止子进程的退出代码的方法。
pcntlFork() :
参见 | pcntl_fork() |
---|---|
自 |
1.7.3 |
响应
int
成功时,子进程的 PID 将返回到父线程的执行中,并在子线程的执行中返回 0。失败时,父线程的上下文中将返回 -1,不会创建子进程,并将引发 PHP 错误。
pcntlSignal
用于安装信号处理程序的方法。
pcntlSignal( signal, Warning: Array to string conversion in /opt/phpdoc/vendor/twig/twig/src/Extension/CoreExtension.php on line 768 |Array handler, restart = true) :
参见 | pcntl_signal() |
---|---|
自 |
1.7.3 |
参数
- signal
int
信号编号。- 处理程序
callable
信号处理程序,它可以是用户创建函数或方法的名称,也可以是两个全局常量 SIG_IGN 或 SIG_DFL 中的任何一个。- restart
bool
指定当此信号到达时是否应使用系统调用重新启动。
响应
bool
成功时为 True。
pcntlWait
用于等待或返回分叉子进程状态的方法。
pcntlWait( &status, options) :
参见 | pcntl_wait() |
---|---|
自 |
1.7.3 |
参数
- 状态
int
状态信息。- 选项
int
如果您的系统上可用 wait3(主要是 BSD 风格的系统),您可以提供可选的 options 参数。
响应
int
已退出的子进程的进程 ID,如果 WNOHANG 被提供为选项(在支持 wait3 的系统上),并且没有子进程可用,则为 -1 错误或零。
postFork
用于处理分叉后触发 onFork 事件的方法。
postFork() :
自 |
3.0.0 |
---|
响应
空
registerEvent
向特定事件组注册一个处理程序。
registerEvent( event, Warning: Array to string conversion in /opt/phpdoc/vendor/twig/twig/src/Extension/CoreExtension.php on line 768 |Array handler) :
自 |
4.0.0 |
---|
参数
- 事件
string
事件名称。- 处理程序
callable
处理程序,函数或事件对象的实例。
响应
$this
restart
重新启动守护程序进程。
restart() :
自 |
1.7.0 |
---|
响应
空
setOutput
设置输出对象。
setOutput(\Joomla\CMS\Application\CLI\CliOutput output) :
setupSignalHandlers
将 DaemonApplication 信号处理程序附加到已知信号的方法。应用程序可以通过使用 pcntl_signal() 函数并附加不同的回调方法来覆盖这些处理程序。
setupSignalHandlers() :
自 |
1.7.0 |
---|---|
参见 | pcntl_signal() |
响应
布尔值
shutdown
关闭守护进程并选择性地重新启动它的方法。
shutdown( restart = false) :
自 |
1.7.0 |
---|
参数
- restart
bool
在退出时重新启动守护进程为真。
响应
空
signal
处理 POSIX 信号的方法。
signal( signal) :
自 |
1.7.0 |
---|---|
参见 | pcntl_signal() |
抛出 |
|
参数
- signal
int
接收到的 POSIX 信号。
响应
空
stop
停止守护进程。
stop() :
自 |
1.7.0 |
---|
响应
空
triggerEvent
调用与事件组关联的所有处理程序。
triggerEvent( eventName, array|\Joomla\Event\Event args = []) : mixed||string|int
这是一个遗留方法,它实现了旧式(Joomla! 3.x)插件调用。最好直接通过调度程序处理返回的 EventInterface 对象,而不是通过此方法。此方法已弃用,将在 Joomla! 5.x 中移除。
此方法将仅返回事件的“result”参数
自 |
4.0.0 |
---|---|
抛出 |
|
已弃用 |
4.0 将在 6.0 中删除 使用调度程序方法代替 示例:Factory::getApplication()->getDispatcher()->dispatch($eventName, $event); |
参数
- eventName
string
事件名称。- args
array<string|int, mixed>|Event
参数数组或事件对象(可选)。
响应
array<string|int, mixed>
来自每个函数调用的结果数组。注意,如果未设置调度程序,则此数组将为空。
writeProcessIdFile
将进程 ID 文件写入磁盘的方法。
writeProcessIdFile() :
自 |
1.7.0 |
---|
响应
布尔值
属性
输入
输入。
自 |
4.0.0 |
---|
类型
输入
messages
应用程序消息队列。
自 |
4.0.0 |
---|
类型
array<string|int, mixed>
signals
默认情况下可被捕获的可用 POSIX 信号。
链接 | |
---|---|
自 |
1.7.0 |
类型
array<string|int, mixed>
exiting
如果守护进程正在退出,则为真。
自 |
1.7.0 |
---|
类型
布尔值
parentId
父进程 ID。
自 |
3.0.0 |
---|
类型
int
processId
守护进程的进程 ID。
自 |
1.7.0 |
---|
类型
int
running
如果守护进程当前正在运行,则为真。
自 |
1.7.0 |
---|
类型
布尔值