Main Page | Directories | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages | Examples

t3lib_exec Class Reference

List of all members.

Public Member Functions

 checkCommand ($cmd, $handler='')
 checks if a command is valid or not updates global vars
 getCommand ($cmd, $handler='', $handlerOpt='')
 returns a command string for exec(), system()
 addPaths ($paths)
 Extend the preset paths.
 _getPaths ()
 set the search paths from different sources
 _init ()
 init
 _initPaths ($paths='')
 init and extend the preset paths with own

Member Function Documentation

t3lib_exec::_getPaths  ) 
 

set the search paths from different sources

Returns:
[type] ...

Definition at line 201 of file class.t3lib_exec.php.

References $TYPO3_CONF_VARS, $val, _fixPath(), and _getOS().

Referenced by _initPaths().

00201                         {
00202       global $TYPO3_CONF_VARS;
00203 
00204       $pathsArr = array();
00205       $sysPathArr = array();
00206       $osType = t3lib_exec::_getOS();
00207 
00208          // image magick paths first
00209          // im_path_lzw take precedence over im_path
00210       if ($imPath = ($TYPO3_CONF_VARS['GFX']['im_path_lzw'] ? $TYPO3_CONF_VARS['GFX']['im_path_lzw'] : $TYPO3_CONF_VARS['GFX']['im_path'])) {
00211          $imPath = t3lib_exec::_fixPath($imPath);
00212          $pathsArr[$imPath] = $imPath;
00213       }
00214 
00215          // add configured paths
00216       if ($TYPO3_CONF_VARS['SYS']['binPath']) {
00217          $sysPath = t3lib_div::trimExplode(',',$TYPO3_CONF_VARS['SYS']['binPath'],1);
00218          reset($sysPath);
00219          while(list(,$val)=each($sysPath)) {
00220             $val = t3lib_exec::_fixPath($val);
00221             $sysPathArr[$val]=$val;
00222          }
00223       }
00224 
00225 
00226 
00227 
00228 # ???? t3lib_div::getIndpEnv('REQUEST_URI');
00229 
00230 
00231          // add path from environment
00232 #TODO: how does this work for WIN
00233       if ($GLOBALS['_SERVER']['PATH']) {
00234          $sep = ($osType=='WIN') ? ';' : ':';
00235          $envPath = t3lib_div::trimExplode($sep,$GLOBALS['_SERVER']['PATH'],1);
00236          reset($envPath);
00237          while(list(,$val)=each($envPath)) {
00238             $val = t3lib_exec::_fixPath($val);
00239             $sysPathArr[$val]=$val;
00240          }
00241       }
00242 
00243       if ($osType=='WIN') {
00244 #TODO: add the most common paths for WIN
00245          $sysPathArr = array_merge($sysPathArr, array (
00246             '/usr/bin/' => '/usr/bin/',
00247             '/perl/bin/' => '/perl/bin/',
00248          ));
00249       } else { // UNIX
00250          $sysPathArr = array_merge($sysPathArr, array (
00251             '/usr/bin/' => '/usr/bin/',
00252             '/usr/local/bin/' => '/usr/local/bin/',
00253          ));
00254       }
00255 
00256 #debug($pathsArr, '$pathsArr', __LINE__, __FILE__);
00257 #debug($GLOBALS['_SERVER']['PATH'], 'PATH', __LINE__, __FILE__);
00258 
00259       $pathsArr = array_merge($pathsArr, $sysPathArr);
00260       return $pathsArr;
00261    }

t3lib_exec::_init  ) 
 

init

Returns:
[type] ...

Definition at line 269 of file class.t3lib_exec.php.

References _initPaths().

Referenced by checkCommand(), and getCommand().

00269                      {
00270       if (!$GLOBALS['t3lib_exec']['init']) {
00271 
00272          t3lib_exec::_initPaths();
00273          $GLOBALS['t3lib_exec']['apps'] = array();
00274          $GLOBALS['t3lib_exec']['init'] = true;
00275       }
00276    }

t3lib_exec::_initPaths paths = ''  ) 
 

init and extend the preset paths with own

Parameters:
string comma seperated list of extra paths where a command should be searched. Relative paths (without leading "/") are prepend with site root path (PATH_site).
Returns:
[type] ...

Definition at line 285 of file class.t3lib_exec.php.

References _getPaths(), and PATH_site.

Referenced by _init(), and addPaths().

t3lib_exec::addPaths paths  ) 
 

Extend the preset paths.

This way an extension can install an axecutable and provide the path to t3lib_exec.

Parameters:
string comma seperated list of extra paths where a command should be searched. Relative paths (without leading "/") are prepend with site root path (PATH_site).
Returns:
[type] ...

Definition at line 191 of file class.t3lib_exec.php.

