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
继承

4.0.0

参数

组件

string要启动的组件。

响应

ComponentInterface

bootModule

启动具有给定名称的模块。

bootModule( module,  applicationName) : \Joomla\CMS\Extension\ModuleInterface
继承

4.0.0

参数

模块

string要启动的模块

应用程序名称

string应用程序名称

响应

ModuleInterface

bootPlugin

启动具有给定名称和类型的插件。

bootPlugin( plugin,  type) : \Joomla\CMS\Extension\PluginInterface
继承

4.0.0

参数

插件

string插件名称

类型

string插件类型

响应

PluginInterface

changeIdentity

用于更改守护程序进程和资源身份的方法。

changeIdentity() : 

1.7.0

参见 posix_setuid()

响应

bool如果身份成功更改,则为 True

createExtensionNamespaceMap

允许应用程序加载自定义或默认身份。

createExtensionNamespaceMap() : 
继承

4.0.0

响应

daemonize

用于将应用程序置于后台的方法。

daemonize() : 

1.7.0

抛出

RuntimeException

响应

布尔值

detach

这是真正发生魔术的地方。在这里,我们分叉进程并杀死父进程,这本质上就是将应用程序转换为守护程序的操作。

detach() : 

3.0.0

抛出

RuntimeException

响应

enqueueMessage

将系统消息排队。

enqueueMessage( msg,  type = self::MSG_INFO) : 
继承

4.0.0

参数

消息

string要排队的消息。

类型

string消息类型。

响应

execute

执行守护程序。

execute() : 

1.7.0

响应

fork

用于分叉进程的方法。

fork() : 

1.7.0

抛出

RuntimeException

响应

int对父进程的子进程 ID,对子进程的子进程为零。

gc

用于执行基本垃圾回收和内存管理(在清除状态缓存方面)的方法。我们可能会在主循环中非常定期地调用此方法。

gc() : 

1.7.0

响应

getCliInput

获取 CLI 输入对象。

getCliInput() : \Joomla\CMS\Application\CLI\CliInput
继承

4.0.0

响应

CliInput

getConfig

检索应用程序配置对象。

getConfig() : \Joomla\Registry\Registry
继承

4.0.0

响应

注册表

getContainer

获取 DI 容器。

getContainer() : \Joomla\DI\Container
继承 抽象

4.0.0

抛出

ContainerNotFoundException如果未设置容器,则可能会抛出。

响应

容器

getDispatcher

获取事件调度程序。

getDispatcher() : \Joomla\Event\DispatcherInterface
继承 抽象

4.0.0

抛出

UnexpectedValueException如果未设置调度程序,则可能会抛出。

响应

DispatcherInterface

getIdentity

获取应用程序身份。

getIdentity() : \Joomla\CMS\User\User
继承

4.0.0

响应

用户

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)

抛出

RuntimeException

参数

名称

string要实例化的 Application Cli 类的名称(可选)。

响应

CliApplication

getLanguage

用于获取应用程序语言对象的方法。

getLanguage() : \Joomla\CMS\Language\Language
继承

4.0.0

响应

Language语言对象

getLogger

获取记录器。

getLogger() : \Psr\Log\LoggerInterface
继承 抽象

4.0.0

响应

LoggerInterface

getMessageQueue

获取系统消息队列。

getMessageQueue() : mixed||string|int
继承

4.0.0

响应

array<string|int, mixed>系统消息队列。

getOutput

获取输出对象。

getOutput() : \Joomla\CMS\Application\CLI\CliOutput
继承

4.0.0

响应

CliOutput

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

1.7.0

参数

数据

mixed要加载到配置对象的数组或对象。

响应

DaemonApplication允许链式操作的 $this 实例。

loadExtension

加载扩展。

loadExtension( type,  extensionName,  extensionPath) : \Joomla\CMS\Extension\ComponentInterface|\Joomla\CMS\Extension\ModuleInterface|\Joomla\CMS\Extension\PluginInterface
继承

4.0.0

参数

类型

string扩展类型

扩展名称

string扩展名称

扩展路径

string扩展的路径

响应

ComponentInterface|ModuleInterface|PluginInterface

loadIdentity

允许应用程序加载自定义或默认身份。

loadIdentity(\Joomla\CMS\User\User identity = null) : 
继承

4.0.0

参数

身份

User一个可选的身份对象。如果省略,则会创建一个空用户对象。

响应

$this

loadPluginFromFilesystem

从文件系统创建 CMS 插件。

loadPluginFromFilesystem( plugin,  type) : \Joomla\CMS\Plugin\CMSPlugin
继承

4.0.0

参数

插件

string插件

类型

string类型

响应

CMSPlugin

out

将字符串写入标准输出。

out( text = '',  nl = true) : 
继承

4.0.0

参数

文本

string要显示的文本。

nl

boolTrue(默认)在输出字符串末尾追加一个新行。

响应

$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) : 
继承

3.3

参数

输出

CliOutputCliOutput 对象

响应

$this

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()
抛出

RuntimeException

参数

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

抛出

InvalidArgumentException

已弃用

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

类型

用户

输出

输出对象

继承

4.0.0

类型

CliOutput

输入

输入。

继承

4.0.0

类型

输入

cliInput

CLI 输入对象

继承

4.0.0

类型

CliInput

language

应用程序语言对象。

继承

4.0.0

类型

语言

messages

应用程序消息队列。

继承

4.0.0

类型

array<string|int, mixed>

instance

应用程序实例。

继承 静态

1.7.0

类型

CliApplication

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

类型

布尔值