sagem-cassiopee / php-taf-decoder
TAF weather forecast decoder
Installs: 144
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 6
Forks: 10
Open Issues: 1
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 4.3.*
This package is not auto-updated.
Last update: 2024-11-09 18:43:39 UTC
README
PHP TAF decoder
A PHP library to decode TAF (Terminal Aerodrome Forecast) strings, fully unit tested (100% code coverage)
Try it on the demo website
They use php-taf-decoder in production:
- Safran Cassiopée (private)
- Your service here ? Submit a pull request or open an issue !
Introduction
This piece of software is a library package that provides a parser to decode raw TAF messages.
TAF is a format made for weather information forecast. It is predominantly used by in aviation, during flight preparation. Raw TAF format is highly standardized through the International Civil Aviation Organization (ICAO).
Requirements
This library package only requires PHP >= 5.3
It is currently tested automatically for PHP 5.3, 5.4 and 5.5.
If you want to integrate it easily in your project, you should consider installing composer on your system. It is not mandatory though.
Setup
- With composer (recommended)
Add the following line to the composer.json
of your project
{ "require": { "safran-cassiopee/php-taf-decoder": "dev-master" } }
Launch install from your project root with:
composer install --no-dev
Load the library thanks to composer autoloading:
<?php require_once 'vendor/autoload.php';
- By hand
Download the latest release from github
Extract it wherever you want in your project. The library itself is in the src/ directory, the other directories are not mandatory for the library to work.
Load the library with the static import file:
<?php require_once 'path/to/TafDecoder/TafDecoder.inc.php';
Usage
Instantiate the decoder and launch it on a TAF string. The returned object is a DecodedTaf object from which you can retrieve all the weather properties that have been decoded.
All values who have a unit are based on the Value
object which provides the methods getValue()
and getUnit()
TODO: full documentation of the structure of the DecodedTaf object
TODO: Provide a PHP example
Contribute
If you find a valid TAF that is badly parsed by this library, please open a github issue with all possible details:
- the full TAF causing problem
- the parsing exception returned by the library
- how you expected the decoder to behave
- anything to support your proposal (links to official websites appreciated)
If you want to improve or enrich the test suite, fork the repository and submit your changes with a pull request.
If you have any other idea to improve the library, please use github issues or directly pull requests depending on what you're more comfortable with.
Tests and coverage
This library is fully unit tested, and uses PHPUnit to launch the tests.
Travis CI is used for continuous integration, which triggers tests for PHP 5.3, 5.4, 5.5 for each push to the repo.
To run the tests by yourself, you must first install the dev dependencies (composer needed)
composer install --dev
apt-get install php5-xdebug # only needed if you're interested in code coverage
Launch the test suite with the following command:
./vendor/bin/phpunit tests
You can also generate an html coverage report by adding the --coverage-html
option:
./vendor/bin/phpunit --coverage-html ./report tests
``