PHP Class Airship\Engine\Continuum\Installer

This facilitates the installation process of a new Cabin, Gadget, or Motif.
Inheritance: use trait SupplierBolt, use trait LogBolt
Show file Open project: paragonie/airship Class Usage Examples

Protected Properties

Property Type Description
$bypassSecurityAndJustInstall boolean
$continuumLogger Log
$ext
$hail Hail
$localInstallFile InstallFile
$package string
$supplier Supplier
$type string

Public Methods

Method Description
__construct ( Hail $hail = null, string $supplier = '', string $package = '' ) Installer constructor.
bypassSecurityAndJustInstall ( boolean $set = false ) : self This is for manual installations and update scripts. It should never be invoked automatically.
clearCache ( ) : boolean We just need to clear the template caches and the cabin data.
download ( array $update = [] ) : InstallFile Download the file from the update server.
easyInstall ( ) : boolean Attempts to download and install in one go.
expandCabinName ( string $cabinName ) : string Is this a special Airship cabin? Return just the name.
getLogContext ( InstallFile $installFile ) : array Get information for logging purposes
getPackageData ( string $minVersion = '' ) : array Get metadata about the package we're installing.
install ( InstallFile $fileInfo ) : boolean Install the file. This is type-specific, so we leave it abstract here.
markPackageInstalled ( InstallFile $install ) : boolean Somewhat self-explanatory. This just sets the 'installed' column in the database to 'TRUE' so our web UI knows that it's installed.
useLocalInstallFile ( string $path, string $version = '' ) : self For CLI usage: Bypass the download process, use a local file instead.
verifyChecksum ( InstallFile $file ) : boolean Verify that the file has not modified since it was stored
verifyMerkleRoot ( InstallFile $file ) : boolean Verifies that the Merkle root exists, matches this package and version, and has the same checksum as the one we calculated.
verifySignature ( InstallFile $file ) : boolean Verify that the signature matches

Protected Methods

Method Description
getChannel ( string $name ) : Channel Get the channels (cache across all instances of Installer)

Method Details

__construct() public method

Installer constructor.
public __construct ( Hail $hail = null, string $supplier = '', string $package = '' )
$hail Hail
$supplier string
$package string

bypassSecurityAndJustInstall() public method

This is for manual installations and update scripts. It should never be invoked automatically.
public bypassSecurityAndJustInstall ( boolean $set = false ) : self
$set boolean
return self

clearCache() public method

We just need to clear the template caches and the cabin data.
public clearCache ( ) : boolean
return boolean

download() public method

Download the file from the update server.
public download ( array $update = [] ) : InstallFile
$update array
return InstallFile

easyInstall() public method

Attempts to download and install in one go.
public easyInstall ( ) : boolean
return boolean Was it successful?

expandCabinName() public method

Otherwise, return the namespace.
public expandCabinName ( string $cabinName ) : string
$cabinName string
return string

getChannel() protected method

Get the channels (cache across all instances of Installer)
protected getChannel ( string $name ) : Channel
$name string
return Channel

getLogContext() public method

Get information for logging purposes
public getLogContext ( InstallFile $installFile ) : array
$installFile InstallFile
return array

getPackageData() public method

Get metadata about the package we're installing.
public getPackageData ( string $minVersion = '' ) : array
$minVersion string
return array

install() abstract public method

Install the file. This is type-specific, so we leave it abstract here.
abstract public install ( InstallFile $fileInfo ) : boolean
$fileInfo InstallFile
return boolean

markPackageInstalled() public method

Somewhat self-explanatory. This just sets the 'installed' column in the database to 'TRUE' so our web UI knows that it's installed.
public markPackageInstalled ( InstallFile $install ) : boolean
$install InstallFile
return boolean

useLocalInstallFile() public method

For CLI usage: Bypass the download process, use a local file instead.
public useLocalInstallFile ( string $path, string $version = '' ) : self
$path string
$version string
return self

verifyChecksum() public static method

Verify that the file has not modified since it was stored
public static verifyChecksum ( InstallFile $file ) : boolean
$file InstallFile
return boolean

verifyMerkleRoot() public method

Verifies that the Merkle root exists, matches this package and version, and has the same checksum as the one we calculated.
public verifyMerkleRoot ( InstallFile $file ) : boolean
$file InstallFile
return boolean

verifySignature() public static method

Verify that the signature matches
public static verifySignature ( InstallFile $file ) : boolean
$file InstallFile
return boolean

Property Details

$bypassSecurityAndJustInstall protected property

protected bool $bypassSecurityAndJustInstall
return boolean

$continuumLogger protected static property

protected static Log,Airship\Engine\Continuum $continuumLogger
return Log

$ext protected property

protected $ext

$hail protected property

protected Hail $hail
return Hail

$localInstallFile protected property

protected InstallFile $localInstallFile
return InstallFile

$package protected property

protected string $package
return string

$supplier protected property

protected Supplier,Airship\Engine\Continuum $supplier
return Supplier

$type protected property

protected string $type
return string