Commit graph

30 commits

Author SHA1 Message Date
addshore
029ee57a8a Add getStatsdDataFactory to MediawikiServices
Change-Id: Iaf89d5d7887f766064266874ea7ba73362531ed2
2016-04-19 13:11:38 +01:00
Ori Livneh
8340400f27 Add Timing interface
* Add `Timing`, an interface which mimics the W3C User Timing API.
  It provides a canonical way to store and retrieve markers (timestamps)
  and measures (timestamps + duration).
* As the initial use-case, use it to record 'requestShutdown'.

Change-Id: I36b29162ffcc091406df025463b0e2797e52f19a
2015-11-03 15:05:37 -08:00
Kunal Mehta
f318d7a04b Add base interface for setters in RequestContext and DerivativeContext
Change-Id: I819633ca5344f73a196623569bb58fd8372d6779
2015-08-03 11:55:41 +00:00
Ori Livneh
be250544ea Ensure DerivativeContext has a $stats property
Should have been a part of Ie10db1c15 but wasn't.

Change-Id: I4552390e1476766ae2d0946df3836a8a14182b34
2015-07-02 00:41:09 +00:00
Ori Livneh
87dfc20b1e Add StatsD metric logging
This patch adds a metric data service object to the IContextSource interface,
with full support for StatsD meters, gauges, counters and timing metrics, via
the liuggio/statsd-php-client, which this patch also introduces.

Usage example:

    $stats = $context->getStats();
    $stats->increment( 'resourceloader.cache.hits' );
    $stats->timing( 'resourceloader.cache.rtt', $rtt );

The metrics are flushed to a StatsD server, which may be specified via the
'StatsdServer' configuration key. If no such configuration key exists, the
metrics are discarded.

The StatsD client supplants MediaWiki's StatCounter class. wfIncrStats()
will continue to work, but it will delegate to the StatsD data object.

Change-Id: Ie10db1c154d225971398e189737de7c560bf0f90
2015-03-09 16:57:14 -07:00
Aaron Schulz
0d84b20a7c Added clarifying comments to IContextSource
* Also removed some duplicated comments

Change-Id: I2c967d0f3219f3533378ecd5f9fccc40c8f9b219
2015-03-07 13:39:07 -08:00
umherirrender
02dc9da399 Cleanup some docs (includes/[a-d])
- Swap "$variable type" to "type $variable"
- Added missing types
- Fixed spacing inside docs
- Makes beginning of @param/@return/@var/@throws in capital
- Changed some types to match the more common spelling

Change-Id: I7b65fe04db431342cc58b469dc48f41a50c4e891
2014-07-24 19:42:45 +02:00
withoutaname
a395db765b Enforce type hinting for setTitle() in IContextSource subclasses
Change-Id: Iecd8535b04072823a6f4efe33697148f4d20118e
2014-07-13 01:05:39 +00:00
withoutaname
1be828aa6c Removed setLang() too from IContextSource subclasses
getLang() has been removed by e45e0b1a6.

Change-Id: I813f96b78211fbbe5b2e93488fcf1c28878b8d5a
2014-06-22 19:54:14 +00:00
withoutaname
e45e0b1a66 Removed getLang() from IContextSource and subclasses
Change-Id: I94c3df814c06c54c071f371101882dcc71c99417
2014-06-20 11:36:59 -07:00
Kunal Mehta
07c748343c DerivativeContext::setConfig should take a Config object
Change-Id: Icc16a9c206c57fac2d26547cb874e02ef09c0485
Follows-Up: I13baec0b6d4ea7badf20b9c5f9b40846348838e4
2014-05-26 19:36:59 -07:00
Marius Hoch
e2fbfb2f3b Document that IContextSource::getTitle can return null
That can happen if wgTitle is null.

Change-Id: I3d8aab232d408e75afb8be82ca714bf5c4fe2427
2014-04-24 19:53:20 +02:00
Kunal Mehta
fbfe789b98 Config: Add Config and GlobalConfig classes
Allows configuration options to be fetched from context.

Only one implementation, GlobalConfig, is provided, which
simply returns $GLOBALS[$name]. There can be more classes
in the future, possibly a database-based one. For convinience
the "wg" prefix is automatically added.

Ironically, this adds the $wgConfigClass global variable
which is used to determine which implementation of Config
to use by default.

The ContextSource getConfig and setConfig methods were introduced
in I23194d1ba (1.23), but have no uses in Gerrit, so they can safely
be re-purposed.

