Difference between revisions of "Composer (PHP)"
(Created page with "Some extensions of MediWiki are managed by composer. Documentation: * [https://www.mediawiki.org/wiki/Composer Composer (MediaWiki)] * [http://www.mediawiki.org/wiki/Category:...") |
m (→Add an extension) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | Some extensions of MediWiki are managed by composer. Documentation: | + | Some extensions of MediWiki are managed by composer, a snmall PHP script. This tool is intended to manage dependencies and needed versions of software components, such as MediaWiki extensions. It needs a basic configuration file (<code>composer.json</code> in the wiki root folder) and installation or removal of extensions is ''done on the command line''. |
+ | |||
+ | Documentation: | ||
* [https://www.mediawiki.org/wiki/Composer Composer (MediaWiki)] | * [https://www.mediawiki.org/wiki/Composer Composer (MediaWiki)] | ||
* [http://www.mediawiki.org/wiki/Category:Extensions_supporting_Composer Extensions supporting Composer (MediaWiki)] | * [http://www.mediawiki.org/wiki/Category:Extensions_supporting_Composer Extensions supporting Composer (MediaWiki)] | ||
* https://packagist.org/search/ search any composer managed extension | * https://packagist.org/search/ search any composer managed extension | ||
* Composer itself: https://getcomposer.org/doc/ the very composer documentation | * Composer itself: https://getcomposer.org/doc/ the very composer documentation | ||
− | |||
− | Step 0: First install of PHP composer tool itself: | + | __TOC__ |
+ | |||
+ | |||
+ | Step 0: First install of PHP composer tool itself to a local shared <code>bin</code>-directory: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd ~ # go to personal home directory | cd ~ # go to personal home directory | ||
Line 16: | Line 20: | ||
− | Step 1: Manage your required extensions in file <code>composer.json</code> in the root wiki folder. | + | Step 1: Manage your required extensions in file <code>composer.local.json</code> in the root wiki folder and ''not'' in composer.json wich is the basic setup shipped by the Mediawiki installation. File <code>composer.json</code> can look like: |
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
{ | { | ||
"require": { | "require": { | ||
− | "php": ">=5.3.2 | + | "php": ">=5.3.2" |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
}, | }, | ||
"suggest": { | "suggest": { | ||
Line 49: | Line 47: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | Step 2: [[#add extension|add extension]] | |
− | |||
− | + | == Add an extension{{anchor|add extension}} == | |
+ | |||
+ | Read the documentation of the extension what kind of version you need and so forth, the extension’s documentation should describe it sufficiently. | ||
+ | |||
+ | It is recommended to manage additional extensions in a separate file, <code>composer.local.json</code>. It can look like: | ||
+ | <syntaxhighlight lang="javascript"> | ||
+ | { | ||
+ | "require": { | ||
+ | "mediawiki/semantic-media-wiki": "2.3.1", | ||
+ | "mediawiki/semantic-forms": "3.5", | ||
+ | "mediawiki/semantic-result-formats": "2.3", | ||
+ | "mediawiki/semantic-maps": "3.3", | ||
+ | "phpoffice/phpexcel": "1.8.1", | ||
+ | "mediawiki/graph-viz": "1.6.0", | ||
+ | "mediawiki/sub-page-list": "1.1.2", | ||
+ | "mediawiki/translate": "2016.01", | ||
+ | "mustangostang/spyc": "0.5.1", | ||
+ | "mediawiki/cldr": "2016.01" | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Step 3: [[#update of extensions|update extensions]]. | ||
+ | |||
+ | There is also a “require”-command that will update your <code>composer.json</code> as well as install the extension including potential dependencies. But it’s rather recommended to use the extra <code>composer.local.json</code> because the default <code>composer.json</code> shipped by wiki software can get overwritten. To add and install an extensions in this manner to <code>composer.json</code> run | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd /var/www/path/to-wiki-root/ | cd /var/www/path/to-wiki-root/ | ||
− | sudo -u www-data php /usr/local/bin/composer.phar require mediawiki/semantic-maps '3.1.3' | + | sudo -u www-data php /usr/local/bin/composer.phar require 'mediawiki/semantic-maps' '3.1.3' |
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | == Update extensions{{anchor|update of extensions}} == | ||
+ | |||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd /var/www/path/to-wiki-root/ | ||
+ | # update only a single extension and their dependencies | ||
+ | sudo -u www-data php /usr/local/bin/composer.phar update --no-dev mediawiki/graph-viz | ||
+ | # update all extensions and their dependencies | ||
+ | sudo -u www-data php /usr/local/bin/composer.phar update --no-dev | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Remove an extension == | ||
+ | |||
+ | See https://getcomposer.org/doc/03-cli.md#remove | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | cd /var/www/path/to-wiki-root/ | ||
+ | sudo -u www-data php /usr/local/bin/composer.phar remove 'mediawiki/semantic-maps' | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == Self Update of composer == | ||
+ | |||
+ | sudo php /usr/local/bin/composer.phar self-update | ||
[[Category: MediaWiki]] | [[Category: MediaWiki]] | ||
[[Category: Maintenance]] | [[Category: Maintenance]] |
Latest revision as of 09:14, 25 April 2016
Some extensions of MediWiki are managed by composer, a snmall PHP script. This tool is intended to manage dependencies and needed versions of software components, such as MediaWiki extensions. It needs a basic configuration file (composer.json
in the wiki root folder) and installation or removal of extensions is done on the command line.
Documentation:
- Composer (MediaWiki)
- Extensions supporting Composer (MediaWiki)
- https://packagist.org/search/ search any composer managed extension
- Composer itself: https://getcomposer.org/doc/ the very composer documentation
Step 0: First install of PHP composer tool itself to a local shared bin
-directory:
cd ~ # go to personal home directory
sudo curl -sS https://getcomposer.org/installer | php
sudo chown root:mwadmin composer.phar
sudo mv composer.phar /usr/local/bin/
Step 1: Manage your required extensions in file composer.local.json
in the root wiki folder and not in composer.json wich is the basic setup shipped by the Mediawiki installation. File composer.json
can look like:
{
"require": {
"php": ">=5.3.2"
},
"suggest": {
"ext-fileinfo": "More accurate file type detection for uploaded files",
"ext-mbstring": "Faster unicode handling",
"ext-wikidiff2": "Faster diff generation",
"ext-apc": "Speed up MediaWiki with opcode caching (before PHP 5.5)"
},
"autoload": {
"psr-0": {
"ComposerHookHandler": "includes/composer"
}
},
"scripts": {
"pre-update-cmd": "ComposerHookHandler::onPreUpdate",
"pre-install-cmd": "ComposerHookHandler::onPreInstall"
},
"config": {
"optimize-autoloader": true
}
}
Step 2: add extension
Add an extension
Read the documentation of the extension what kind of version you need and so forth, the extension’s documentation should describe it sufficiently.
It is recommended to manage additional extensions in a separate file, composer.local.json
. It can look like:
{
"require": {
"mediawiki/semantic-media-wiki": "2.3.1",
"mediawiki/semantic-forms": "3.5",
"mediawiki/semantic-result-formats": "2.3",
"mediawiki/semantic-maps": "3.3",
"phpoffice/phpexcel": "1.8.1",
"mediawiki/graph-viz": "1.6.0",
"mediawiki/sub-page-list": "1.1.2",
"mediawiki/translate": "2016.01",
"mustangostang/spyc": "0.5.1",
"mediawiki/cldr": "2016.01"
}
}
Step 3: update extensions.
There is also a “require”-command that will update your composer.json
as well as install the extension including potential dependencies. But it’s rather recommended to use the extra composer.local.json
because the default composer.json
shipped by wiki software can get overwritten. To add and install an extensions in this manner to composer.json
run
cd /var/www/path/to-wiki-root/
sudo -u www-data php /usr/local/bin/composer.phar require 'mediawiki/semantic-maps' '3.1.3'
Update extensions
cd /var/www/path/to-wiki-root/
# update only a single extension and their dependencies
sudo -u www-data php /usr/local/bin/composer.phar update --no-dev mediawiki/graph-viz
# update all extensions and their dependencies
sudo -u www-data php /usr/local/bin/composer.phar update --no-dev
Remove an extension
See https://getcomposer.org/doc/03-cli.md#remove
cd /var/www/path/to-wiki-root/
sudo -u www-data php /usr/local/bin/composer.phar remove 'mediawiki/semantic-maps'
Self Update of composer
sudo php /usr/local/bin/composer.phar self-update