本文整理汇总了PHP中StringUtil::getClassName方法的典型用法代码示例。如果您正苦于以下问题:PHP StringUtil::getClassName方法的具体用法?PHP StringUtil::getClassName怎么用?PHP StringUtil::getClassName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringUtil
的用法示例。
在下文中一共展示了StringUtil::getClassName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loadSearchTypeObjects
/**
* Loads the search type objects.
*/
public static function loadSearchTypeObjects()
{
if (self::$searchTypeObjects !== null) {
return;
}
// get cache
WCF::getCache()->addResource('searchableMessageTypes-' . PACKAGE_ID, WCF_DIR . 'cache/cache.searchableMessageTypes-' . PACKAGE_ID . '.php', WCF_DIR . 'lib/system/cache/CacheBuilderSearchableMessageType.class.php');
self::$searchTypeData = WCF::getCache()->get('searchableMessageTypes-' . PACKAGE_ID);
// get objects
self::$searchTypeObjects = array();
foreach (self::$searchTypeData as $type) {
// calculate class path
$path = '';
if (empty($type['packageDir'])) {
$path = WCF_DIR;
} else {
$path = FileUtil::getRealPath(WCF_DIR . $type['packageDir']);
}
// include class file
if (!file_exists($path . $type['classPath'])) {
throw new SystemException("unable to find class file '" . $path . $type['classPath'] . "'", 11000);
}
require_once $path . $type['classPath'];
// create instance
$className = StringUtil::getClassName($type['classPath']);
if (!class_exists($className)) {
throw new SystemException("unable to find class '" . $className . "'", 11001);
}
self::$searchTypeObjects[$type['typeName']] = new $className();
}
}
示例2: getData
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource)
{
list($cache, $packageID) = explode('-', $cacheResource['cache']);
$data = array('actions' => array('user' => array(), 'admin' => array()), 'inheritedActions' => array('user' => array(), 'admin' => array()));
// get all listeners and filter options with low priority
$sql = "SELECT\t\tlistener.*, package.packageDir\n\t\t\tFROM\t\twcf" . WCF_N . "_package_dependency package_dependency,\n\t\t\t\t\twcf" . WCF_N . "_event_listener listener\n\t\t\tLEFT JOIN\twcf" . WCF_N . "_package package\n\t\t\tON\t\t(package.packageID = listener.packageID)\n\t\t\tWHERE \t\tlistener.packageID = package_dependency.dependency\n\t\t\t\t\tAND package_dependency.packageID = " . $packageID . "\n\t\t\tORDER BY\tpackage_dependency.priority";
$result = WCF::getDB()->sendQuery($sql);
while ($row = WCF::getDB()->fetchArray($result)) {
$row['listenerClassName'] = StringUtil::getClassName($row['listenerClassFile']);
// distinguish between inherited actions and non-inherited actions
if (!$row['inherit']) {
$data['actions'][$row['environment']][EventHandler::generateKey($row['eventClassName'], $row['eventName'])][] = $row;
} else {
if (!isset($data['inheritedActions'][$row['environment']][$row['eventClassName']])) {
$data['inheritedActions'][$row['eventClassName']] = array();
}
$data['inheritedActions'][$row['environment']][$row['eventClassName']][$row['eventName']][] = $row;
}
}
// sort data by class name
foreach ($data['actions'] as $environment => $listenerMap) {
foreach ($listenerMap as $key => $listeners) {
uasort($data['actions'][$environment][$key], array('CacheBuilderEventListener', 'sortListeners'));
}
}
foreach ($data['inheritedActions'] as $environment => $listenerMap) {
foreach ($listenerMap as $class => $listeners) {
foreach ($listeners as $key => $val) {
uasort($data['inheritedActions'][$environment][$class][$key], array('CacheBuilderEventListener', 'sortListeners'));
}
}
}
return $data;
}
示例3: create
/**
* Creates a new planet.
*
* @param int galaxy
* @param int system
* @param int planet
* @param string name
* @param int user id
* @param float default metal
* @param float default crystal
* @param float default deuterium
* @param int planet type id
* @param int timestamp
* @param int fields
* @param int max temperature
* @param int package id
* @return Planet
*/
public static function create($galaxy, $system, $planet, $name, $userID, $metal = 0, $crystal = 0, $deuterium = 0, $planetTypeID = 1, $time = TIME_NOW, $fields = null, $maxTemp = 40, $packageID = PACKAGE_ID)
{
// get planet type information
$sql = "SELECT classPath,\n\t\t\t\t\tplanetKind,\n\t\t\t\t\tforceImage\n\t\t\t\tFROM ugml_planet_type\n\t\t\t\tWHERE planetTypeID = " . $planetTypeID;
$row = WCF::getDB()->getFirstRow($sql);
$classPath = $row['classPath'];
$className = StringUtil::getClassName($classPath);
$planetKind = $row['planetKind'];
// collect other data
$information = PlanetUtil::getLocationEnvironment($planet);
if (empty($row['forceImage'])) {
$image = $information['image'];
} else {
$image = $row['forceImage'];
}
if ($fields === null) {
$fields = $information['fields'];
}
$diameter = PlanetUtil::getDiameter($fields);
if ($maxTemp === null) {
$maxTemp = $information['maxTemp'];
}
$minTemp = $maxTemp - 40;
// insert
$planetID = self::insert($galaxy, $system, $planet, $planetKind, $planetTypeID, $className, $name, $userID, $fields, $diameter, $minTemp, $maxTemp, $image, $time, $packageID);
$planet = Planet::getInstance($planetID);
// add resources
$planet->getEditor()->changeResources($metal, $crystal, $deuterium);
return $planet;
}
示例4: createGroup
/**
*
*/
protected function createGroup($groupOptions = array())
{
require_once WCF_DIR . 'lib/util/StringUtil.class.php';
require_once WCF_DIR . 'lib/data/user/group/GroupEditor.class.php';
$group = GroupEditor::create($groupName = StringUtil::getRandomID(), $groupOptions);
// WCF does not clear instance caches... so rebuild
$classFile = WCF_DIR . 'lib/system/cache/CacheBuilderGroups.class.php';
WCF::getCache()->rebuild(array('cache' => 'groups', 'file' => WCF_DIR . 'cache/cache.groups.php', 'className' => StringUtil::getClassName($classFile), 'classFile' => $classFile));
return $group;
}
示例5: getData
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource)
{
$data = array();
$sql = "SELECT\t\taction.*, package.packageDir\n\t\t\tFROM\t\twcf" . WCF_N . "_pm_rule_action action\n\t\t\tLEFT JOIN\twcf" . WCF_N . "_package package\n\t\t\tON\t\t(package.packageID = action.packageID)";
$result = WCF::getDB()->sendQuery($sql);
while ($row = WCF::getDB()->fetchArray($result)) {
$row['ruleActionClassName'] = StringUtil::getClassName($row['ruleActionClassFile']);
$data[] = $row;
}
return $data;
}
示例6: getData
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource)
{
list($cache, $packageID) = explode('-', $cacheResource['cache']);
$data = array();
$sql = "SELECT\t\tlocation.*, package.packageDir\n\t\t\tFROM\t\twcf" . WCF_N . "_package_dependency package_dependency,\n\t\t\t\t\twcf" . WCF_N . "_page_location location\n\t\t\tLEFT JOIN\twcf" . WCF_N . "_package package\n\t\t\tON\t\t(package.packageID = location.packageID)\n\t\t\tWHERE \t\tlocation.packageID = package_dependency.dependency\n\t\t\t\t\tAND package_dependency.packageID = " . $packageID . "\n\t\t\tORDER BY\tpackage_dependency.priority";
$result = WCF::getDB()->sendQuery($sql);
while ($row = WCF::getDB()->fetchArray($result)) {
$row['className'] = StringUtil::getClassName($row['classPath']);
$data[$row['locationName']] = $row;
}
return $data;
}
示例7: autoload
/**
* autoload method for classname
*
* @param string $className
*/
public function autoload($className)
{
if (!isset($className)) {
throw new SystemException('missing className');
}
$className = StringUtil::getClassName($className);
$dir = StringUtil::toLowercase(StringUtil::substring($className, StringUtil::length('ViewableContest')));
if (empty($dir)) {
throw new SystemException('wrong dir: ' . $dir);
}
$file = WCF_DIR . 'lib/data/contest/' . $dir . '/' . $className . '.class.php';
if (!is_file($file)) {
throw new SystemException('wrong file: ' . $file);
}
require_once $file;
if (!class_exists($className)) {
throw new SystemException('class does not exist: ' . $className);
}
}
示例8: getData
/**
* @see CacheBuilder::getData()
*/
public function getData($cacheResource)
{
list($cache, $packageID) = explode('-', $cacheResource['cache']);
$data = array();
// get type ids
$typeIDArray = array();
$sql = "SELECT\t\tsuspensionType, suspensionTypeID \n\t\t\tFROM\t\twcf" . WCF_N . "_user_infraction_suspension_type suspension_type,\n\t\t\t\t\twcf" . WCF_N . "_package_dependency package_dependency\n\t\t\tWHERE \t\tsuspension_type.packageID = package_dependency.dependency\n\t\t\t\t\tAND package_dependency.packageID = " . $packageID . "\n\t\t\tORDER BY\tpackage_dependency.priority";
$result = WCF::getDB()->sendQuery($sql);
while ($row = WCF::getDB()->fetchArray($result)) {
$typeIDArray[$row['suspensionType']] = $row['suspensionTypeID'];
}
if (count($typeIDArray) > 0) {
$sql = "SELECT\t\tsuspension_type.*, package.packageDir\n\t\t\t\tFROM\t\twcf" . WCF_N . "_user_infraction_suspension_type suspension_type\n\t\t\t\tLEFT JOIN\twcf" . WCF_N . "_package package\n\t\t\t\tON\t\t(package.packageID = suspension_type.packageID)\n\t\t\t\tWHERE\t\tsuspension_type.suspensionTypeID IN (" . implode(',', $typeIDArray) . ")";
$result = WCF::getDB()->sendQuery($sql);
while ($row = WCF::getDB()->fetchArray($result)) {
$row['className'] = StringUtil::getClassName($row['classFile']);
$data[] = $row;
}
}
return $data;
}
示例9: getInstance
/**
* Reads the needed class from the database and returns the fleet object
*
* @param int fleet id
* @param array fleet row
*
* @return Fleet planet
*/
public static function getInstance($fleetID, $row = null)
{
if ($fleetID !== null) {
$fleetID = intval($fleetID);
}
FleetQueue::readCache();
if (isset(self::$fleets[$fleetID])) {
$fleet = self::$fleets[$fleetID];
} else {
if (isset(self::$fleets[$row['fleetID']])) {
$fleetID = $row['fleetID'];
$fleet = self::$fleets[$row['fleetID']];
} else {
if ($fleetID === null) {
$fleetID = $row['fleetID'];
$classPath = FleetQueue::$cache[$row['missionID']]['classPath'];
$className = StringUtil::getClassName($classPath);
if (!$row) {
$className = self::STANDARD_CLASS;
$classPath = 'lib/data/fleet/' . self::STANDARD_CLASS . '.class.php';
}
require_once LW_DIR . 'lib/data/fleet/' . $className . '.class.php';
$fleet = new $className($fleetID, $row);
} else {
$sql = "SELECT ugml_fleet.*,\r\n\t\t\t\t\t\tGROUP_CONCAT(\r\n\t\t\t\t\t\t\tCONCAT(specID, ',', shipCount) \r\n\t\t\t\t\t\t\tSEPARATOR ';')\r\n\t\t\t\t\t\tAS fleet\r\n\t\t\t\t\tFROM ugml_fleet\r\n\t\t \t\tLEFT JOIN ugml_fleet_spec\r\n\t\t \t\t\tON ugml_fleet.fleetID = ugml_fleet_spec.fleetID\r\n\t\t \t\tWHERE ugml_fleet.fleetID = " . $fleetID . "\r\n\t\t \t\tGROUP BY ugml_fleet.fleetID";
$row = WCF::getDB()->getFirstRow($sql);
$classPath = FleetQueue::$cache[$row['missionID']]['classPath'];
$className = StringUtil::getClassName($classPath);
if (!$row) {
$className = self::STANDARD_CLASS;
$classPath = 'lib/data/fleet/' . self::STANDARD_CLASS . '.class.php';
}
require_once LW_DIR . $classPath;
$fleet = new $className($fleetID, $row);
}
}
}
self::$fleets[$fleetID] = $fleet;
return $fleet;
}
示例10: getMissions
/**
* Returns the available missions.
*
* @return array
*/
public function getMissions()
{
$missions = array();
$startPlanetTypeID = $this->getStartPlanet()->planetTypeID;
if (is_object($this->getTargetPlanet())) {
$endPlanetTypeID = $this->getTargetPlanet()->planetTypeID;
} else {
$endPlanetTypeID = null;
}
self::readCache();
foreach (self::$cache as $missionID => $mission) {
// check route
if (!isset($mission['route'][$startPlanetTypeID][$endPlanetTypeID])) {
continue;
}
// execute method
require_once LW_DIR . $mission['classPath'];
$className = StringUtil::getClassName($mission['classPath']);
if (!class_exists($className)) {
require_once WCF_DIR . 'lib/system/exception/SystemException.class.php';
throw new SystemException("unable to find class '" . $className . "'", 11001);
}
$available = call_user_func(array($className, 'check'), $this);
if ($available) {
$missions[$missionID] = $mission['route'][$startPlanetTypeID][$endPlanetTypeID];
}
}
return $missions;
}
示例11: execPendingCronjobs
/**
* Actually execute the cronjob.
*
* @param array $cronjobsCache
* @return boolean success
*/
protected function execPendingCronjobs($cronjobsCache = array())
{
// include class file
if (!file_exists(WCF_DIR . $cronjobsCache['classPath'])) {
throw new SystemException("unable to find class file '" . WCF_DIR . $cronjobsCache['classPath'] . "'", 11000);
}
require_once WCF_DIR . $cronjobsCache['classPath'];
$i = 0;
while ($i < $this->countMultipleExecs) {
// omit 1970-01-01T01:00:00.
if ($this->execMultiple == 1) {
$cronjobsCache['nextExec'] = $this->timebase;
}
if (isset($this->plannedExecs) && count($this->plannedExecs)) {
$cronjobsCache['nextExec'] = $this->plannedExecs[$i];
}
// create instance.
$className = StringUtil::getClassName($cronjobsCache['classPath']);
if (!class_exists($className)) {
throw new SystemException("unable to find class '" . $className . "'", 11001);
}
// execute cronjob.
$cronjobExec = new $className();
if (method_exists($cronjobExec, 'execute')) {
$cronjobExec->execute($cronjobsCache);
}
// log success.
CronjobEditor::logSuccess($cronjobsCache['newLogID'], true);
$i++;
}
}
示例12: loadTaggables
/**
* Loads the taggable objects.
*/
protected function loadTaggables()
{
if ($this->taggables !== null) {
return;
}
// get cache
WCF::getCache()->addResource('taggables-' . PACKAGE_ID, WCF_DIR . 'cache/cache.taggables-' . PACKAGE_ID . '.php', WCF_DIR . 'lib/system/cache/CacheBuilderTaggable.class.php');
$this->taggablesData = WCF::getCache()->get('taggables-' . PACKAGE_ID);
// get objects
$this->taggables = array();
foreach ($this->taggablesData as $type) {
// calculate class path
$path = '';
if (empty($type['packageDir'])) {
$path = WCF_DIR;
} else {
$path = FileUtil::getRealPath(WCF_DIR . $type['packageDir']);
}
// include class file
if (!file_exists($path . $type['classPath'])) {
throw new SystemException("unable to find class file '" . $path . $type['classPath'] . "'", 11000);
}
require_once $path . $type['classPath'];
// create instance
$className = StringUtil::getClassName($type['classPath']);
if (!class_exists($className)) {
throw new SystemException("unable to find class '" . $className . "'", 11001);
}
$this->taggables[$type['taggableID']] = new $className($type['taggableID'], $type['name']);
}
}
示例13: getByConditions
/**
* Reads all rows matching the given conditions an returns an array of Ovent objects.
*/
public static function getByConditions($conditions)
{
self::initCache();
$sql = "SELECT *\r\n\t\t\t\tFROM ugml_ovent\r\n\t\t\t\tWHERE ";
foreach ($conditions as $key => $value) {
$sql .= "`" . $key . "` = " . $value . " AND ";
}
$result = WCF::getDB()->sendQuery(substr($sql, 0, -5) . " ORDER BY `time` ASC");
$rows = array();
while ($row = WCF::getDB()->fetchArray($result)) {
$classPath = self::$cache[$row['oventTypeID']]['classPath'];
$className = StringUtil::getClassName($classPath);
require_once LW_DIR . $classPath;
$rows[] = new $className(null, $row);
}
return $rows;
}
示例14: executeEvents
/**
* Executes the events.
*/
protected function executeEvents()
{
WCF::getDB()->sendQuery("SET AUTOCOMMIT = 0");
foreach ($this->events as $eventID => $eventObj) {
WCF::getDB()->sendQuery("START TRANSACTION");
try {
// delete
if (!empty($this->eventIDsStr)) {
$this->eventIDsStr .= ",";
}
$this->eventIDsStr .= $eventID;
// execute
$classPath = WOTEventEditor::$cache[$eventObj->eventTypeID]['classPath'];
$className = StringUtil::getClassName($classPath);
require_once LW_DIR . $classPath;
// look for singleton
if (in_array('WOTEventSingleton', class_implements($className))) {
$h = call_user_func(array($className, 'getInstance'), $eventObj->specificID);
echo "s";
} else {
$h = new $className($eventObj->specificID);
echo "n";
}
echo "b";
$h->execute($eventObj->eventData);
echo "a";
// protect against fatal errors in following events
if ($this->enableSafeMode) {
if (!empty($this->eventIDsStr)) {
WOTEventEditor::deleteEvents($this->eventIDsStr);
}
$this->eventIDsStr = "";
}
} catch (Exception $e) {
WCF::getDB()->sendQuery("ROLLBACK");
WCF::getDB()->sendQuery("START TRANSACTION");
$this->deleteEvents();
throw new WOTEventExecuteException($e, $h, $eventID);
}
WCF::getDB()->sendQuery("COMMIT");
}
WCF::getDB()->sendQuery("SET AUTOCOMMIT = 1");
}
示例15: addResource
/**
* Registers a new cache resource.
*
* @param string $cache name of this resource
* @param string $file data file for this resource
* @param string $classFile
* @param integer $minLifetime
* @param integer $maxLifetime
*/
public function addResource($cache, $file, $classFile, $minLifetime = 0, $maxLifetime = 0)
{
$className = StringUtil::getClassName($classFile);
$this->cacheResources[$cache] = array('cache' => $cache, 'file' => $file, 'className' => $className, 'classFile' => $classFile, 'minLifetime' => $minLifetime, 'maxLifetime' => $maxLifetime);
}