And thanks to you for suggesting the idea and getting on it so quickly! -- Jason Ji jason.y...@gmail.com
On Fri, Oct 30, 2015 at 3:35 PM, Florian Schmidt < florian.schmidt.wel...@t-online.de> wrote: > 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:wikitech-l-boun...@lists.wikimedia.org] Im > Auftrag von Jason Ji > Gesendet: Freitag, 30. Oktober 2015 20:25 > An: Wikimedia developers <wikitech-l@lists.wikimedia.org> > 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 > jason.y...@gmail.com > > On Fri, Oct 30, 2015 at 2:06 PM, Florian Schmidt < > florian.schmidt.wel...@t-online.de> 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:wikitech-l-boun...@lists.wikimedia.org] Im > > Auftrag von Jason Ji > > Gesendet: Freitag, 30. Oktober 2015 17:00 > > An: wikitech-l@lists.wikimedia.org > > 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 > > jason.y...@gmail.com > > _______________________________________________ > > Wikitech-l mailing list > > Wikitech-l@lists.wikimedia.org > > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > > > > > > _______________________________________________ > > Wikitech-l mailing list > > Wikitech-l@lists.wikimedia.org > > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > _______________________________________________ > Wikitech-l mailing list > Wikitech-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > > > _______________________________________________ > Wikitech-l mailing list > Wikitech-l@lists.wikimedia.org > https://lists.wikimedia.org/mailman/listinfo/wikitech-l > _______________________________________________ Wikitech-l mailing list Wikitech-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/wikitech-l