References _initPaths().

00191                               {
00192       t3lib_exec::_initPaths($paths);
00193    }

t3lib_exec::checkCommand cmd,
handler = ''
 

checks if a command is valid or not updates global vars

Parameters:
string the command that should be executed. eg: "convert"
string executer for the command. eg: "perl"
Returns:
boolean false if cmd is not found, or -1 if the handler is not found

Definition at line 91 of file class.t3lib_exec.php.

References _getOS(), and _init().

Referenced by t3lib_svbase::checkExec(), t3lib_extMgm::findService(), and getCommand().

00091                                              {
00092 
00093       t3lib_exec::_init();
00094       $osType = t3lib_exec::_getOS();
00095 
00096 
00097 #debug($GLOBALS['t3lib_exec'], 't3lib_exec', __LINE__, __FILE__);
00098 
00099       if ($handler && !t3lib_exec::checkCommand($handler)) {
00100          return -1;
00101       }
00102          // already checked and valid
00103       if ($GLOBALS['t3lib_exec']['apps'][$cmd]['valid']) {
00104          return true;
00105       }
00106          // is set but was (above) not true
00107       if (isset($GLOBALS['t3lib_exec']['apps'][$cmd]['valid'])) {
00108          return false;
00109       }
00110 
00111       reset($GLOBALS['t3lib_exec']['paths']);
00112       foreach($GLOBALS['t3lib_exec']['paths'] as $path => $validPath) {
00113             // ignore invalid (false) paths
00114          if ($validPath) {
00115             if ($osType=='WIN') {
00116                if (@is_file($path.$cmd)) {
00117                   $GLOBALS['t3lib_exec']['apps'][$cmd]['app'] = $cmd;
00118                   $GLOBALS['t3lib_exec']['apps'][$cmd]['path'] = $path;
00119                   $GLOBALS['t3lib_exec']['apps'][$cmd]['valid'] = true;
00120                   return true;
00121                }
00122                if (@is_file($path.$cmd.'.exe')) {
00123                   $GLOBALS['t3lib_exec']['apps'][$cmd]['app'] = $cmd.'.exe';
00124                   $GLOBALS['t3lib_exec']['apps'][$cmd]['path'] = $path;
00125                   $GLOBALS['t3lib_exec']['apps'][$cmd]['valid'] = true;
00126                   return true;
00127                }
00128             } else { // UNIX
00129                if (@is_executable($path.$cmd)) {
00130                   $GLOBALS['t3lib_exec']['apps'][$cmd]['app'] = $cmd;
00131                   $GLOBALS['t3lib_exec']['apps'][$cmd]['path'] = $path;
00132                   $GLOBALS['t3lib_exec']['apps'][$cmd]['valid'] = true;
00133                   return true;
00134                }
00135             }
00136          }
00137       }
00138 
00139          // try to get the executable with the command 'which'. It do the same like already done, but maybe on other paths??
00140       if ($osType=='UNIX') {
00141          $cmd = @exec ('which '.$val['cmd']);
00142 
00143          if (@is_executable($cmd)) {
00144             $GLOBALS['t3lib_exec']['apps'][$cmd]['app'] = $cmd;
00145             $GLOBALS['t3lib_exec']['apps'][$cmd]['path'] = dirname($cmd).'/';
00146             $GLOBALS['t3lib_exec']['apps'][$cmd]['valid'] = true;
00147             return true;
00148          }
00149       }
00150 
00151       return false;
00152    }

t3lib_exec::getCommand cmd,
handler = '',
handlerOpt = ''
 

returns a command string for exec(), system()

Parameters:
string the command that should be executed. eg: "convert"
string handler (executor) for the command. eg: "perl"
string options for the handler, like '-w' for "perl"
Returns:
mixed returns command string, or false if cmd is not found, or -1 if the handler is not found

Definition at line 162 of file class.t3lib_exec.php.

References _init(), and checkCommand().

00162                                                             {
00163 
00164       t3lib_exec::_init();
00165 
00166          // handler
00167       if ($handler) {
00168          $handler = t3lib_exec::getCommand($handler);
00169 
00170          if (!$handler) {
00171             return -1;
00172          }
00173          $handler .= ' '.$handlerOpt.' ';
00174       }
00175 
00176          // command
00177       if (!t3lib_exec::checkCommand($cmd)) {
00178          return false;
00179       }
00180       $cmd = $GLOBALS['t3lib_exec']['apps'][$cmd]['path'].$GLOBALS['t3lib_exec']['apps'][$cmd]['app'].' ';
00181 
00182       return $handler.$cmd;
00183    }


The documentation for this class was generated from the following file:
Generated on Sun Oct 3 01:06:52 2004 for TYPO3core 3.7.0 dev by  doxygen 1.3.8-20040913