Structure of a post-install script

The post-install script class must contain two methods, one named init(), and the other named run(). The init() method is called at the same time as all other post-install scripts. The run() method is called at the conclusion of each parameter group in order to process the user's responses to queries.

The init() method

boolean init ( PEAR_Config $config , PEAR_PackageFile_v2 $self , string|null $lastInstalledVersion )

PEAR_Config $xml

The current configuration used for installation.

PEAR_PackageFile_v2 $self

The package.xml contents as abstracted by this object.

string|NULL $lastInstalledVersion

The last version of this package that was installed. This is a very important parameter, as it is the only way to determine whether a package is being installed from scratch, or upgraded from a previous version. Using this parameter, it is possible to determine what incremental changes, if any, need to be performed.

The function has to return TRUE when initialization succeeded, FALSE when it failed. In the latter case, the post install script it stopped.

The run() method

void run ( array $infoArray , string $paramGroupId )

array $infoArray

if $paramGroupId is _undoOnError, then $infoArray will contain a list of successfully completed parameter group sections. This can be used to restore any system changes made by the installation script.

Otherwise, $infoArray contains the results of the user input from the most recent <paramgroup> section.

string $paramGroupId

This variable either contains _undoOnError or the contents of the most recent <paramgroup>'s <id> tag. Note that paramgroup id cannot begin with an underscore (_), and so _undoOnError can only be triggered by the PEAR installer.

Naming requirements for a post-install script PHP file (Previous) RFCs (Next)
Last updated: Fri, 19 Sep 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.