MapServer MapScript Modules
===========================

Much of MapServer's functionality is accessible from Java, Perl, PHP, Python,
Ruby, C#, and Tcl.  MapScript is not a language like JavaScript or Python. It
is a loadable module that brings MapServer capabilities to your favorite high
level programming language.

PHP and SWIG Branches of MapScript
----------------------------------

The MapScript family tree looks like this:

::

               MapServer
                  /\ 
                 /  \    
                /    \ 
     PHPMapScript     \  SWIGMapScript
         PHP5/7    +----+-----+----+----+--+----+------------+
                   |    |     |    |    |  |    |            |
                 Perl Python Ruby Java C# Tcl  PHP7 (PHPNG) ...
                 


The SWIGMapScript modules are generated by `SWIG <http://www.swig.org>`_. 
The PHPMapScript module is developed using the PHP C API without using SWIG. 
PHP users therefore have a choice of using the SWIG generated module or the 
custom written PHP module. 

PHPMapScript
------------

Source code, detailed installation instructions are located in the ``mapscript/php``
folder. Documentation can be found in the `PHP MapScript Documentation <https://www.mapserver.org/mapscript/php/index.html>`_
section. 

SWIG MapScript
--------------

Installation instructions are located in the individual languages
directories such as ``mapscript/perl``, ``mapscript/python``. 

The main MapScript SWIG interface file is ``mapscript/mapscript.i``.  This
file includes specific class interface files from ``mapscript/swiginc`` and
language specific code from the language directories.

Note the **v8** folder contains files for `V8 MapScript Support <https://mapserver.org/installation/v8.html>`_. 
This is not a JavaScript version of MapScript, but provides support for the use of JavaScript
in `STYLEITEM <https://mapserver.org/mapfile/styleitem.html#styleitemjs>`_ and 
`GEOTRANSFORM <https://mapserver.org/mapfile/geomtransform.html#geomtransformjs>`_. 

API Documentation can be found at the `Shared SWIG MapScript Documentation <https://mapserver.org/mapscript/index.html>`_ 
page. 
