本文整理汇总了PHP中wfProfileIn函数的典型用法代码示例。如果您正苦于以下问题:PHP wfProfileIn函数的具体用法?PHP wfProfileIn怎么用?PHP wfProfileIn使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了wfProfileIn函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: getList
/**
* Finds search suggestions phrases for chosen query
*
* @requestParam string $query search term for suggestions
*
* @responseParam array $items The list of phrases matching the query
*
* @example &query=los
*/
public function getList()
{
wfProfileIn(__METHOD__);
if (!empty($this->wg->EnableLinkSuggestExt)) {
$query = trim($this->request->getVal(self::PARAMETER_QUERY, null));
if (empty($query)) {
throw new MissingParameterApiException(self::PARAMETER_QUERY);
}
$request = new WebRequest();
$request->setVal('format', 'array');
$linkSuggestions = LinkSuggest::getLinkSuggest($request);
if (!empty($linkSuggestions)) {
foreach ($linkSuggestions as $suggestion) {
$searchSuggestions[]['title'] = $suggestion;
}
$this->response->setVal('items', $searchSuggestions);
} else {
throw new NotFoundApiException();
}
$this->response->setCacheValidity(WikiaResponse::CACHE_STANDARD);
} else {
throw new NotFoundApiException('Link Suggest extension not available');
}
wfProfileOut(__METHOD__);
}
开发者ID:yusufchang,项目名称:app,代码行数:34,代码来源:SearchSuggestionsApiController.class.php
示例2: parseCode
public function parseCode($code)
{
global $parserMemc;
static $parserCache;
// Unserializing can be expensive as well
wfProfileIn(__METHOD__);
$code = trim($code);
$memcKey = 'isparser:ast:' . md5($code);
if (isset($parserCache[$memcKey])) {
wfProfileOut(__METHOD__);
return $parserCache[$memcKey];
}
$cached = $parserMemc->get($memcKey);
if (@$cached instanceof ISParserOutput && !$cached->isOutOfDate()) {
$cached->appendTokenCount($this);
$parserCache[$memcKey] = $cached->getParserTree();
wfProfileOut(__METHOD__);
return $cached->getParserTree();
}
$scanner = new ISScanner($code);
$out = $this->mCodeParser->parse($scanner, $this->getMaxTokensLeft());
$out->appendTokenCount($this);
$parserMemc->set($memcKey, $out);
$parserCache[$memcKey] = $out->getParserTree();
wfProfileOut(__METHOD__);
return $out->getParserTree();
}
开发者ID:schwarer2006,项目名称:wikia,代码行数:27,代码来源:Interpreter.php
示例3: getListTitles
/**
* Get list of Title objects representing existing boards
*
* @author Władysław Bodzek <[email protected]>
*
* @return array List of board IDs
*/
public function getListTitles($db = DB_SLAVE, $namespace = NS_USER_WALL)
{
wfProfileIn(__METHOD__);
$titles = TitleBatch::newFromConds('page_wikia_props', array('page.page_namespace' => $namespace, 'page_wikia_props.page_id = page.page_id'), __METHOD__, array('ORDER BY' => 'page_title'), $db);
wfProfileOut(__METHOD__);
return $titles;
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:14,代码来源:Walls.class.php
示例4: NotifyOnSubPageChange
/**
* Adds users to watchlist if:
* - User is watching parent page
* - User has 'watchlistsubpages' turned on
*
* @param $watchers array of user ID
* @param $title Title object
* @param $editor User object
* @param $notificationTimeoutSql string timeout to the watchlist
*
* @author Jakub Kurcek <[email protected]>
*/
public static function NotifyOnSubPageChange($watchers, $title, $editor, $notificationTimeoutSql)
{
wfProfileIn(__METHOD__);
// Gets parent data
$arrTitle = explode('/', $title->getDBkey());
if (empty($arrTitle)) {
wfProfileOut(__METHOD__);
return true;
}
// make Title
$t = reset($arrTitle);
$newTitle = Title::newFromDBkey($t);
if (!$newTitle instanceof Title) {
return true;
}
$dbw = wfGetDB(DB_MASTER);
/** @var $dbw Database */
$res = $dbw->select(array('watchlist'), array('wl_user'), array('wl_title' => $newTitle->getDBkey(), 'wl_namespace' => $newTitle->getNamespace(), 'wl_user != ' . intval($editor->getID()), $notificationTimeoutSql), __METHOD__);
// Gets user settings
$parentpageWatchers = array();
while ($row = $dbw->fetchObject($res)) {
$userId = intval($row->wl_user);
$tmpUser = User::newFromId($userId);
if ($tmpUser->getBoolOption(self::PREFERENCES_ENTRY)) {
$parentpageWatchers[] = $userId;
}
unset($tmpUser);
}
// Updates parent watchlist timestamp for $parentOnlyWatchers.
$parentOnlyWatchers = array_diff($parentpageWatchers, $watchers);
$wl = WatchedItem::fromUserTitle($editor, $newTitle);
$wl->updateWatch($parentOnlyWatchers);
wfProfileOut(__METHOD__);
return true;
}
开发者ID:schwarer2006,项目名称:wikia,代码行数:47,代码来源:WatchSubPagesHelper.class.php
示例5: filterImages
protected function filterImages($imagesList = array())
{
wfProfileIn(__METHOD__);
# get image names from imagelinks table
$imagesName = array_keys($imagesList);
if (!empty($imagesName)) {
foreach ($imagesName as $img_name) {
$result = $this->db->select(array('imagelinks'), array('il_from'), array('il_to' => $img_name), __METHOD__, array('LIMIT' => $this->maxCount + 1));
#something goes wrong
if (empty($result)) {
continue;
}
# skip images which are too popular
if ($result->numRows() > $this->maxCount) {
continue;
}
# check image table
$oRowImg = $this->db->selectRow(array('image'), array('img_name', 'img_height', 'img_width', 'img_minor_mime'), array('img_name' => $img_name), __METHOD__);
if (empty($oRowImg)) {
continue;
}
if ($oRowImg->img_height > $this->minSize && $oRowImg->img_width > $this->minSize) {
if (!in_array($oRowImg->img_minor_mime, array("svg+xml", "svg"))) {
$this->addToFiltredList($oRowImg->img_name, $result->numRows(), $oRowImg->img_width, $oRowImg->img_height, $oRowImg->img_minor_mime);
}
}
}
}
wfProfileOut(__METHOD__);
}
开发者ID:schwarer2006,项目名称:wikia,代码行数:30,代码来源:ImageServingDriverMainNS.class.php
示例6: view
/**
* Render Quiz namespace page
*/
public function view()
{
global $wgOut, $wgUser, $wgTitle, $wgRequest;
wfProfileIn(__METHOD__);
// let MW handle basic stuff
parent::view();
// don't override history pages
$action = $wgRequest->getVal('action');
if (in_array($action, array('history', 'historysubmit'))) {
wfProfileOut(__METHOD__);
return;
}
// quiz doesn't exist
if (!$wgTitle->exists() || empty($this->mQuiz)) {
wfProfileOut(__METHOD__);
return;
}
// set page title
$title = $this->mQuiz->getTitle();
$wgOut->setPageTitle($title);
// add CSS/JS
$wgOut->addStyle(AssetsManager::getInstance()->getSassCommonURL('extensions/wikia/WikiaQuiz/css/WikiaQuizBuilder.scss'));
// render quiz page
$wgOut->clearHTML();
$wgOut->addHTML($this->mQuiz->render());
wfProfileOut(__METHOD__);
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:30,代码来源:WikiaQuizIndexArticle.class.php
示例7: processHit
/**
* Records a hit and enforces rate limits unless that is explicitly disabled in the call (see 'enforceRateLimits' param).
*
* @param apiKey - string - the API key of the app that made the request we are now logging
* @param method - string - the method-name that was called in this request (should include class-name if appropriate - eg: 'MyClass::myMethod').
* @param timestamp - int - number of seconds since the unix epoch at the time that this hit was made.
* @param params - array - array of key-value pairs of the parameters that were passed into the method
* @param enforceRateLimits - boolean - optional (default:true) - if true, then this function will check rate-limits after logging, and ban the apiKey if
* it has surpassed any of its rate-limits.
*/
public function processHit($apiKey, $method, $timestamp, $params, $enforceRateLimits = true)
{
wfProfileIn(__METHOD__);
// TODO: IMPLEMENT
// TODO: IMPLEMENT
wfProfileOut(__METHOD__);
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:17,代码来源:ApiGate_StatsProcessor.php
示例8: getBadge
public static function getBadge($badgeTypeId)
{
wfProfileIn(__METHOD__);
global $wgExternalSharedDB;
global $wgEnableAchievementsStoreLocalData;
$badges = array();
if (empty($wgEnableAchievementsStoreLocalData)) {
$dbr = wfGetDB(DB_SLAVE, array(), $wgExternalSharedDB);
} else {
$dbr = wfGetDB(DB_SLAVE);
}
$res = $dbr->select('ach_custom_badges', array('id', 'enabled', 'sponsored', 'badge_tracking_url', 'hover_tracking_url', 'click_tracking_url'), array('id' => $badgeTypeId), __METHOD__);
if ($row = $dbr->fetchObject($res)) {
$badge = array();
$image = wfFindFile(AchConfig::getInstance()->getBadgePictureName($row->id));
if ($image) {
$hoverImage = wfFindFile(AchConfig::getInstance()->getHoverPictureName($row->id));
$badge['type_id'] = $row->id;
$badge['enabled'] = $row->enabled;
$badge['thumb_url'] = $image->createThumb(90);
$badge['awarded_users'] = AchPlatinumService::getAwardedUserNames($row->id);
$badge['is_sponsored'] = $row->sponsored;
$badge['badge_tracking_url'] = $row->badge_tracking_url;
$badge['hover_tracking_url'] = $row->hover_tracking_url;
$badge['click_tracking_url'] = $row->click_tracking_url;
$badge['hover_content_url'] = is_object($hoverImage) ? wfReplaceImageServer($hoverImage->getFullUrl()) : null;
wfProfileOut(__METHOD__);
return $badge;
}
}
wfProfileOut(__METHOD__);
return false;
}
开发者ID:schwarer2006,项目名称:wikia,代码行数:33,代码来源:AchPlatinumService.class.php
示例9: onArticleSaveComplete
public static function onArticleSaveComplete($article, $user, $revision, $status)
{
wfProfileIn(__METHOD__);
$insertedImages = Wikia::getVar('imageInserts');
$imageDeletes = Wikia::getVar('imageDeletes');
$changedImages = $imageDeletes;
foreach ($insertedImages as $img) {
$changedImages[$img['il_to']] = true;
}
$sendTrackEvent = false;
foreach ($changedImages as $imageDBName => $dummy) {
$title = Title::newFromDBkey($imageDBName);
if (!empty($title)) {
$mq = new self($title);
$mq->unsetCache();
$sendTrackEvent = true;
}
}
// send track event if embed change
if ($sendTrackEvent) {
Track::event('embed_change');
}
wfProfileOut(__METHOD__);
return true;
}
开发者ID:yusufchang,项目名称:app,代码行数:25,代码来源:ArticlesUsingMediaQuery.class.php
示例10: ActivityFeedTag_render
function ActivityFeedTag_render($content, $attributes, $parser, $frame)
{
global $wgExtensionsPath, $wgEnableAchievementsInActivityFeed, $wgEnableAchievementsExt;
if (!class_exists('ActivityFeedHelper')) {
return '';
}
wfProfileIn(__METHOD__);
$parameters = ActivityFeedHelper::parseParameters($attributes);
$tagid = str_replace('.', '_', uniqid('activitytag_', true));
//jQuery might have a problem with . in ID
$jsParams = "size={$parameters['maxElements']}";
if (!empty($parameters['includeNamespaces'])) {
$jsParams .= "&ns={$parameters['includeNamespaces']}";
}
if (!empty($parameters['flags'])) {
$jsParams .= '&flags=' . implode('|', $parameters['flags']);
}
$parameters['tagid'] = $tagid;
$feedHTML = ActivityFeedHelper::getList($parameters);
$style = empty($parameters['style']) ? '' : ' style="' . $parameters['style'] . '"';
$timestamp = wfTimestampNow();
$snippetsDependencies = array('/extensions/wikia/MyHome/ActivityFeedTag.js', '/extensions/wikia/MyHome/ActivityFeedTag.css');
if (!empty($wgEnableAchievementsInActivityFeed) && !empty($wgEnableAchievementsExt)) {
array_push($snippetsDependencies, '/extensions/wikia/AchievementsII/css/achievements_sidebar.css');
}
$snippets = F::build('JSSnippets')->addToStack($snippetsDependencies, null, 'ActivityFeedTag.initActivityTag', array('tagid' => $tagid, 'jsParams' => $jsParams, 'timestamp' => $timestamp));
wfProfileOut(__METHOD__);
return "<div{$style}>{$feedHTML}</div>{$snippets}";
}
开发者ID:schwarer2006,项目名称:wikia,代码行数:29,代码来源:ActivityFeedTag.php
示例11: onOutputPageBeforeHTML
/**
* Load JS needed to display the VideosModule at the bottom of the article content
* @param OutputPage $out
* @param string $text
* @return bool
*/
public static function onOutputPageBeforeHTML(OutputPage $out, &$text)
{
wfProfileIn(__METHOD__);
// Check if we're on a page where we want to show the Videos Module.
// If we're not, stop right here.
if (!self::canShowVideosModule()) {
wfProfileOut(__METHOD__);
return true;
}
// On file pages, this hook can be called multiple times, so we're going to check if the
// assets are loaded already before we load them again.
$app = F::app();
// Don't do anything if we've already loaded the assets
if ($app->wg->VideosModuleAssetsLoaded) {
wfProfileOut(__METHOD__);
return true;
}
// Don't do anything if this is the main page of a site with the VPT enabled
if ($app->wg->Title->isMainPage() && $app->wg->EnableVideoPageToolExt) {
wfProfileOut(__METHOD__);
return true;
}
JSMessages::enqueuePackage('VideosModule', JSMessages::EXTERNAL);
if ($app->checkSkin('venus')) {
Wikia::addAssetsToOutput('videos_module_venus_js');
Wikia::addAssetsToOutput('videos_module_venus_scss');
} else {
Wikia::addAssetsToOutput('videos_module_js');
}
$app->wg->VideosModuleAssetsLoaded = true;
wfProfileOut(__METHOD__);
return true;
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:39,代码来源:VideosModuleHooks.class.php
示例12: replaceSection
/**
* @see Content::replaceSection()
*/
public function replaceSection($section, Content $with, $sectionTitle = '')
{
wfProfileIn(__METHOD__);
$myModelId = $this->getModel();
$sectionModelId = $with->getModel();
if ($sectionModelId != $myModelId) {
wfProfileOut(__METHOD__);
throw new MWException("Incompatible content model for section: " . "document uses {$myModelId} but " . "section uses {$sectionModelId}.");
}
$oldtext = $this->getNativeData();
$text = $with->getNativeData();
if ($section === '') {
wfProfileOut(__METHOD__);
return $with;
# XXX: copy first?
}
if ($section == 'new') {
# Inserting a new section
$subject = $sectionTitle ? wfMessage('newsectionheaderdefaultlevel')->rawParams($sectionTitle)->inContentLanguage()->text() . "\n\n" : '';
if (wfRunHooks('PlaceNewSection', array($this, $oldtext, $subject, &$text))) {
$text = strlen(trim($oldtext)) > 0 ? "{$oldtext}\n\n{$subject}{$text}" : "{$subject}{$text}";
}
} else {
# Replacing an existing section; roll out the big guns
global $wgParser;
$text = $wgParser->replaceSection($oldtext, $section, $text);
}
$newContent = new WikitextContent($text);
wfProfileOut(__METHOD__);
return $newContent;
}
开发者ID:mangowi,项目名称:mediawiki,代码行数:34,代码来源:WikitextContent.php
示例13: executeButton
/**
* Execute function for generating view of Button template
* Sets params' values of template
* @param $params array of params described below
* @param $params['link_url'] string Full link to some destination (mandatory)
* @param $params['link_text'] string Description showed on a button
*/
public function executeButton($params)
{
wfProfileIn(__METHOD__);
$this->link_url = $params['link_url'];
$this->link_text = array_key_exists('link_text', $params) ? $params['link_text'] : $this->link_url;
wfProfileOut(__METHOD__);
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:14,代码来源:EmailTemplatesController.class.php
示例14: index
public function index()
{
wfProfileIn(__METHOD__);
$socialSharingService = SocialSharingService::getInstance();
$this->setVal('networks', $socialSharingService->getNetworks(array('facebook', 'twitter', 'plusone', 'email')));
wfProfileOut(__METHOD__);
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:7,代码来源:WikiaMobileSharingService.class.php
示例15: collect
protected function collect()
{
global $wgHitcounterUpdateFreq;
$dbw = wfGetDB(DB_MASTER);
$rown = $dbw->selectField('hitcounter', 'COUNT(*)', array(), __METHOD__);
if ($rown < $wgHitcounterUpdateFreq) {
return;
}
wfProfileIn(__METHOD__ . '-collect');
$old_user_abort = ignore_user_abort(true);
$dbw->lockTables(array(), array('hitcounter'), __METHOD__, false);
$dbType = $dbw->getType();
$tabletype = $dbType == 'mysql' ? "ENGINE=HEAP " : '';
$hitcounterTable = $dbw->tableName('hitcounter');
$acchitsTable = $dbw->tableName('acchits');
$pageTable = $dbw->tableName('page');
$dbw->query("CREATE TEMPORARY TABLE {$acchitsTable} {$tabletype} AS " . "SELECT hc_id,COUNT(*) AS hc_n FROM {$hitcounterTable} " . 'GROUP BY hc_id', __METHOD__);
$dbw->delete('hitcounter', '*', __METHOD__);
$dbw->unlockTables(__METHOD__);
if ($dbType == 'mysql') {
$dbw->query("UPDATE {$pageTable},{$acchitsTable} SET page_counter=page_counter + hc_n " . 'WHERE page_id = hc_id', __METHOD__);
} else {
$dbw->query("UPDATE {$pageTable} SET page_counter=page_counter + hc_n " . "FROM {$acchitsTable} WHERE page_id = hc_id", __METHOD__);
}
$dbw->query("DROP TABLE {$acchitsTable}", __METHOD__);
ignore_user_abort($old_user_abort);
wfProfileOut(__METHOD__ . '-collect');
}
开发者ID:Tarendai,项目名称:spring-website,代码行数:28,代码来源:ViewCountUpdate.php
示例16: performAction
function performAction()
{
global $wgAjaxExportList, $wgOut;
if (empty($this->mode)) {
return;
}
wfProfileIn('AjaxDispatcher::performAction');
if (!in_array($this->func_name, $wgAjaxExportList)) {
header('Status: 400 Bad Request', true, 400);
print "unknown function " . htmlspecialchars((string) $this->func_name);
} else {
try {
$result = call_user_func_array($this->func_name, $this->args);
if ($result === false || $result === NULL) {
header('Status: 500 Internal Error', true, 500);
echo "{$this->func_name} returned no data";
} else {
if (is_string($result)) {
$result = new AjaxResponse($result);
}
$result->sendHeaders();
$result->printText();
}
} catch (Exception $e) {
if (!headers_sent()) {
header('Status: 500 Internal Error', true, 500);
print $e->getMessage();
} else {
print $e->getMessage();
}
}
}
wfProfileOut('AjaxDispatcher::performAction');
$wgOut = null;
}
开发者ID:puring0815,项目名称:OpenKore,代码行数:35,代码来源:AjaxDispatcher.php
示例17: getHtml
/**
* Returns the HTML which is added to $wgOut after the article text.
*
* @return string
*/
protected function getHtml()
{
wfProfileIn(__METHOD__ . ' (SMW)');
if ($this->limit > 0) {
// limit==0: configuration setting to disable this completely
$store = smwfGetStore();
$description = new SMWConceptDescription($this->getDataItem());
$query = SMWPageLister::getQuery($description, $this->limit, $this->from, $this->until);
$queryResult = $store->getQueryResult($query);
$diWikiPages = $queryResult->getResults();
if ($this->until !== '') {
$diWikiPages = array_reverse($diWikiPages);
}
$errors = $queryResult->getErrors();
} else {
$diWikiPages = array();
$errors = array();
}
$pageLister = new SMWPageLister($diWikiPages, null, $this->limit, $this->from, $this->until);
$this->mTitle->setFragment('#SMWResults');
// Make navigation point to the result list.
$navigation = $pageLister->getNavigationLinks($this->mTitle);
$titleText = htmlspecialchars($this->mTitle->getText());
$resultNumber = min($this->limit, count($diWikiPages));
$result = "<a name=\"SMWResults\"></a><div id=\"mw-pages\">\n" . '<h2>' . wfMsg('smw_concept_header', $titleText) . "</h2>\n" . wfMsgExt('smw_conceptarticlecount', array('parsemag'), $resultNumber) . smwfEncodeMessages($errors) . "\n" . $navigation . $pageLister->formatList() . $navigation . "</div>\n";
wfProfileOut(__METHOD__ . ' (SMW)');
return $result;
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:33,代码来源:SMW_ConceptPage.php
示例18: getExhibitionItems
public function getExhibitionItems(Title $title)
{
wfProfileIn(__METHOD__);
if (class_exists('CategoryDataService')) {
$cacheKey = $this->getExhibitionItemsCacheKey($title->getText());
$items = $this->wg->memc->get($cacheKey);
if (!is_array($items)) {
$exh = CategoryDataService::getMostVisited($title->getDBkey(), null, self::EXHIBITION_ITEMS_LIMIT);
$ids = array_keys($exh);
$length = count($ids);
$items = array();
for ($i = 0; $i < $length; $i++) {
$pageId = $ids[$i];
$imgRespnse = $this->app->sendRequest('ImageServing', 'index', array('ids' => array($pageId), 'height' => 150, 'width' => 150, 'count' => 1));
$img = $imgRespnse->getVal('result');
if (!empty($img[$pageId])) {
$img = $img[$pageId][0]['url'];
} else {
$img = false;
}
$oTitle = Title::newFromID($pageId);
$items[] = ['img' => $img, 'title' => $oTitle->getText(), 'url' => $oTitle->getFullURL()];
}
$this->wg->memc->set($cacheKey, $items, self::CACHE_TTL_EXHIBITION);
}
wfProfileOut(__METHOD__);
return $items;
}
wfProfileOut(__METHOD__);
return false;
}
开发者ID:Tjorriemorrie,项目名称:app,代码行数:31,代码来源:WikiaMobileCategoryModel.class.php
示例19: getHTML
/**
* Format the category data list.
*
* @return string HTML output
*/
public function getHTML()
{
global $wgCategoryMagicGallery;
wfProfileIn(__METHOD__);
$this->showGallery = $wgCategoryMagicGallery && !$this->getOutput()->mNoGallery;
$this->clearCategoryState();
$this->doCategoryQuery();
$this->finaliseCategoryState();
$r = $this->getSubcategorySection() . $this->getPagesSection() . $this->getImageSection();
if ($r == '') {
// If there is no category content to display, only
// show the top part of the navigation links.
// @todo FIXME: Cannot be completely suppressed because it
// is unknown if 'until' or 'from' makes this
// give 0 results.
$r = $r . $this->getCategoryTop();
} else {
$r = $this->getCategoryTop() . $r . $this->getCategoryBottom();
}
// Give a proper message if category is empty
if ($r == '') {
$r = wfMsgExt('category-empty', array('parse'));
}
$lang = $this->getLanguage();
$langAttribs = array('lang' => $lang->getCode(), 'dir' => $lang->getDir());
# put a div around the headings which are in the user language
$r = Html::openElement('div', $langAttribs) . $r . '</div>';
wfProfileOut(__METHOD__);
return $r;
}
开发者ID:laiello,项目名称:media-wiki-law,代码行数:35,代码来源:CategoryViewer.php
示例20: open
/** Open an MSSQL database and return a resource handle to it
* NOTE: only $dbName is used, the other parameters are irrelevant for MSSQL databases
*/
function open($server, $user, $password, $dbName)
{
wfProfileIn(__METHOD__);
# Test for missing mysql.so
# First try to load it
if (!@extension_loaded('mssql')) {
@dl('mssql.so');
}
# Fail now
# Otherwise we get a suppressed fatal error, which is very hard to track down
if (!function_exists('mssql_connect')) {
throw new DBConnectionError($this, "MSSQL functions missing, have you compiled PHP with the --with-mssql option?\n");
}
$this->close();
$this->mServer = $server;
$this->mUser = $user;
$this->mPassword = $password;
$this->mDBname = $dbName;
wfProfileIn("dbconnect-{$server}");
# Try to connect up to three times
# The kernel's default SYN retransmission period is far too slow for us,
# so we use a short timeout plus a manual retry.
$this->mConn = false;
$max = 3;
for ($i = 0; $i < $max && !$this->mConn; $i++) {
if ($i > 1) {
usleep(1000);
}
if ($this->mFlags & DBO_PERSISTENT) {
@($this->mConn = mssql_pconnect($server, $user, $password));
} else {
# Create a new connection...
@($this->mConn = mssql_connect($server, $user, $password, true));
}
}
wfProfileOut("dbconnect-{$server}");
if ($dbName != '') {
if ($this->mConn !== false) {
$success = @mssql_select_db($dbName, $this->mConn);
if (!$success) {
$error = "Error selecting database {$dbName} on server {$this->mServer} " . "from client host " . wfHostname() . "\n";
wfLogDBError(" Error selecting database {$dbName} on server {$this->mServer} \n");
wfDebug($error);
}
} else {
wfDebug("DB connection error\n");
wfDebug("Server: {$server}, User: {$user}, Password: " . substr($password, 0, 3) . "...\n");
$success = false;
}
} else {
# Delay USE query
$success = (bool) $this->mConn;
}
if (!$success) {
$this->reportConnectionError();
}
$this->mOpened = $success;
wfProfileOut(__METHOD__);
return $success;
}
开发者ID:rocLv,项目名称:conference,代码行数:63,代码来源:DatabaseMssql.php
注:本文中的wfProfileIn函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论