for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SESP;
use SESP\Annotator\ShortUrlAnnotator;
use SESP\Annotator\ExifDataAnnotator;
use SMW\SemanticData;
use File;
use Title;
/**
* @license GNU GPL v2+
* @since 1.3
*
* @author mwjames
*/
class AppFactory {
* @var string
private $shortUrlPrefix;
public function __construct( $shortUrlPrefix = '' ) {
$this->shortUrlPrefix = $shortUrlPrefix;
}
* @return DatabaseBase
public function newDatabaseConnection() {
return wfGetDB( DB_SLAVE );
* @param Title $title
* @return WikiPage
public function newWikiPage( Title $title ) {
// #55
// Fight a possible DB corruption and avoid "NS_MEDIA is a virtual namespace; use NS_FILE"
if ( $title->getNamespace() === NS_MEDIA ) {
$title = Title::makeTitleSafe(
NS_FILE,
$title->getDBkey(),
$title->getInterwiki(),
$title->getFragment()
);
return \WikiPage::factory( $title );
* @return User
public function newUserFromTitle( Title $title ) {
return \User::newFromName( $title->getText() );
* @param SemanticData $semanticData
* @return ShortUrlAnnotator
public function newShortUrlAnnotator( SemanticData $semanticData ) {
$shortUrlAnnotator = new ShortUrlAnnotator( $semanticData );
$shortUrlAnnotator->setShortUrlPrefix( $this->shortUrlPrefix );
return $shortUrlAnnotator;
* @param File $file
* @return ExifDataAnnotator
public function newExifDataAnnotator( SemanticData $semanticData, File $file ) {
return new ExifDataAnnotator( $semanticData, $file );