Hi,

thanks for opening the task! :) I was free and started to work on this some 
minutes ago, because I really like the idea, so I already added a change to 
gerrit, before anyone has the chance to discuss this :( But I hope, that we get 
such a function into ExtensionRegistration! Big thanks again for bringing this 
up.

Best,
Florian

-----Ursprüngliche Nachricht-----
Von: Wikitech-l [mailto:[email protected]] Im Auftrag von 
Jason Ji
Gesendet: Freitag, 30. Oktober 2015 20:25
An: Wikimedia developers <[email protected]>
Betreff: Re: [Wikitech-l] MW 1.25 new extension registration - PHP constants

Hi Florian,

Thanks! For my immediate purposes, I think just doing the isLoaded() check will 
probably suffice, as I don't actually have any need to check versions at the 
moment. But I agree with your suggestion, extending the 'requires'
section of extension.json does seem like it would be very helpful and extension 
developer-friendly, and that's a great idea.

I've opened a Phabricator task here
<https://phabricator.wikimedia.org/T117277>, but feel free to tweak it if I've 
described something poorly or didn't tag it correctly - I've never actually 
created a task in Phabricator before.

Thanks!

--
Jason Ji
[email protected]

On Fri, Oct 30, 2015 at 2:06 PM, Florian Schmidt < 
[email protected]> wrote:

> You can, in your php extension code, so not inside the extension.json, 
> check, if another extension is installed or not:
>
> ExtensionRegistry::getInstance()->isLoaded( 'ExtensionName' );
>
> There's also a "requires" section, which is parsed in extension.json, 
> but it currently only supports MediaWiki core versions (it behaves 
> like composer's requires section). I'm wondering, if dependencies like 
> yours are widely used and if extending the requires section support to 
> extensions would help to solve your problem (with that you could 
> specify a specific version, a range of version or any version above a 
> specific one, or all versions, too, so your VIKIJS_VERSION wouldn't be needed 
> anymore, too).
> Would you like to open a task in phabricator to discuss this?
>
> Best,
> Florian
>
> -----Ursprüngliche Nachricht-----
> Von: Wikitech-l [mailto:[email protected]] Im 
> Auftrag von Jason Ji
> Gesendet: Freitag, 30. Oktober 2015 17:00
> An: [email protected]
> Betreff: [Wikitech-l] MW 1.25 new extension registration - PHP 
> constants
>
> Hi there,
>
> I'm the primary developer of the VIKI
> <https://www.mediawiki.org/wiki/Extension:VIKI> extension and its two 
> companion extensions, VikiSemanticTitle < 
> https://www.mediawiki.org/wiki/Extension:VikiSemanticTitle> and 
> VikiTitleIcon <https://www.mediawiki.org/wiki/Extension:VikiTitleIcon>.
>
> I thought I'd take a look at converting these three extensions to the 
> new extension registration < 
> https://www.mediawiki.org/wiki/Manual:Extension_registration> format, 
> but I ran into a problem. According to the documentation, the new 
> extension registration does not support PHP constants < 
> https://www.mediawiki.org/wiki/Manual:Extension_registration/Limitations>.
>
> I use a PHP constant to declare an explicit dependency on VIKI for 
> VikiSemanticTitle and VikiTitleIcon. In my VIKI.php file, I declare:
>
> *define( 'VIKIJS_VERSION', '1.3');*
>
> And then in VikiSemanticTitle and VikiTitleIcon, I have a check that 
> looks something like:
>
> *if( !defined( 'VIKIJS_VERSION' ) ) {*
> *      die('Error: The extension VikiSemanticTitle requires VIKI to be
> installed first.');*
> *}*
>
> (As an aside, I also happen to use VIKIJS_VERSION as my version 
> number, which I increment as I release new versions. But that's not as 
> important.)
>
> Because the new extension registration format doesn't support PHP 
> constants, this no longer works, and I can't run VikiSemanticTitle and 
> VikiTitleIcon alongside VIKI - the VIKIJS_VERSION constant is 
> seemingly no longer defined, so any page load dies with the error message 
> above.
>
> If I can't use PHP constants anymore, does anyone have a better 
> recommendation for declaring explicit dependencies? Or should I just 
> avoid migrating the VIKI extensions to the new registration format?
>
> Thanks,
>
> --
> Jason Ji
> [email protected]
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
>
>
> _______________________________________________
> Wikitech-l mailing list
> [email protected]
> https://lists.wikimedia.org/mailman/listinfo/wikitech-l
_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l


_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to