paysera/alecsammon-php-raml-parser

This package is abandoned and no longer maintained. The author suggests using the paysera/fork-alecsammon-php-raml-parser package instead.

A RAML parser built in php

Maintainers

👁 paysera.com

Package info

github.com/paysera/php-raml-parser

Homepage

pkg:composer/paysera/alecsammon-php-raml-parser

Statistics

Installs: 159

Dependents: 0

Suggesters: 0

Stars: 1

2.5.2 2018-04-02 09:17 UTC

Suggests

None

Provides

None

Conflicts

None

MIT fcabb974c88ac4b560914e74c898ea3acb40e954

  • Alec Sammon <alec.sammon.woop@googlemail.com>
  • Paysera LT

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 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:

  • NoRouteFormatter which does nothing and simply echoes the result
  • SymfonyRouteFormatter which adds the routes to a Symfony RouteCollection

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