本文整理汇总了PHP中t3lib_extMgm::findService方法的典型用法代码示例。如果您正苦于以下问题:PHP t3lib_extMgm::findService方法的具体用法?PHP t3lib_extMgm::findService怎么用?PHP t3lib_extMgm::findService使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类t3lib_extMgm
的用法示例。
在下文中一共展示了t3lib_extMgm::findService方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: makeInstanceService
/**
* Find the best service and check if it works.
* Returns object of the service class.
*
* @param string $serviceType Type of service (service key).
* @param string $serviceSubType Sub type like file extensions or similar. Defined by the service.
* @param mixed $excludeServiceKeys List of service keys which should be excluded in the search for a service. Array or comma list.
* @return object The service object or an array with error info's.
*/
public static function makeInstanceService($serviceType, $serviceSubType = '', $excludeServiceKeys = array())
{
$error = FALSE;
if (!is_array($excludeServiceKeys)) {
$excludeServiceKeys = self::trimExplode(',', $excludeServiceKeys, 1);
}
$requestInfo = array('requestedServiceType' => $serviceType, 'requestedServiceSubType' => $serviceSubType, 'requestedExcludeServiceKeys' => $excludeServiceKeys);
while ($info = t3lib_extMgm::findService($serviceType, $serviceSubType, $excludeServiceKeys)) {
// provide information about requested service to service object
$info = array_merge($info, $requestInfo);
// Check persistent object and if found, call directly and exit.
if (is_object($GLOBALS['T3_VAR']['makeInstanceService'][$info['className']])) {
// update request info in persistent object
$GLOBALS['T3_VAR']['makeInstanceService'][$info['className']]->info = $info;
// reset service and return object
$GLOBALS['T3_VAR']['makeInstanceService'][$info['className']]->reset();
return $GLOBALS['T3_VAR']['makeInstanceService'][$info['className']];
// include file and create object
} else {
$requireFile = self::getFileAbsFileName($info['classFile']);
if (@is_file($requireFile)) {
self::requireOnce($requireFile);
$obj = self::makeInstance($info['className']);
if (is_object($obj)) {
if (!@is_callable(array($obj, 'init'))) {
// use silent logging??? I don't think so.
die('Broken service:' . t3lib_utility_Debug::viewArray($info));
}
$obj->info = $info;
if ($obj->init()) {
// service available?
// create persistent object
$GLOBALS['T3_VAR']['makeInstanceService'][$info['className']] = $obj;
// needed to delete temp files
register_shutdown_function(array(&$obj, '__destruct'));
return $obj;
// object is passed as reference by function definition
}
$error = $obj->getLastErrorArray();
unset($obj);
}
}
}
// deactivate the service
t3lib_extMgm::deactivateService($info['serviceType'], $info['serviceKey']);
}
return $error;
}
示例2: array
/**
* Find the best service and check if it works.
* Returns object of the service class.
*
* @param string Type of service (service key).
* @param string Sub type like file extensions or similar. Defined by the service.
* @param mixed List of service keys which should be exluded in the search for a service. Array or comma list.
* @return object The service object or an array with error info's.
* @author René Fritz <r.fritz@colorcube.de>
*/
function &makeInstanceService($serviceType, $serviceSubType = '', $excludeServiceKeys = array())
{
global $T3_SERVICES, $T3_VAR, $TYPO3_CONF_VARS;
$error = FALSE;
if (!is_array($excludeServiceKeys)) {
$excludeServiceKeys = t3lib_div::trimExplode(',', $excludeServiceKeys, 1);
}
while ($info = t3lib_extMgm::findService($serviceType, $serviceSubType, $excludeServiceKeys)) {
// Check persistent object and if found, call directly and exit.
if (is_object($GLOBALS['T3_VAR']['makeInstanceService'][$info['className']])) {
// reset service and return object
$T3_VAR['makeInstanceService'][$info['className']]->reset();
return $GLOBALS['T3_VAR']['makeInstanceService'][$info['className']];
// include file and create object
} else {
$requireFile = t3lib_div::getFileAbsFileName($info['classFile']);
if (@is_file($requireFile)) {
require_once $requireFile;
$obj = t3lib_div::makeInstance($info['className']);
if (is_object($obj)) {
if (!@is_callable(array($obj, 'init'))) {
// use silent logging??? I don't think so.
die('Broken service:' . t3lib_div::view_array($info));
}
$obj->info = $info;
if ($obj->init()) {
// service available?
// create persistent object
$T3_VAR['makeInstanceService'][$info['className']] =& $obj;
// needed to delete temp files
register_shutdown_function(array(&$obj, '__destruct'));
return $obj;
// object is passed as reference by function definition
}
$error = $obj->getLastErrorArray();
unset($obj);
}
}
}
// deactivate the service
t3lib_extMgm::deactivateService($info['serviceType'], $info['serviceKey']);
}
return $error;
}
示例3: getConnector
/**
* @param string $table: name of the table to get the connector for
* @param integer $index: index of the conector configuration to use
* @return NULL|tx_svconnector_base
*/
public function getConnector($table, $index)
{
$connector = NULL;
if ($GLOBALS['BE_USER']->check('tables_modify', $table)) {
$this->initTCAData($table, $index);
// Instantiate specific connector service
if (empty($this->externalConfig['connector'])) {
$this->addMessage($GLOBALS['LANG']->getLL('no_connector'));
} else {
$services = t3lib_extMgm::findService('connector', $this->externalConfig['connector']);
// The service is not available
if ($services === FALSE) {
$this->addMessage($GLOBALS['LANG']->getLL('no_service'));
} else {
/** @var $connector tx_svconnector_base */
$connector = t3lib_div::makeInstanceService('connector', $this->externalConfig['connector']);
}
}
}
return $connector;
}
示例4: getTestService
/**
* @return tx_caretaker_TestServiceInterface
*/
public function getTestService()
{
if ($this->testService === NULL) {
if ($this->testServiceType) {
$info = t3lib_extMgm::findService('caretaker_test_service', $this->testServiceType);
if ($info && $info['classFile']) {
$requireFile = t3lib_div::getFileAbsFileName($info['classFile']);
if (@is_file($requireFile)) {
t3lib_div::requireOnce($requireFile);
$this->testService = t3lib_div::makeInstance($info['className']);
if ($this->testService) {
$this->testService->setInstance($this->getInstance());
$this->testService->setConfiguration($this->testServiceConfiguration);
} else {
throw new Exception('testservice class ' . $info['className'] . ' could not be instantiated');
}
} else {
throw new Exception('testservice ' . $this->testServiceType . ' class file ' . $requireFile . ' not found');
}
} else {
throw new Exception('caretaker testservice ' . $this->testServiceType . ' not found');
}
}
}
return $this->testService;
}
示例5: getExitpointByIdentifier
/**
* @param string $identifier
* @return bool|tx_caretaker_NotificationExitPointInterface
*/
protected function getExitpointByIdentifier($identifier)
{
if ($this->exitpoints[$identifier] !== NULL) {
return $this->exitpoints[$identifier];
}
$exitpoint = FALSE;
list($exitpointRecord) = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', tx_caretaker_Constants::table_Exitponts, 'id = ' . $GLOBALS['TYPO3_DB']->fullQuoteStr($identifier, '') . ' AND deleted=0 AND hidden=0', '', '', 1);
if ($exitpointRecord === NULL) {
return;
}
$info = t3lib_extMgm::findService($exitpointRecord['service'], '*');
if (is_array($info) && !empty($info['classFile'])) {
require_once $info['classFile'];
$exitpoint = t3lib_div::makeInstance($info['className']);
$config = t3lib_div::xml2array($exitpointRecord['config']);
if (!is_array($config)) {
$config = array();
}
$exitpoint->init($config);
}
$this->exitpoints[$identifier] = $exitpoint;
return $exitpoint;
}