If you want to participate in the Mapbender3 development or for some other reasons want to use the Git repositories from Mapbender3, follow this guide instead of the normal download. This guide is based on Ubuntu 12.04. For other distributions, you may need to adapt, especially package names like sphinx-common.
First check the prerequisites at Installation.
For git-based installations you also need:
Get the code from the git repository. Cloning is easy, just issue the following command in your shell:
git clone -b develop git://github.com/mapbender/mapbender-starter mapbender3
Developers granted secure access to the code must use the SSH-URL of the repository: git@github.com:mapbender/mapbender-starter
The starter application does not include the Mapbender3 bundles, these are kept in a repository of their own and are included as a submodule of the starter repository. To fetch them, issue the following command at the root directory of your cloned repository:
cd mapbender3/application
git submodule update --init --recursive
Our build system uses cURL to fetch some remote components, therefore you need to install the cURL command line tool:
sudo apt-get install curl
Build management is done using Phing which is installed using Pear. So, first we need to get Pear, we are assuming a Debian-based system here:
sudo apt-get install php-pear
We then tell Pear where to autodiscover it’s repositories and for good measure, update Pear:
sudo pear config-set auto_discover 1
sudo pear upgrade-all
Enable full APC compatibility [yes] : yes
Enable internal debugging in APCu [no] : yes
Then let’s get Phing:
sudo pear channel-discover pear.phing.info
sudo pear install phing/phing
Symfony2 needs a more recent PHPUnit than for example comes with Ubuntu 12.04. So we will use Pear to install PHPUnit:
sudo pear install phpunit/PHPUnit
Our build scripts need some more dependencies to run unit test, generate documentation and build installation packages.
Once you have installed the dependencies listed below, you can get an overview of available build tasks by issuing
phing -l
The first task you want to - actually need to - execute is the deps task, which uses Composer to install the runtime dependencies like Symfony and Doctrine:
So, first install Composer (more information at http://getcomposer.org/download/):
curl -sS https://getcomposer.org/installer | php
And afterwards install the runtime dependencies like Symfony and Doctrine:
phing deps
Now follow the steps that are described in Installation:
Notice: Please note that the git based code has an additional directory application (mapbender3/application/...).
As a developer, you might want to use the symlink switch on that command to symlink instead of copy. This will make editing assets inside the bundle directories way easier
app/console assets:install web --symlink --relative
Please notice that you might have to activate the FollowSymLinks option to your apache Directory like this:
Alias /mapbender3 /var/www/mapbender3/web/
<Directory /var/www/mapbender3/web/>
Options MultiViews FollowSymLinks
DirectoryIndex app.php
Order allow,deny
Allow from all
</Directory>
The Symfony Console Component makes it possible to create command-line commands. Doctrine for example comes with a couple of command-line commands you can use.
Read more in the Symfony documentation about Console Commands.
Here are some commands to help to find information:
app/console - lists all assets
app/console help - displays help
app/console help list - displays help for a special command
app/console doctrine - lists all functions from Doctrine
app/console mapbender - lists all functions from mapbender
app/console help assets:install - help for a special command
Learn how to generate Mapbender elements with app/console mapbender:generate:element at Wie können eigene Elemente erzeugt werden?.
As development goes on you want to stay up-to-date with the code on github.
There are following steps you have to do to stay up-to-date
cd mapbender-starter
git pull
git submodule update --init --recursive
cd application
./composer.phar update --dev
app/console doctrine:schema:update
Sphinx is used to build the documentation you are reading right now. On Debian- based systems, you can use apt to install Sphinx:
sudo apt-get install sphinx-common
You find the Mapbender3 documentation at github at mapbender-documentation. Get the clone like this:
git clone git://github.com/mapbender/mapbender-documentation
Developers granted secure access to the code must use the SSH-URL of the repository: git@github.com:mapbender/mapbender-documentation
Read more about How to write Mapbender3 Documentation?.
ApiGen is our API documentation generator of choice. It can also be installed using Pear, so use the following command:
sudo pear install pear.apigen.org/apigen
Read more about How to write Mapbender3 API Documentation?.
phing -v
You can update all your Pear packages with
sudo pear upgrade-all
Enable full APC compatibility [yes] : yes
Enable internal debugging in APCu [no] : yes
A Python script to quickly install a mapbender-starter is provided with the mapbender-starter itself. You can download that script, which offers a number of command line arguments:
You can download the script or just pass it’s URL to curl to fetch it and pipe the result trough Python. The later is demonstrated in the examples section below.
http://bit.ly/1tQvo5i is the shortened URL for https://raw.githubusercontent.com/mapbender/mapbender-starter/develop/bin/quick_install.py
Install develop branch into mapbender3_develop
curl -sSL http://bit.ly/1tQvo5i | python
Install foo branch into /tmp/bar
curl -sSL http://bit.ly/1tQvo5i | python - --dir=/tmp/bar foo
Install develop branch, but use admin <admin@example.com> with password admin
curl -sSL http://bit.ly/1tQvo5i | python - --username=admin --email=admin@example.com --password=admin