JApplicationDaemon

Extends \JApplicationCli

Class to turn JApplicationCli applications into daemons. It requires CLI and PCNTL support built into PHP.

link

https://secure.php.net/manual/en/book.pcntl.php

https://secure.php.net/manual/en/features.commandline.php

since

11.1

package

Joomla.Platform

Methods

__construct

Class constructor.

__construct(\Joomla\Input\Input $input = null, \Joomla\Registry\Registry $config = null) 
inherited
since

1.0

Arguments

$input

\Joomla\Input\InputAn optional argument to provide dependency injection for the application's input object. If the argument is an Input object that object will become the application's input object, otherwise a default input object is created.

$config

\Joomla\Registry\RegistryAn optional argument to provide dependency injection for the application's config object. If the argument is a Registry object that object will become the application's config object, otherwise a default config object is created.

changeIdentity

Method to change the identity of the daemon process and resources.

changeIdentity() : boolean
since

11.1

see \posix_setuid()

Response

booleanTrue if identity successfully changed

close

Method to close the application.

close(integer $code) : void
inherited
since

1.0

Arguments

$code

integerThe exit code (optional; default is 0).

daemonize

Method to put the application into the background.

daemonize() : boolean
since

11.1

throws

\RuntimeException

Response

boolean

detach

This is truly where the magic happens. This is where we fork the process and kill the parent process, which is essentially what turns the application into a daemon.

detach() : void
since

12.1

throws

\RuntimeException

doExecute

Method to run the application routines. Most likely you will want to instantiate a controller and execute it, or perform some sort of task directly.

doExecute() : void
inherited abstract
since

1.0

execute

Execute the application.

execute() : void
inherited
since

1.0

fetchConfigurationData

Method to load a PHP configuration class file based on convention and return the instantiated data object. You will extend this method in child classes to provide configuration data from whatever data source is relevant for your specific application.

fetchConfigurationData(string $file = '', string $class = 'JConfig') : mixed
inherited
since

11.1

Arguments

$file

stringThe path and filename of the configuration file. If not provided, configuration.php in JPATH_CONFIGURATION will be used.

$class

stringThe class name to instantiate.

Response

mixedEither an array or object to be loaded into the configuration object.

fork

Method to fork the process.

fork() : integer
since

11.1

throws

\RuntimeException

Response

integerThe child process id to the parent process, zero to the child process.

gc

Method to perform basic garbage collection and memory management in the sense of clearing the stat cache. We will probably call this method pretty regularly in our main loop.

gc() : void
since

11.1

get

Returns a property of the object or the default value if the property is not set.

get(string $key, mixed $default = null) : mixed
inherited
since

1.0

Arguments

$key

stringThe name of the property.

$default

mixedThe default value (optional) if none is set.

Response

mixedThe value of the configuration.

getIdentity

Get the application identity.

getIdentity() : mixed
inherited
since

12.1

Response

mixedA JUser object or null.

getInstance

Returns a reference to the global JApplicationCli object, only creating it if it doesn't already exist.

getInstance(string $name = null) : \JApplicationCli
inherited static

This method must be invoked as: $cli = JApplicationCli::getInstance();

since

11.1

Arguments

$name

stringThe name (optional) of the JApplicationCli class to instantiate.

Response

\JApplicationCli

getLogger

Get the logger.

getLogger() : \Psr\Log\LoggerInterface
inherited
since

1.0

Response

\Psr\Log\LoggerInterface

getOutput

Get an output object.

getOutput() : \Joomla\Application\Cli\CliOutput
inherited

in

Get a value from standard input.

in() : string
inherited
since

11.1

Response

stringThe input string from standard input.

initialise

Custom initialisation method.

initialise() : void
inherited

Called at the end of the AbstractApplication::__construct method. This is for developers to inject initialisation code for their application classes.

since

1.0

isActive

Check to see if the daemon is active. This does not assume that $this daemon is active, but only if an instance of the application is active as a daemon.

isActive() : boolean
since

11.1

Response

booleanTrue if daemon is active.

loadConfiguration

Load an object or array into the application configuration object.

loadConfiguration(mixed $data) : \JApplicationCli
inherited
since

11.1

Arguments

$data

mixedEither an array or object to be loaded into the configuration object.

Response

\JApplicationCliInstance of $this to allow chaining.

loadDispatcher

Allows the application to load a custom or default dispatcher.

loadDispatcher(\JEventDispatcher $dispatcher = null) : \JApplicationBase
inherited

The logic and options for creating this object are adequately generic for default cases but for many applications it will make sense to override this method and create event dispatchers, if required, based on more specific needs.

since

12.1

Arguments

$dispatcher

\JEventDispatcherAn optional dispatcher object. If omitted, the factory dispatcher is created.

Response

\JApplicationBaseThis method is chainable.

loadIdentity

Allows the application to load a custom or default identity.

loadIdentity(\JUser $identity = null) : \JApplicationBase
inherited

The logic and options for creating this object are adequately generic for default cases but for many applications it will make sense to override this method and create an identity, if required, based on more specific needs.

since

12.1

Arguments

$identity

\JUserAn optional identity object. If omitted, the factory user is created.

Response

\JApplicationBaseThis method is chainable.

out

Write a string to standard output.

out(string $text = '', boolean $nl = true) : \JApplicationCli
inherited
since

