paysera/alecsammon-php-raml-parser
A RAML parser built in php
Maintainers
Requires
- php: >=5.5.9
- justinrainbow/json-schema: ~1.5
- oodle/inflect: ~0.2
- psr/http-message: ^1.0
- symfony/routing: ~3.0
- symfony/yaml: ~3.0
Requires (Dev)
- phpunit/phpunit: 4.*
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: @dev
Suggests
None
Provides
None
Conflicts
None
Replaces
MIT fcabb974c88ac4b560914e74c898ea3acb40e954
- Alec Sammon <alec.sammon.woop@googlemail.com>
- Paysera LT
This package is not auto-updated.
Last update: 2018-04-02 09:24:54 UTC
README
Parses a RAML file into a PHP object.
👁 Build Status
👁 Coverage Status
👁 HHVM Status
See the RAML spec here: https://github.com/raml-org/raml-spec
Get started
Requires:
- composer (see https://getcomposer.org)
composer require alecsammon/php-raml-parser --dev
$parser = new \Raml\Parser(); $apiDef = $parser->parse($filename, true); $title = $apiDef->getTitle();
Parsing schemas
The library can convert schemas into an validation object. There is a default list, or they can be configured manually.
Each schema parser needs to conform to \Raml\Schema\SchemaParserInterface and will return a instance of
\Raml\Schema\SchemaDefinitionInterface.
Additional parsers and schema definitions can be created and passed into the \Raml\Parser constructor
Exporting routes
It is also possible to export the entire RAML file to an array of the full endpoints. For example, considering a basic RAML, this can be returned using:
$parser = new Raml\Parser(); $api = $parser->parse('test/fixture/simple.raml'); $routes = $api->getResourcesAsUri();
To return:
[ GET /songs => ... POST /songs => ... GET /songs/{songId} => ... DELETE /songs/{songId} => ... ] $routes = $api->getResourcesAsUri(new Raml\RouteFormatter\NoRouteFormatter());
Route Formatters
There are two Route Formatters included in this package:
NoRouteFormatterwhich does nothing and simply echoes the resultSymfonyRouteFormatterwhich adds the routes to a SymfonyRouteCollection
Contributing
./vendor/bin/phpunit ./vendor/bin/phpunit --coverage-text ./vendor/bin/phpcs --standard=PSR1,PSR2 src
TODO
- Documentation/Markdown parser
- Date Representations?
- Parse RAML at provided URL
Supported (I Believe)
- Includes
- .yml/.yaml
- .raml/.rml
- .json (parsed using json-schema)
- Display Name
- Traits
- Resource Types
