* "@example" is specifically for creating entries on the "Examples"
page produced by Doxygen, which is not specific to individual classes
or methods, but rather is meant to be about the software as a whole.
There are currently four entries produced there, and they are all broken:
- .../src/includes/rcfeed/RedisPubSubFeedEngine.php (unnamed example, broken)
- .../src/tests/phpunit/MediaWikiTestCase.php (unnamed example)
- 42 (empty page named "42")
- user (empty page named "user")
* Remove usage and replace with either a regular paragraph that is
part of the member/method/class description, or for code examples,
use "@par" to create a sub heading, and then a @code-@endcode block.
Change-Id: I52c937fef4b377173f6c4dbad9dc4a9f8beae4ee
Previously:
* Engines had to be registered in $wgRCEngines.
* The RCFeedEngine classes took no constructor arguments and
were expected to send whatever text is previously formatted
without any information about it. This generic design was
flexible in allowing one to use any formatter with any engine
with minimal configuration and no need for additional classes.
* Each feed configured their destination by setting a 'uri'
option that encodes the name of the engine in PHP as the uri
scheme. Other uri components had to be used for any other
parameters to the engine (host, port, path). While fairly
limited, it was sufficient for the default engines in core.
Changes:
* Allow feed classes to be directly associated with a feed in $wgRCFeeds
via a new 'class' option - without the indirection of 'uri' and
$wgRCEngines. All options are passed to the given class constructor.
This matches the design used elsewhere in MediaWiki. (ObjectCache,
FileRepo, FileBackend, JobQueue, LBFactory, etc.)
This means we no longer enforce a 1:1 mapping of internet protocols
to a specific feed engine, and it allows settings to be passed
without being encoded as a URI neccecarily.
Main use case for this refactor is EventBus (see I7edc4d57fa),
Interestingly, this matches the (then incorrect) documentation
written for $wgRCFeeds in 2961884b43 (which mentions an 'engine'
property that would do the same thing).
* Move the default 'omit' filters and unrestricted 'formatter' handling
to a new FormattedRCFeed class, which remains the default.
* Deprecate RecentChange::getEngine() in favour of RCFeed::factory().
* Document wgRCEngines as "@since 1.22". Follows 2961884b43, ffc71cb6af.
Change-Id: I8be497c623c5d928762e3d3406a388f4d91add9a
* Added license headers to everything
* Added @since tags for all classes
* Use wfParseUrl instead of parse_url
* Check for RedisConnectionPool::getConnection returning false
Change-Id: I7db808c0465bd869de3f2daa82444b5e3d1268c2
This patch adds a class which implements the RCFeedEngine interface by
publishing recent change notifications to Redis. The class handles the
'redis://' URI scheme. Recent changes are PUBLISHed to the channel 'rc'; a
different channel name may be specified as a path component.
Change-Id: I846036c091c45059a8947245a1efe92c9800dcf4