11.1

Arguments

$text

stringThe text to display.

$nl

booleanTrue (default) to append a new line at the end of the output string.

Response

\JApplicationCliInstance of $this to allow chaining.

pcntlChildExitStatus

Method to return the exit code of a terminated child process.

pcntlChildExitStatus(integer $status) : integer
see \pcntl_wexitstatus()
since

11.3

Arguments

$status

integerThe status parameter is the status parameter supplied to a successful call to pcntl_waitpid().

Response

integerThe child process exit code.

pcntlFork

Method to return the exit code of a terminated child process.

pcntlFork() : integer
see \pcntl_fork()
since

11.3

Response

integerOn success, the PID of the child process is returned in the parent's thread of execution, and a 0 is returned in the child's thread of execution. On failure, a -1 will be returned in the parent's context, no child process will be created, and a PHP error is raised.

pcntlSignal

Method to install a signal handler.

pcntlSignal(integer $signal, callable $handler, boolean $restart = true) : boolean
see \pcntl_signal()
since

11.3

Arguments

$signal

integerThe signal number.

$handler

callableThe signal handler which may be the name of a user created function, or method, or either of the two global constants SIG_IGN or SIG_DFL.

$restart

booleanSpecifies whether system call restarting should be used when this signal arrives.

Response

booleanTrue on success.

pcntlWait

Method to wait on or return the status of a forked child.

pcntlWait( &$status, integer $options) : integer
see \pcntl_wait()
since

11.3

Arguments

$status

$options

integerIf wait3 is available on your system (mostly BSD-style systems), you can provide the optional options parameter.

Response

integerThe process ID of the child which exited, -1 on error or zero if WNOHANG was provided as an option (on wait3-available systems) and no child was available.

postFork

Method to handle post-fork triggering of the onFork event.

postFork() : void
since

12.1

registerEvent

Registers a handler to a particular event group.

registerEvent(string $event, callable $handler) : \JApplicationBase
inherited
since

12.1

Arguments

$event

stringThe event name.

$handler

callableThe handler, a function or an instance of an event object.

Response

\JApplicationBaseThe application to allow chaining.

restart

Restart daemon process.

restart() : void
since

11.1

set

Modifies a property of the object, creating it if it does not already exist.

set(string $key, mixed $value = null) : mixed
inherited
since

1.0

Arguments

$key

stringThe name of the property.

$value

mixedThe value of the property to set (optional).

Response

mixedPrevious value of the property

setConfiguration

Sets the configuration for the application.

setConfiguration(\Joomla\Registry\Registry $config) : \Joomla\Application\AbstractApplication
inherited
since

1.0

Arguments

$config

\Joomla\Registry\RegistryA registry object holding the configuration.

Response

\Joomla\Application\AbstractApplicationReturns itself to support chaining.

setLogger

Set the logger.

setLogger(\Psr\Log\LoggerInterface $logger) : \Joomla\Application\AbstractApplication
inherited
since

1.0

Arguments

$logger

\Psr\Log\LoggerInterfaceThe logger.

Response

\Joomla\Application\AbstractApplicationReturns itself to support chaining.

setOutput

Set an output object.

setOutput(\Joomla\Application\Cli\CliOutput $output) : \JApplicationCli
inherited
since

3.3

Arguments

$output

\Joomla\Application\Cli\CliOutputCliOutput object

Response

\JApplicationCliInstance of $this to allow chaining.

setupSignalHandlers

Method to attach the JApplicationDaemon signal handler to the known signals. Applications can override these handlers by using the pcntl_signal() function and attaching a different callback method.

setupSignalHandlers() : boolean
since

11.1

see \pcntl_signal()

Response

boolean

shutdown

Method to shut down the daemon and optionally restart it.

shutdown(boolean $restart = false) : void
since

11.1

Arguments

$restart

booleanTrue to restart the daemon on exit.

signal

Method to handle POSIX signals.

signal(integer $signal) : void
static
since

11.1

see \pcntl_signal()
throws

\RuntimeException

Arguments

$signal

integerThe received POSIX signal.

stop

Stop daemon process.

stop() : void
since

11.1

triggerEvent

Calls all handlers associated with an event group.

triggerEvent(string $event, array $args = null) : array
inherited
since

12.1

Arguments

$event

stringThe event name.

$args

arrayAn array of arguments (optional).

Response

arrayAn array of results from each function call, or null if no dispatcher is defined.

writeProcessIdFile

Method to write the process id file out to disk.

writeProcessIdFile() : boolean
since

11.1

Response

boolean

Properties

signals

The available POSIX signals to be caught by default.

static

Type(s)

array

exiting

True if the daemon is in the process of exiting.

Type(s)

boolean

parentId

The parent process id.

Type(s)

integer

processId

The process id of the daemon.

Type(s)

integer

running

True if the daemon is currently running.

Type(s)

boolean

output

The output type.

inherited

instance

The application instance.

inherited static

dispatcher

The application dispatcher object.

inherited

identity

The application identity object.

inherited

Type(s)

\JUser

config

The application configuration object.

inherited

input

The application input object.

inherited

logger

A logger.

inherited

Type(s)

\Psr\Log\LoggerInterface

input

The application input object.

inherited

The application input object

Type(s)

\JInput