Maps is the MediaWiki extension to visualize and work with geographical information. It has been maintained since 2009 and is installed on 1000+ wikis.
Features:
Missing a feature? Professional.Wiki does custom development at a discount if it is open sourced.
To ensure the dev dependencies get installed, have this in your composer.local.json
:
{
"require": {
"vimeo/psalm": "^4",
"phpstan/phpstan": "^1.4.9"
},
"extra": {
"merge-plugin": {
"include": [
"extensions/Maps/composer.json"
]
}
}
}
The src/
contains the PHP code and follows PSR-4 autoloading.
src/Map
- Map display entry points (such as handling of #display_map
) and their supporting codesrc/ParserHooks
- Entry points for all parser hooks except #display_map
src/Presentation
- Presentation layer code that does not belong to a more specific directorysrc/DataAccess
- Persistence layer code that does not belong to a more specific directorysrc/GeoJsonPages
- Code that deals with pages in the GeoJson namespacesrc/LegacyModel
- Badly designed and deprecated representations of map elements (markers, polygons, etc)src/LegacyMapEditor
- Deprecated and Google Maps only Special:MapEditor pagesrc/SemanticMW
- Semantic MediaWiki code except for the map entry point (which is in Map\SemanticFormat
)src/WikitextParsers
- Parsers for the wikitext definitions of map elements (like the LegacyModel
)JavaScript, CSS and other web resources go into resources/
.
Tests for PHP go into tests/
where they are grouped by test type (ie unit, integration). Within those test type
directories the tests should mirror the directory structure in src/
.
You can use the Makefile
by running make commands in the Maps
directory.
make ci
: Run everythingmake test
: Run all tests and static analysismake cs
: Run all style checksAlternatively, you can execute commands from the MediaWiki root directory:
php tests/phpunit/phpunit.php -c extensions/Maps/
vendor/bin/phpcs -p -s --standard=extensions/Maps/phpcs.xml
vendor/bin/phpstan analyse --configuration=extensions/Maps/phpstan.neon --memory-limit=2G
php vendor/bin/psalm --config=extensions/Maps/psalm.xml
Beware that due to technical debt, some tests access the network.