Parses a RAML file into a PHP object.
See the RAML spec here: https://github.com/raml-org/raml-spec
Requires:
composer install --dev
./vendor/bin/phpunit test
$parser = new \Raml\Parser();
$apiDef = $parser->parse($filename, true);
$title = $apiDef->getTitle();
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
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\Formatters\NoRouteFormatter());
There are two Route Formatters included in this package:
NoRouteFormatter
which does nothing and simply echoes the resultSymfonyRouteFormatter
which adds the routes to a SymfonyRouteCollection
./vendor/bin/phpunit
./vendor/bin/phpunit --coverage-text
./vendor/bin/phpcs --standard=PSR1,PSR2 src
- Make the code prettier
- Add support for the complete raml spec
- SecuredBy
- Markdown?
- Date Representations?
- Validation?
- Parse RAML at provided URL
- Includes
- .yml/.yaml
- .raml/.rml
- .json (parsed using json-schema)
- Display Name
- Traits
- Resource Types