[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wikitech-l
Subject:    Re: [Wikitech-l] MW 1.25 new extension registration - PHP constants
From:       Jason Ji <jason.y.ji () gmail ! com>
Date:       2015-10-30 19:36:53
Message-ID: CAKn-1sih8=KRHs3G2vB0pErVboon09Dq9WVB-0mTp7uHawrY9Q () mail ! gmail ! com
[Download RAW message or body]

And thanks to you for suggesting the idea and getting on it so quickly!

--
Jason Ji
jason.y.ji@gmail.com

On Fri, Oct 30, 2015 at 3:35 PM, Florian Schmidt <
florian.schmidt.welzow@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-bounces@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.ji@gmail.com
>
> On Fri, Oct 30, 2015 at 2:06 PM, Florian Schmidt <
> florian.schmidt.welzow@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-bounces@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.ji@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
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic