for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare( strict_types = 1 );
namespace IdGenerator;
use MediaWiki\MediaWikiServices;
use Parser;
class IdGeneratorSetup {
/**
* @var IdGeneratorFactory
*/
private static $factory;
public static function onExtensionFunction() {
self::$factory = new IdGeneratorFactory();
$GLOBALS['wgHooks']['ParserFirstCallInit'][] = function ( Parser &$parser ) {
foreach ( [ 'generate_id', 'generateid' ] as $functionName ) {
$parser->setFunctionHook(
$functionName,
function ( Parser $parser, string $param = '' ) {
$generator = self::$factory->getIdGenerator(
MediaWikiServices::getInstance()->getDBLoadBalancer()
);
return [
$generator->getNewId( $param ),
'noparse' => true
];
}
};