PEAR
[ class tree: PEAR ] [ index: PEAR ] [ all elements ]

Source for file rw.php

Documentation is available at rw.php

  1. <?php
  2. /**
  3.  * <tasks:postinstallscript> - read/write version
  4.  *
  5.  * PHP versions 4 and 5
  6.  *
  7.  * @category   pear
  8.  * @package    PEAR
  9.  * @author     Greg Beaver <cellog@php.net>
  10.  * @copyright  1997-2009 The Authors
  11.  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
  12.  * @version    CVS: $Id: rw.php 313023 2011-07-06 19:17:11Z dufuz $
  13.  * @link       http://pear.php.net/package/PEAR
  14.  * @since      File available since Release 1.4.0a10
  15.  */
  16. /**
  17.  * Base class
  18.  */
  19. require_once 'PEAR/Task/Postinstallscript.php';
  20. /**
  21.  * Abstracts the postinstallscript file task xml.
  22.  * @category   pear
  23.  * @package    PEAR
  24.  * @author     Greg Beaver <cellog@php.net>
  25.  * @copyright  1997-2009 The Authors
  26.  * @license    http://opensource.org/licenses/bsd-license.php New BSD License
  27.  * @version    Release: 1.9.4
  28.  * @link       http://pear.php.net/package/PEAR
  29.  * @since      Class available since Release 1.4.0a10
  30.  */
  31. {
  32.     /**
  33.      * parent package file object
  34.      *
  35.      * @var PEAR_PackageFile_v2_rw 
  36.      */
  37.     var $_pkg;
  38.     /**
  39.      * Enter description here...
  40.      *
  41.      * @param PEAR_PackageFile_v2_rw $pkg 
  42.      * @param PEAR_Config $config 
  43.      * @param PEAR_Frontend $logger 
  44.      * @param array $fileXml 
  45.      * @return PEAR_Task_Postinstallscript_rw 
  46.      */
  47.     function PEAR_Task_Postinstallscript_rw(&$pkg&$config&$logger$fileXml)
  48.     {
  49.         parent::PEAR_Task_Common($config$loggerPEAR_TASK_PACKAGE);
  50.         $this->_contents $fileXml;
  51.         $this->_pkg &$pkg;
  52.         $this->_params = array();
  53.     }
  54.  
  55.     function validate()
  56.     {
  57.         return $this->validateXml($this->_pkg$this->_params$this->config$this->_contents);
  58.     }
  59.  
  60.     function getName()
  61.     {
  62.         return 'postinstallscript';
  63.     }
  64.  
  65.     /**
  66.      * add a simple <paramgroup> to the post-install script
  67.      *
  68.      * Order is significant, so call this method in the same
  69.      * sequence the users should see the paramgroups.  The $params
  70.      * parameter should either be the result of a call to {@link getParam()}
  71.      * or an array of calls to getParam().
  72.      *
  73.      * Use {@link addConditionTypeGroup()} to add a <paramgroup> containing
  74.      * a <conditiontype> tag
  75.      * @param string $id <paramgroup> id as seen by the script
  76.      * @param array|false$params array of getParam() calls, or false for no params
  77.      * @param string|false$instructions 
  78.      */
  79.     function addParamGroup($id$params = false$instructions = false)
  80.     {
  81.         if ($params && isset($params[0]&& !isset($params[1])) {
  82.             $params $params[0];
  83.         }
  84.         $stuff =
  85.             array(
  86.                 $this->_pkg->getTasksNs(':id' => $id,
  87.             );
  88.         if ($instructions{
  89.             $stuff[$this->_pkg->getTasksNs(':instructions'$instructions;
  90.         }
  91.         if ($params{
  92.             $stuff[$this->_pkg->getTasksNs(':param'$params;
  93.         }
  94.         $this->_params[$this->_pkg->getTasksNs(':paramgroup'][$stuff;
  95.     }
  96.  
  97.     /**
  98.      * add a complex <paramgroup> to the post-install script with conditions
  99.      *
  100.      * This inserts a <paramgroup> with
  101.      *
  102.      * Order is significant, so call this method in the same
  103.      * sequence the users should see the paramgroups.  The $params
  104.      * parameter should either be the result of a call to {@link getParam()}
  105.      * or an array of calls to getParam().
  106.      *
  107.      * Use {@link addParamGroup()} to add a simple <paramgroup>
  108.      *
  109.      * @param string $id <paramgroup> id as seen by the script
  110.      * @param string $oldgroup <paramgroup> id of the section referenced by
  111.      *                          <conditiontype>
  112.      * @param string $param name of the <param> from the older section referenced
  113.      *                       by <contitiontype>
  114.      * @param string $value value to match of the parameter
  115.      * @param string $conditiontype one of '=', '!=', 'preg_match'
  116.      * @param array|false$params array of getParam() calls, or false for no params
  117.      * @param string|false$instructions 
  118.      */
  119.     function addConditionTypeGroup($id$oldgroup$param$value$conditiontype '=',
  120.                                    $params = false$instructions = false)
  121.     {
  122.         if ($params && isset($params[0]&& !isset($params[1])) {
  123.             $params $params[0];
  124.         }
  125.         $stuff = array(
  126.             $this->_pkg->getTasksNs(':id' => $id,
  127.         );
  128.         if ($instructions{
  129.             $stuff[$this->_pkg->getTasksNs(':instructions'$instructions;
  130.         }
  131.         $stuff[$this->_pkg->getTasksNs(':name'$oldgroup '::' $param;
  132.         $stuff[$this->_pkg->getTasksNs(':conditiontype'$conditiontype;
  133.         $stuff[$this->_pkg->getTasksNs(':value'$value;
  134.         if ($params{
  135.             $stuff[$this->_pkg->getTasksNs(':param'$params;
  136.         }
  137.         $this->_params[$this->_pkg->getTasksNs(':paramgroup'][$stuff;
  138.     }
  139.  
  140.     function getXml()
  141.     {
  142.         return $this->_params;
  143.     }
  144.  
  145.     /**
  146.      * Use to set up a param tag for use in creating a paramgroup
  147.      * @static
  148.      */
  149.     function getParam($name$prompt$type 'string'$default = null)
  150.     {
  151.         if ($default !== null{
  152.             return
  153.             array(
  154.                 $this->_pkg->getTasksNs(':name' => $name,
  155.                 $this->_pkg->getTasksNs(':prompt' => $prompt,
  156.                 $this->_pkg->getTasksNs(':type' => $type,
  157.                 $this->_pkg->getTasksNs(':default' => $default
  158.             );
  159.         }
  160.         return
  161.             array(
  162.                 $this->_pkg->getTasksNs(':name' => $name,
  163.                 $this->_pkg->getTasksNs(':prompt' => $prompt,
  164.                 $this->_pkg->getTasksNs(':type' => $type,
  165.             );
  166.     }
  167. }
  168. ?>

Documentation generated on Wed, 06 Jul 2011 23:31:20 +0000 by phpDocumentor 1.4.3. PEAR Logo Copyright © PHP Group 2004.