Change-Id: I13baec0b6d4ea7badf20b9c5f9b40846348838e4
2014-01-27 21:10:30 -08:00
Kunal Mehta
7e0ab7ffd0 Fix typo in DerivativeContext doc
Change-Id: Ife6395fa7f78cb7b52b78cc60419fd387bd8509c
2013-12-25 22:56:49 -08:00
jenkins-bot
57d3f41876 Merge "Begin exposing SiteConfiguration via site contexts" 2013-12-09 12:28:51 +00:00
Siebrand Mazeland
1cdc4ef09b Update formatting and documentation in includes/context/
Change-Id: I8bfdbe8f6d9c325063678e24a9d604f18eb83fc3
2013-11-20 05:25:22 +00:00
Chad Horohoe
101a2a160b Begin exposing SiteConfiguration via site contexts
First step of providing configuration without relying on globals.

You can use this in your code now as follows:
 $myvar = $context->getConfig()->get( 'wgMyVar' )

Change-Id: I23194d1ba747a9e0d925154ae065cbd612b4f591
2013-10-25 14:19:04 -07:00
Brad Jorsch
fc684345b1 Allow $context->setTitle( null )
If something is messing around with $wgTitle before MediaWiki::main()
sets $wgTitle in the first place, it needs to be able to reset it back
to null to avoid a problem like bug 53498. And to do that properly, it
also needs to be able to clear the title in the RequestContext.

Bug: 55435
Change-Id: I6c763b70bbffa0762ca52e61acf7dc200da4075f
2013-10-07 15:01:01 -04:00
Brian Wolff
45024d218d Make msg method of DerivativeContext work properly.
Previously, the msg method was not taking into account any
changes to the context, and was just using the original context.

For example, if you had a DerivativeContext object, where the
original context had a language of en, and then you did
$derivContext->setLanguage( 'fr' );, $derivContext->msg( 'foo' )
was still outputting stuff in english instead of french.

Change-Id: I4a87e0e2664e77bf79a80c873db384e0c3f607e7
2013-08-18 09:20:38 +00:00
Timo Tijhof
176c5354bb docs: Consistently use "since" phrasing in @deprecated
Most have it already:
https://doc.wikimedia.org/mediawiki-core/master/php/html/deprecated.html

Ran a find/replace on "@deprecated \d" to fix the odd ones.

Change-Id: I5217aaf75264a0036b5426cd8536116b4bb8f535
2013-05-15 00:56:57 +00:00
Siebrand Mazeland
f741f6c092 Update doc comments and code formatting.
Change-Id: I1896d7b1ab5d11d3a609fd97db7c503ad6c590e5
2013-01-11 16:56:04 +01:00
Siebrand Mazeland
d4b046a893 Update docs for return and exception info
* Removed some inline tabs in the process.
* IDE fixed some incorrect leading spaces, too.

Change-Id: Ic9303eff6db4424ac3f1fa2816839692b43e6190
2012-10-09 09:41:58 +00:00
Alexandre Emsenhuber
caf5df17ab Per Aaron, fix for r108274: added canUseWikiPage() to context objects to know whether getWikiPage() can be safely called 2012-01-14 14:27:46 +00:00
Alexandre Emsenhuber
418b3503b1 * Added WikiPage to RequestContext and related so that it can be shared to avoid creating a new object each time and thus avoiding database queries to load the state of the object
* Added Article::getPage() as accessor to the WikiPage object so that it can be set in the context from MediaWiki::initializeArticle()
* Use it WikiPage::main() to call doViewUpdates()

I'm doing to this now so that I can revert r105790 and use the WikiPage object before the 1.19 release
2012-01-06 20:00:04 +00:00
Jeroen De Dauw
49cdca93be add missing deprecation notices and added deprecation version to existing ones 2011-12-13 05:19:05 +00:00
Daniel Friesen
b9e1326d30 Add missing @since tags for getLanguage and deal with this sanitizeLangCode fatal that no-one bothered to fix. 2011-12-05 18:56:09 +00:00
John Du Hart
51a6eadec1 Followup r103817, updating setLang usages 2011-11-23 10:28:21 +00:00
John Du Hart
216d661d3b Bug 29524 - Rename RequestContext::getLang to getLanguage
I'll be amazed if this doens't break any tests.
2011-11-21 16:13:21 +00:00
Sam Reed
f6300aaeae Leave a fixme comment on context stuff 2011-10-26 04:15:54 +00:00
Daniel Friesen
8dfa97ff0a Separate RequestContext.php into separate files inside of context/
Update the AutoLoader too. This is also a follow up to r97161 since I forgot to add the AutoLoader line.
2011-09-15 17:42:17 +00:00