Le 26/11/13 22:12, Tyler Romeo a écrit :
Hey everybody,
tl;dr - How do we add 3rd party libs to core: composer, git submodules, or
copying the code?
Hello,
Thank you for bringing the subject there. A few folks are eager to have
composer support for MediaWiki / extensions. I could not find anytime
to work on it though :-(
Basically:
We tend to copy code and let it bit rot. At least there is no unexpected
breakage.
Git submodules are a mess, needs to download code from github/whatever.
And I tend to dislike submodules.
Result: we need a dependency manager
Fact: Composer is more modern than pear
You should talk about it with Jeroen De Dauw. Since I talked about
composer with him he converted all his extensions to it and seems to
really want us to finally use composer for everything. He largely
rewrote the lame page I have dumped a year ago at
https://www.mediawiki.org/wiki/Composer
As usual with Jeroen, it is fully documented with nice examples and step
by step tutorials. Definitely worth a read.
Also look at:
http://www.bn2vs.com/blog/2013/11/24/introduction-to-composer-for-mediawiki…
<snip>
Also, just to clarify, this is not an out-of-the-blue
request for comment.
I am currently considering whether we might want to replace our
HttpFunctions file with the third-party Guzzle library, since the latter is
very stable, much much more functional, and a lot easier to use. However,
this is out-of-scope for the discussion, so if you have an opinion on
whether doing this is a good/bad idea, please start another thread.
We invented the wheel but forgot to evangelize our classes or make them
easy to reuse. So we are left with a bunch of code which is robust but
has counterpart which are more modern / populars. I wish years ago we
thought about code reusability and publishing our classes as easy to use
modules. We would have ended up as a leading PHP group, that was not a
priority though, the Wikimedia sites is.
You could start out a RFC to identify class that be replaced by a better
third party libraries. I don't mind.
Symfony (a french PHP framework which is really spring for PHP) has a
bunch of reusable components:
http://symfony.com/components
Among them:
Console : could a bunch of our Maintenance class
HttpFoundation : what you said, HTTP on rails
Routing : do we have a router?
..
cheers,
--
Antoine "hashar" Musso