Class: I2CE Configurator: Difference between revisions

From IHRIS Wiki
No edit summary
No edit summary
Line 58: Line 58:
===__construct()===
===__construct()===
Constructor
Constructor
then a simple MagicData and config storage object using
MagicDataStorageMem will be set up.
*Signature: public function __construct($storage,$set_last_access)
*Signature: public function __construct($storage,$set_last_access)
Parameters:
*Parameters:
* [[Class: I2CE_MagicData | I2CE_MagicData]] $storage<br/>if none is passed in,
** [[Class: I2CE_MagicData | I2CE_MagicData]] $storage <br/>if none is passed in, then a simple MagicData and config storage object using MagicDataStorageMem will be set up.
**Default Value: null
***Default Value: null
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $set_last_access
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $set_last_access
**Default Value: true
***Default Value: true
===__destruct()===
===__destruct()===
*Signature: public function __destruct()
*Signature: public function __destruct()
===checkForConflicts()===
===checkForConflicts()===
*Signature: protected function checkForConflicts($requirements,$enabled_modules)
*Signature: protected function checkForConflicts($requirements,$enabled_modules)
Parameters:
*Parameters:
*$requirements  
*$requirements  
*$enabled_modules  
*$enabled_modules  
===checkRequirements()===
===checkRequirements()===
Checks the requirements.  if all requirements are met and
Checks the requirements.  if all requirements are met and there are no conflicts, it returns a list of those that need to be installed, an empty array() if none are needed. On failure returns null. @param array $shortnames an array of shortnames @param array $remove an array of potential shortnames to remove -- if we did not find them somplace else. (it may have just been moved) defaults to an empty array.
there are no conflicts, it returns a list of those that
need to be installed, an empty array() if none are needed.
On failure returns null.
 
@param array $shortnames an array of shortnames
 
shortnames of modules to disable.  Defaults to empty array
 
@param array $remove an array of potential shortnames to
remove -- if we did not find them somplace else. (it may
have just been moved) defaults to an empty array.
 
enabled modules -- we check for conflicts against this
array
 
shortnames of required modules -- if a module is set to be
updated and it is not required by on of the modules in this
array, it will be set as an optional modules.  Defaults to
the empty array
*Signature: public function checkRequirements($updates,$disables,$removals,$enabled_modules,$required_modules)
*Signature: public function checkRequirements($updates,$disables,$removals,$enabled_modules,$required_modules)
*Returns: array.  Keys are:
*Parameters:
'failure'      -  string with the reason for failture
'requirements' -  array which has as keys shortnames and
values files for the requirements.
'removals'    -  array of shortnames that need to be removed.
'optional'    -  array with key shortnames and value true
'moved'        -  array with key  shortnames and value true
Parameters:
*$updates  
*$updates  
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $disables<br/>a shortname or an array of
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $disables <br/>a shortname or an array of shortnames of modules to disable.  Defaults to empty array
**Default Value: array()
***Default Value: array()
*$removals  
*$removals  
**Default Value: array()
***Default Value: array()
* [http://www.php.net/manual/en/language.types.array.php array ] $enabled_modules<br/>An array of shortnames of
** [http://www.php.net/manual/en/language.types.array.php array ] $enabled_modules <br/>An array of shortnames of enabled modules -- we check for conflicts against this array
**Default Value: array()
***Default Value: array()
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $required_modules<br/>A shortname or an array of
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $required_modules <br/>A shortname or an array of shortnames of required modules -- if a module is set to be updated and it is not required by on of the modules in this array, it will be set as an optional modules.  Defaults to the empty array
**Default Value: array()
***Default Value: array()
*Returns: array.<br/>Keys are: 'failure'      -  string with the reason for failture 'requirements' -  array which has as keys shortnames and values files for the requirements. 'removals'    -  array of shortnames that need to be removed. 'optional'    -  array with key shortnames and value true 'moved'        -  array with key  shortnames and value true
===extRequirements()===
===extRequirements()===
Get a list of External dependencies for the module
Get a list of External dependencies for the module
*Signature: public function extRequirements($module)
*Signature: public function extRequirements($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] List of requirement objects
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of requirement objects
===findAvailableConfigs()===
===findAvailableConfigs()===
Searches the system for available configuration files (if
Searches the system for available configuration files (if not done already) and stores them in the given I2CE_MagicData @param I2CE_FileSearch A file search to use for modules. If null(default) uses I2CE::getFileSearch()
not done already) and stores them in the given I2CE_MagicData
 
@param I2CE_FileSearch A file search to use for modules.
If null(default) uses I2CE::getFileSearch()
 
checks the module paths of the currently enabled modules.
If true, checks the module paths of all modules which are
either enabled or disabled.
 
extensions which we wish to test if they are a config
file. Defaults to the empty array in which case we look for
files with the 'xml' extension and any additional
extensions registered under
I2CE::getConfig()->config->additional_configuration_extensions
 
and this is set, we only add in the directories which are
subdirectorues of $limit_to_subdir (check is by string
comparision)
*Signature: public function findAvailableConfigs($file_search,$deep,$extensions,$limit_to_subdir,$verbose_errors)
*Signature: public function findAvailableConfigs($file_search,$deep,$extensions,$limit_to_subdir,$verbose_errors)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] of string the list of shortnames found
*Parameters:
Parameters:
*$file_search  
*$file_search  
**Default Value: null
***Default Value: null
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep<br/>Defaults to false.  If false, only
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep <br/>Defaults to false.  If false, only checks the module paths of the currently enabled modules. If true, checks the module paths of all modules which are either enabled or disabled.
**Default Value: false
***Default Value: false
* [http://www.php.net/manual/en/language.types.array.php array ] $extensions<br/>An array containing file
** [http://www.php.net/manual/en/language.types.array.php array ] $extensions <br/>An array containing file extensions which we wish to test if they are a config file. Defaults to the empty array in which case we look for files with the 'xml' extension and any additional extensions registered under I2CE::getConfig()->config->additional_configuration_extensions
**Default Value: array()
***Default Value: array()
* [http://www.php.net/manual/en/language.types.string.php string ] $limit_to_subdir<br/>If $file_search is given
** [http://www.php.net/manual/en/language.types.string.php string ] $limit_to_subdir <br/>If $file_search is given and this is set, we only add in the directories which are subdirectorues of $limit_to_subdir (check is by string comparision)
**Default Value: ''
***Default Value: ''
*$verbose_errors  
*$verbose_errors  
**Default Value: false
***Default Value: false
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>of string the list of shortnames found
===findPotentialConfigs()===
===findPotentialConfigs()===
Return a list of potential configuration files.  "Potential
Return a list of potential configuration files.  "Potential config files" are those whose extension matches the regular expression. @param array @returns
config files" are those whose extension matches the regular
expression.
 
@param array
@returns
*Signature: private function findPotentialConfigs($extensions,$file_search)
*Signature: private function findPotentialConfigs($extensions,$file_search)
Parameters:
*Parameters:
*$extensions  
*$extensions  
*$file_search  
*$file_search  
===flattenRequirements()===
===flattenRequirements()===
*Signature: protected function flattenRequirements($requirementDOM)
*Signature: protected function flattenRequirements($requirementDOM)
Parameters:
*Parameters:
*$requirementDOM  
*$requirementDOM  
===getAvailableModules()===
===getAvailableModules()===
Scan a directory for available modules.
Scan a directory for available modules.
*Signature: public function getAvailableModules($search_dirs,$limit_search,$rescan,$verbose)
*Signature: public function getAvailableModules($search_dirs,$limit_search,$rescan,$verbose)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]                  List of modules found
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.array.php array ] $search_dirs <br/>List of Directories to search
* [http://www.php.net/manual/en/language.types.array.php array ] $search_dirs<br/>List of Directories to search
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $limit_search <br/>Don't scan by depth      (true)
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $limit_search<br/>Don't scan by depth      (true)
***Default Value: true
**Default Value: true
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $rescan <br/>Whether to force a rescan (false)
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $rescan<br/>Whether to force a rescan (false)
***Default Value: false
**Default Value: false
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose <br/>Verbose errors            (false)
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose<br/>Verbose errors            (false)
***Default Value: false  
**Default Value: false  
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of modules found
===getConflicts()===
===getConflicts()===
For a given module, find a list of conflicting modules.
For a given module, find a list of conflicting modules.
*Signature: private function getConflicts($module)
*Signature: private function getConflicts($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] List of conflicts
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of conflicts
===getDefaultExtensions()===
===getDefaultExtensions()===
*Signature: private function getDefaultExtensions()
*Signature: private function getDefaultExtensions()
Line 190: Line 139:
Gets information about the dependecies for a module
Gets information about the dependecies for a module
*Signature: public function getDependencyList($module)
*Signature: public function getDependencyList($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] indexed by 'requirements', 'conflicts'
*Parameters:
'enable', 'path', and 'badness' where 'badness' is an array of
** [http://www.php.net/manual/en/language.types.string.php string ] $module
strings of error messages and the other are arrays of
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>indexed by 'requirements', 'conflicts' 'enable', 'path', and 'badness' where 'badness' is an array of strings of error messages and the other are arrays of shortnames
shortnames
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module
===getDependsList()===
===getDependsList()===
Gets the list of modules depending on the specified module.
Gets the list of modules depending on the specified module.
*Signature: public function getDependsList($shortname)
*Signature: public function getDependsList($shortname)
Parameters:
*Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $shortname<br/>The shortname of a module
** [http://www.php.net/manual/en/language.types.string.php string ] $shortname <br/>The shortname of a module
===getDescription()===
===getDescription()===
Returns a brief one-line description of the module.
Returns a brief one-line description of the module.
*Signature: public function getDescription($module)
*Signature: public function getDescription($module)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>name
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>name
===getEnabled()===
===getEnabled()===
Get enabled sub-modules
Get enabled sub-modules
*Signature: private function getEnabled($module)
*Signature: private function getEnabled($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]   List of enabled submodules
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of enabled submodules
===getHash()===
===getHash()===
Get the hash of the contents of the last processConfifFile.
Get the hash of the contents of the last processConfifFile.
*Signature: public function getHash()
*Signature: public function getHash()
*Returns: mixed. String, the hash, if the last config file
*Returns: mixed.<br/>String, the hash, if the last config file loaded successfully.  false if the last config file did not load succesully.  null if there was never a config file processed.
loaded successfully.  false if the last config file did not
load succesully.  null if there was never a config file
processed.
===getI2CERoot()===
===getI2CERoot()===
*Signature: public function getI2CERoot()
*Signature: public function getI2CERoot()
Line 225: Line 168:
Returns a longer description of the module.
Returns a longer description of the module.
*Signature: public function getLongDescription($module)
*Signature: public function getLongDescription($module)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>name
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>name
===getMaxChildOrder()===
===getMaxChildOrder()===
*Signature: protected function getMaxChildOrder($node,$xpath)
*Signature: protected function getMaxChildOrder($node,$xpath)
Parameters:
*Parameters:
*$node  
*$node  
*$xpath  
*$xpath  
===getMerges()===
===getMerges()===
Get the magic data paths whose status we are tracking.
Get the magic data paths whose status we are tracking. $retrurns array.  Keys are magic data paths, values are the merge type
$retrurns array.  Keys are magic data paths, values are the merge type
*Signature: public function getMerges()
*Signature: public function getMerges()
===getModuleDir()===
===getModuleDir()===
Return the directory of the module
Return the directory of the module
*Signature: public function getModuleDir($module)
*Signature: public function getModuleDir($module)
*Returns: [http://www.php.net/manual/en/language.types.string.php string ] Path to config file.
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
***Default Value: null
**Default Value: null
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]<br/>Path to config file.
===getModuleFileList()===
===getModuleFileList()===
Get a list of files for a given module
Get a list of files for a given module
*Signature: public function getModuleFileList($module)
*Signature: public function getModuleFileList($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]   List of files in the module.  Paths are
*Parameters:
relative to the directory where the
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>The module name
module's configuration file is.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of files in the module.  Paths are relative to the directory where the module's configuration file is.
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>The module name
===getModuleFileMap()===
===getModuleFileMap()===
Get a list of each files under each path.
Get a list of each files under each path.
*Signature: public function getModuleFileMap($module)
*Signature: public function getModuleFileMap($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] List of file maps in the module.  Paths are
*Parameters:
relative to the directory where the
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>The module name
module's configuration file is.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of file maps in the module.  Paths are relative to the directory where the module's configuration file is. @todo Contains a hack for the special case where CLASSES directory is ./
@todo Contains a hack for the special case where CLASSES directory is ./
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>The module name
===getModulePath()===
===getModulePath()===
Return the path to the module configuration file
Return the path to the module configuration file
*Signature: public function getModulePath($module)
*Signature: public function getModulePath($module)
*Returns: [http://www.php.net/manual/en/language.types.string.php string ] Path to config file.
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]<br/>Path to config file.
===getModulePathList()===
===getModulePathList()===
*Signature: public function getModulePathList($module)
*Signature: public function getModulePathList($module)
Parameters:
*Parameters:
*$module  
*$module  
===getNextUnchecked()===
===getNextUnchecked()===
*Signature: protected function getNextUnchecked($requirementDOM)
*Signature: protected function getNextUnchecked($requirementDOM)
Parameters:
*Parameters:
*$requirementDOM  
*$requirementDOM  
===getPackageAuthors()===
===getPackageAuthors()===
Returns a longer description of the module.
Returns a longer description of the module.
*Signature: public function getPackageAuthors($module)
*Signature: public function getPackageAuthors($module)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>name
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>name
===getRequirements()===
===getRequirements()===
Get a list of requirements for the module
Get a list of requirements for the module
*Signature: private function getRequirements($module)
*Signature: private function getRequirements($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] List of required modules.
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of required modules.
===getRoot()===
===getRoot()===
Get the root of where this I2CE instance started.
Get the root of where this I2CE instance started.
*Signature: public function getRoot()
*Signature: public function getRoot()
*Returns: the fully resolved path to the starting directory
*Returns: the<br/>fully resolved path to the starting directory
===getStorage()===
===getStorage()===
Get the magic data node storage for the configurator
Get the magic data node storage for the configurator
Line 296: Line 233:
*Returns: [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]]
*Returns: [[Class: I2CE_MagicDataNode | I2CE_MagicDataNode]]
===getTopModule()===
===getTopModule()===
Find the top-level module in a directory.  (e.g. I2CE,
Find the top-level module in a directory.  (e.g. I2CE, ihris-common, ihris-manage)
ihris-common, ihris-manage)
 
 
@return
*Signature: public function getTopModule($d,$verbose)
*Signature: public function getTopModule($d,$verbose)
Parameters:
*Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $d<br/>Directory to check
** [http://www.php.net/manual/en/language.types.string.php string ] $d <br/>Directory to check
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose @return
**Default Value: false
***Default Value: false
===getVersion()===
===getVersion()===
Return the version for a given module
Return the version for a given module
*Signature: public function getVersion($module)
*Signature: public function getVersion($module)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>name
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>name
===importLocalizedTemplates()===
===importLocalizedTemplates()===
*Signature: public function importLocalizedTemplates($localized)
*Signature: public function importLocalizedTemplates($localized)
Parameters:
*Parameters:
*$localized  
*$localized  
**Default Value: array()
***Default Value: array()
===isReq()===
===isReq()===
Determine if this object is a I2CE_MagicDataNode that can
Determine if this object is a I2CE_MagicDataNode that can be used as a requirement. @param mixed $string
be used as a requirement.
@param mixed $string
*Signature: private function isReq($req)
*Signature: private function isReq($req)
*Parameters:
*$req
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
Parameters:
*$req
===loadConfigFile()===
===loadConfigFile()===
Load a config file with various extensions.
Load a config file with various extensions.
*Signature: protected function loadConfigFile($file,$verbose_errors)
*Signature: protected function loadConfigFile($file,$verbose_errors)
*Returns: booolean true on success
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $file <br/>Path to the config file
* [http://www.php.net/manual/en/language.types.string.php string ] $file<br/>Path to the config file
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose_errors <br/>(true)
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose_errors<br/>(true)
***Default Value: true
**Default Value: true
*Returns: booolean<br/>true on success
===moduleConflicts()===
===moduleConflicts()===
Checks to see if a module conflicts with  by another module
Checks to see if a module conflicts with  by another module
requirements (true)
*Signature: public function moduleConflicts($module,$version,$conflicts,$deep)
*Signature: public function moduleConflicts($module,$version,$conflicts,$deep)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check
** [http://www.php.net/manual/en/language.types.string.php string ] $version <br/>Version of the module
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $conflicts <br/>Module name or an array of module names
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep <br/>Whether to recursively check the requirements (true)
***Default Value: true
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check
* [http://www.php.net/manual/en/language.types.string.php string ] $version<br/>Version of the module
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $conflicts<br/>Module name or an array of module names
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep<br/>Whether to recursively check the
**Default Value: true
===moduleRequires()===
===moduleRequires()===
Checks to see if a module is required by another module
Checks to see if a module is required by another module
check requirements of requiremnets of requirements of ...
*Signature: public function moduleRequires($module,$version,$requirements,$deep,$cat)
*Signature: public function moduleRequires($module,$version,$requirements,$deep,$cat)
*Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module
** [http://www.php.net/manual/en/language.types.string.php string ] $version
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $requirements <br/>a module name or an array of module names
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep <br/>Defaults to true meaning we should check requirements of requiremnets of requirements of ...
***Default Value: true
*$cat
***Default Value: 'requirement'
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
*Returns: [http://www.php.net/manual/en/language.types.boolean.php boolean ]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module
* [http://www.php.net/manual/en/language.types.string.php string ] $version
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $requirements<br/>a module name or an array of module names
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $deep<br/>Defaults to true meaning we should
**Default Value: true
*$cat
**Default Value: 'requirement'
===processConfig()===
===processConfig()===
*Signature: public function processConfig($process_configuration,$verbose_errors,$process_meta,$localized)
*Signature: public function processConfig($process_configuration,$verbose_errors,$process_meta,$localized)
Parameters:
*Parameters:
*$process_configuration  
*$process_configuration  
**Default Value: false
***Default Value: false
*$verbose_errors  
*$verbose_errors  
**Default Value: true
***Default Value: true
*$process_meta  
*$process_meta  
**Default Value: true
***Default Value: true
*$localized  
*$localized  
**Default Value: array()
***Default Value: array()
===processConfigFile()===
===processConfigFile()===
Loads in a config file and validates it against its
Loads in a config file and validates it against its referenced DTD.  Sets the access time and the shortname (provided in the metadata) for the file.  If there is already a config file with the same shortname, it will remove that fro the list of the config files.  Save all the configuration metadata under $storage->$shortname where $shortname is the shortname provided for by the config file.
referenced DTD.  Sets the access time and the shortname
(provided in the metadata) for the file.  If there is
already a config file with the same shortname, it will
remove that fro the list of the config files.  Save all the
configuration metadata under $storage->$shortname where
$shortname is the shortname provided for by the config
file.
 
this is less than the time the file was last accessed, it
does not load the file/set the access time.
 
want to save the configuration data into (defaults to
false).  If true process all config data.  If it is a
string, then we assume that it is a version number, in
which case we process all configuration data that is
versioned after the specified version
 
 
file already loaded.
*Signature: public function processConfigFile($file,$process_configuration,$verbose_errors,$process_meta,$localized)
*Signature: public function processConfigFile($file,$process_configuration,$verbose_errors,$process_meta,$localized)
*Returns: [http://www.php.net/manual/en/language.types.string.php string ] the shortname provided for by this config
*Parameters:
file or null on failure.
** [http://www.php.net/manual/en/language.types.string.php string ] $file <br/>The full path to the config file.  If this is less than the time the file was last accessed, it does not load the file/set the access time.
Parameters:
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $process_configuration <br/>: Boolean -- true if you want to save the configuration data into (defaults to false).  If true process all config data.  If it is a string, then we assume that it is a version number, in which case we process all configuration data that is versioned after the specified version
* [http://www.php.net/manual/en/language.types.string.php string ] $file<br/>The full path to the config file.  If
***Default Value: false
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $process_configuration<br/>: Boolean -- true if you
** [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose_errors <br/>defaults to true.
**Default Value: false
***Default Value: true
* [http://www.php.net/manual/en/language.types.boolean.php boolean ] $verbose_errors<br/>defaults to true.
**Default Value: true
*$process_meta  
*$process_meta  
**Default Value: true
***Default Value: true
* [http://www.php.net/manual/en/language.types.array.php array ] $localized<br/>Data on localized versions of the
** [http://www.php.net/manual/en/language.types.array.php array ] $localized <br/>Data on localized versions of the file already loaded.
**Default Value: array()
***Default Value: array()
*Returns: [http://www.php.net/manual/en/language.types.string.php string ]<br/>the shortname provided for by this config file or null on failure.
===processRequirementsDOM()===
===processRequirementsDOM()===
shortnames of module we wish to be loaded.
@param boolean $options. Defaults to false.  Set to true if the new requests are optional i.e. don't cause a fatal error/add to the DOM if there a conflict
 
node should have an order attribute.  Optionally hey may
have the attribute 'checked' meaning that we consider this
node to be checked.
 
@param boolean $options. Defaults to false.  Set to true if
the new requests are optional i.e. don't cause a fatal
error/add to the DOM if there a conflict
*Signature: public function processRequirementsDOM($new_requests,$requests,$optional)
*Signature: public function processRequirementsDOM($new_requests,$requests,$optional)
*Returns: an array of the new modules that were installed on
*Parameters:
sucess. A string on failure describing the failure reason.
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $new_requests <br/>a shortname or an array of shortnames of module we wish to be loaded.
Parameters:
** [http://www.php.net/manual/en/class.domdocument.php DOMDocument ] $requests <br/>The existing requests.  Each node should have an order attribute.  Optionally hey may have the attribute 'checked' meaning that we consider this node to be checked.
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $new_requests<br/>a shortname or an array of
* [http://www.php.net/manual/en/class.domdocument.php DOMDocument ] $requests<br/>The existing requests.  Each
*$optional  
*$optional  
**Default Value: false  
***Default Value: false  
*Returns: an<br/>array of the new modules that were installed on sucess. A string on failure describing the failure reason.
===recursiveScan()===
===recursiveScan()===
*Signature: private function recursiveScan($shortnames,$extensions,$limit_to_subdir,$verbose)
*Signature: private function recursiveScan($shortnames,$extensions,$limit_to_subdir,$verbose)
Parameters:
*Parameters:
*&$shortnames  
**&$shortnames  
*$extensions  
*$extensions  
*$limit_to_subdir  
*$limit_to_subdir  
Line 432: Line 330:
Get a list of requirement objects for the module
Get a list of requirement objects for the module
*Signature: public function requirements($module)
*Signature: public function requirements($module)
*Returns: [http://www.php.net/manual/en/language.types.array.php array ] List of requirement objects
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $module <br/>Module to check.
* [http://www.php.net/manual/en/language.types.string.php string ] $module<br/>Module to check.
*Returns: [http://www.php.net/manual/en/language.types.array.php array ]<br/>List of requirement objects
===resetCheckedPaths()===
===resetCheckedPaths()===
*Signature: public function resetCheckedPaths()
*Signature: public function resetCheckedPaths()
Line 443: Line 341:
Set the locales used when handingling the processing of config data.
Set the locales used when handingling the processing of config data.
*Signature: public function setLocales($locales)
*Signature: public function setLocales($locales)
Parameters:
*Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $locales<br/>Either a string ( a locale) or an array of strings
** [http://www.php.net/manual/en/language.pseudo-types.php mixed ] $locales <br/>Either a string ( a locale) or an array of strings
===setModulePath()===
===setModulePath()===
Set the module's path, usually used for testing.
Set the module's path, usually used for testing.
*Signature: public function setModulePath($module,$path)
*Signature: public function setModulePath($module,$path)
Parameters:
*Parameters:
* [http://www.php.net/manual/en/language.types.string.php string ] $module
** [http://www.php.net/manual/en/language.types.string.php string ] $module
* [http://www.php.net/manual/en/language.types.string.php string ] $path
** [http://www.php.net/manual/en/language.types.string.php string ] $path
===setRoot()===
===setRoot()===
Set the root of where this I2CE instance started.
Set the root of where this I2CE instance started.
this instance of Configurator was created.
*Signature: public function setRoot($dir)
*Signature: public function setRoot($dir)
*Returns: the fully resolved path to $dir
*Parameters:
Parameters:
** [http://www.php.net/manual/en/language.types.string.php string ] $dir <br/>Directory (defaults to getcwd()) where this instance of Configurator was created.
* [http://www.php.net/manual/en/language.types.string.php string ] $dir<br/>Directory (defaults to getcwd()) where
***Default Value: null
**Default Value: null
*Returns: the<br/>fully resolved path to $dir
===setTopModule()===
===setTopModule()===
Set the top level module for a directory.
Set the top level module for a directory.
*Signature: public function setTopModule($dir,$module)
*Signature: public function setTopModule($dir,$module)
Parameters:
*Parameters:
*$dir  
*$dir  
*$module  
*$module  
===setupFileSearch()===
===setupFileSearch()===
*Signature: private function setupFileSearch($mod,$path)
*Signature: private function setupFileSearch($mod,$path)
Parameters:
*Parameters:
*$mod  
*$mod  
**Default Value: null
***Default Value: null
*$path  
*$path  
**Default Value: "MODULES"
***Default Value: "MODULES"
===shallowScan()===
===shallowScan()===
*Signature: private function shallowScan($potential_configs,$verbose)
*Signature: private function shallowScan($potential_configs,$verbose)
Parameters:
*Parameters:
*$potential_configs  
*$potential_configs  
*$verbose  
*$verbose  
**Default Value: false
***Default Value: false
==Inherited Fuzzy Methods==
==Inherited Fuzzy Methods==
===userMessage()===
===userMessage()===

Revision as of 22:40, 16 October 2009

This article desrcibes the class I2CE_Configurator.

Variables

$mod_path

Hack to store the paths to each config

  • Type: private y $mod_path

$top_module

An associative array linking directory to top-level module

  • Type: private y $top_module

$checked_paths

A list of the paths checked

  • Type: private y $checked_paths

$found_modules

Holds a list of found modules @var private array $found_module

  • Type: private $found_modules

$errors

Errors encountered

  • Type: private ng $errors

$file_list

list of files for each module

  • Type: private y $file_list

$storage

Where we are saving all configuration data

$template

the current template we are working with

$merges

$var protected array $merges. Keys are magic data paths, values are merge type

  • Type: protected $merges

$locales

The locales for which we check for config files.

  • Type: protected $locales

$hash

. The hash of the last config file processed. It is a string, the hash, if the last config file loaded successully. false if the last config file did not load succesully. null if there was never a config file processed.

Methods

__construct()

Constructor

  • Signature: public function __construct($storage,$set_last_access)
  • Parameters:
    • I2CE_MagicData $storage
      if none is passed in, then a simple MagicData and config storage object using MagicDataStorageMem will be set up.
      • Default Value: null
    • boolean $set_last_access
      • Default Value: true

__destruct()

  • Signature: public function __destruct()

checkForConflicts()

  • Signature: protected function checkForConflicts($requirements,$enabled_modules)
  • Parameters:
  • $requirements
  • $enabled_modules

checkRequirements()

Checks the requirements. if all requirements are met and there are no conflicts, it returns a list of those that need to be installed, an empty array() if none are needed. On failure returns null. @param array $shortnames an array of shortnames @param array $remove an array of potential shortnames to remove -- if we did not find them somplace else. (it may have just been moved) defaults to an empty array.

  • Signature: public function checkRequirements($updates,$disables,$removals,$enabled_modules,$required_modules)
  • Parameters:
  • $updates
    • mixed $disables
      a shortname or an array of shortnames of modules to disable. Defaults to empty array
      • Default Value: array()
  • $removals
      • Default Value: array()
    • array $enabled_modules
      An array of shortnames of enabled modules -- we check for conflicts against this array
      • Default Value: array()
    • mixed $required_modules
      A shortname or an array of shortnames of required modules -- if a module is set to be updated and it is not required by on of the modules in this array, it will be set as an optional modules. Defaults to the empty array
      • Default Value: array()
  • Returns: array.
    Keys are: 'failure' - string with the reason for failture 'requirements' - array which has as keys shortnames and values files for the requirements. 'removals' - array of shortnames that need to be removed. 'optional' - array with key shortnames and value true 'moved' - array with key shortnames and value true

extRequirements()

Get a list of External dependencies for the module

  • Signature: public function extRequirements($module)
  • Parameters:
  • Returns: array
    List of requirement objects

findAvailableConfigs()

Searches the system for available configuration files (if not done already) and stores them in the given I2CE_MagicData @param I2CE_FileSearch A file search to use for modules. If null(default) uses I2CE::getFileSearch()

  • Signature: public function findAvailableConfigs($file_search,$deep,$extensions,$limit_to_subdir,$verbose_errors)
  • Parameters:
  • $file_search
      • Default Value: null
    • boolean $deep
      Defaults to false. If false, only checks the module paths of the currently enabled modules. If true, checks the module paths of all modules which are either enabled or disabled.
      • Default Value: false
    • array $extensions
      An array containing file extensions which we wish to test if they are a config file. Defaults to the empty array in which case we look for files with the 'xml' extension and any additional extensions registered under I2CE::getConfig()->config->additional_configuration_extensions
      • Default Value: array()
    • string $limit_to_subdir
      If $file_search is given and this is set, we only add in the directories which are subdirectorues of $limit_to_subdir (check is by string comparision)
      • Default Value:
  • $verbose_errors
      • Default Value: false
  • Returns: array
    of string the list of shortnames found

findPotentialConfigs()

Return a list of potential configuration files. "Potential config files" are those whose extension matches the regular expression. @param array @returns

  • Signature: private function findPotentialConfigs($extensions,$file_search)
  • Parameters:
  • $extensions
  • $file_search

flattenRequirements()

  • Signature: protected function flattenRequirements($requirementDOM)
  • Parameters:
  • $requirementDOM

getAvailableModules()

Scan a directory for available modules.

  • Signature: public function getAvailableModules($search_dirs,$limit_search,$rescan,$verbose)
  • Parameters:
    • array $search_dirs
      List of Directories to search
    • boolean $limit_search
      Don't scan by depth (true)
      • Default Value: true
    • boolean $rescan
      Whether to force a rescan (false)
      • Default Value: false
    • boolean $verbose
      Verbose errors (false)
      • Default Value: false
  • Returns: array
    List of modules found

getConflicts()

For a given module, find a list of conflicting modules.

  • Signature: private function getConflicts($module)
  • Parameters:
  • Returns: array
    List of conflicts

getDefaultExtensions()

  • Signature: private function getDefaultExtensions()

getDependencyList()

Gets information about the dependecies for a module

  • Signature: public function getDependencyList($module)
  • Parameters:
  • Returns: array
    indexed by 'requirements', 'conflicts' 'enable', 'path', and 'badness' where 'badness' is an array of strings of error messages and the other are arrays of shortnames

getDependsList()

Gets the list of modules depending on the specified module.

  • Signature: public function getDependsList($shortname)
  • Parameters:
    • string $shortname
      The shortname of a module

getDescription()

Returns a brief one-line description of the module.

  • Signature: public function getDescription($module)
  • Parameters:
  • Returns: string

getEnabled()

Get enabled sub-modules

  • Signature: private function getEnabled($module)
  • Parameters:
  • Returns: array
    List of enabled submodules

getHash()

Get the hash of the contents of the last processConfifFile.

  • Signature: public function getHash()
  • Returns: mixed.
    String, the hash, if the last config file loaded successfully. false if the last config file did not load succesully. null if there was never a config file processed.

getI2CERoot()

  • Signature: public function getI2CERoot()

getLongDescription()

Returns a longer description of the module.

  • Signature: public function getLongDescription($module)
  • Parameters:
  • Returns: string

getMaxChildOrder()

  • Signature: protected function getMaxChildOrder($node,$xpath)
  • Parameters:
  • $node
  • $xpath

getMerges()

Get the magic data paths whose status we are tracking. $retrurns array. Keys are magic data paths, values are the merge type

  • Signature: public function getMerges()

getModuleDir()

Return the directory of the module

  • Signature: public function getModuleDir($module)
  • Parameters:
    • string $module
      Module to check.
      • Default Value: null
  • Returns: string
    Path to config file.

getModuleFileList()

Get a list of files for a given module

  • Signature: public function getModuleFileList($module)
  • Parameters:
  • Returns: array
    List of files in the module. Paths are relative to the directory where the module's configuration file is.

getModuleFileMap()

Get a list of each files under each path.

  • Signature: public function getModuleFileMap($module)
  • Parameters:
  • Returns: array
    List of file maps in the module. Paths are relative to the directory where the module's configuration file is. @todo Contains a hack for the special case where CLASSES directory is ./

getModulePath()

Return the path to the module configuration file

  • Signature: public function getModulePath($module)
  • Parameters:
  • Returns: string
    Path to config file.

getModulePathList()

  • Signature: public function getModulePathList($module)
  • Parameters:
  • $module

getNextUnchecked()

  • Signature: protected function getNextUnchecked($requirementDOM)
  • Parameters:
  • $requirementDOM

getPackageAuthors()

Returns a longer description of the module.

  • Signature: public function getPackageAuthors($module)
  • Parameters:
  • Returns: string

getRequirements()

Get a list of requirements for the module

  • Signature: private function getRequirements($module)
  • Parameters:
  • Returns: array
    List of required modules.

getRoot()

Get the root of where this I2CE instance started.

  • Signature: public function getRoot()
  • Returns: the
    fully resolved path to the starting directory

getStorage()

Get the magic data node storage for the configurator

getTopModule()

Find the top-level module in a directory. (e.g. I2CE, ihris-common, ihris-manage)

  • Signature: public function getTopModule($d,$verbose)
  • Parameters:

getVersion()

Return the version for a given module

  • Signature: public function getVersion($module)
  • Parameters:
  • Returns: string

importLocalizedTemplates()

  • Signature: public function importLocalizedTemplates($localized)
  • Parameters:
  • $localized
      • Default Value: array()

isReq()

Determine if this object is a I2CE_MagicDataNode that can be used as a requirement. @param mixed $string

  • Signature: private function isReq($req)
  • Parameters:
  • $req
  • Returns: boolean

loadConfigFile()

Load a config file with various extensions.

  • Signature: protected function loadConfigFile($file,$verbose_errors)
  • Parameters:
    • string $file
      Path to the config file
    • boolean $verbose_errors
      (true)
      • Default Value: true
  • Returns: booolean
    true on success

moduleConflicts()

Checks to see if a module conflicts with by another module

  • Signature: public function moduleConflicts($module,$version,$conflicts,$deep)
  • Parameters:
    • string $module
      Module to check
    • string $version
      Version of the module
    • mixed $conflicts
      Module name or an array of module names
    • boolean $deep
      Whether to recursively check the requirements (true)
      • Default Value: true
  • Returns: boolean

moduleRequires()

Checks to see if a module is required by another module

  • Signature: public function moduleRequires($module,$version,$requirements,$deep,$cat)
  • Parameters:
    • string $module
    • string $version
    • mixed $requirements
      a module name or an array of module names
    • boolean $deep
      Defaults to true meaning we should check requirements of requiremnets of requirements of ...
      • Default Value: true
  • $cat
      • Default Value: 'requirement'
  • Returns: boolean

processConfig()

  • Signature: public function processConfig($process_configuration,$verbose_errors,$process_meta,$localized)
  • Parameters:
  • $process_configuration
      • Default Value: false
  • $verbose_errors
      • Default Value: true
  • $process_meta
      • Default Value: true
  • $localized
      • Default Value: array()

processConfigFile()

Loads in a config file and validates it against its referenced DTD. Sets the access time and the shortname (provided in the metadata) for the file. If there is already a config file with the same shortname, it will remove that fro the list of the config files. Save all the configuration metadata under $storage->$shortname where $shortname is the shortname provided for by the config file.

  • Signature: public function processConfigFile($file,$process_configuration,$verbose_errors,$process_meta,$localized)
  • Parameters:
    • string $file
      The full path to the config file. If this is less than the time the file was last accessed, it does not load the file/set the access time.
    • mixed $process_configuration
      : Boolean -- true if you want to save the configuration data into (defaults to false). If true process all config data. If it is a string, then we assume that it is a version number, in which case we process all configuration data that is versioned after the specified version
      • Default Value: false
    • boolean $verbose_errors
      defaults to true.
      • Default Value: true
  • $process_meta
      • Default Value: true
    • array $localized
      Data on localized versions of the file already loaded.
      • Default Value: array()
  • Returns: string
    the shortname provided for by this config file or null on failure.

processRequirementsDOM()

@param boolean $options. Defaults to false. Set to true if the new requests are optional i.e. don't cause a fatal error/add to the DOM if there a conflict

  • Signature: public function processRequirementsDOM($new_requests,$requests,$optional)
  • Parameters:
    • mixed $new_requests
      a shortname or an array of shortnames of module we wish to be loaded.
    • DOMDocument $requests
      The existing requests. Each node should have an order attribute. Optionally hey may have the attribute 'checked' meaning that we consider this node to be checked.
  • $optional
      • Default Value: false
  • Returns: an
    array of the new modules that were installed on sucess. A string on failure describing the failure reason.

recursiveScan()

  • Signature: private function recursiveScan($shortnames,$extensions,$limit_to_subdir,$verbose)
  • Parameters:
    • &$shortnames
  • $extensions
  • $limit_to_subdir
  • $verbose

requirements()

Get a list of requirement objects for the module

  • Signature: public function requirements($module)
  • Parameters:
  • Returns: array
    List of requirement objects

resetCheckedPaths()

  • Signature: public function resetCheckedPaths()

resetMerges()

Reset the tracked data.

  • Signature: public function resetMerges()

setLocales()

Set the locales used when handingling the processing of config data.

  • Signature: public function setLocales($locales)
  • Parameters:
    • mixed $locales
      Either a string ( a locale) or an array of strings

setModulePath()

Set the module's path, usually used for testing.

  • Signature: public function setModulePath($module,$path)
  • Parameters:

setRoot()

Set the root of where this I2CE instance started.

  • Signature: public function setRoot($dir)
  • Parameters:
    • string $dir
      Directory (defaults to getcwd()) where this instance of Configurator was created.
      • Default Value: null
  • Returns: the
    fully resolved path to $dir

setTopModule()

Set the top level module for a directory.

  • Signature: public function setTopModule($dir,$module)
  • Parameters:
  • $dir
  • $module

setupFileSearch()

  • Signature: private function setupFileSearch($mod,$path)
  • Parameters:
  • $mod
      • Default Value: null
  • $path
      • Default Value: "MODULES"

shallowScan()

  • Signature: private function shallowScan($potential_configs,$verbose)
  • Parameters:
  • $potential_configs
  • $verbose
      • Default Value: false

Inherited Fuzzy Methods

userMessage()

This method is inherited from I2CE_Fuzzy->userMessage()

Fuzzy Methods

loadConfigFile_YAML()

This method is implemented by I2CE_Module_YAML->loadConfigFile_YAML()