2017 © Pedro Peláez
 

library php-raml-parser

A RAML parser built in php

image

cnam/php-raml-parser

A RAML parser built in php

  • Thursday, June 4, 2015
  • by cnam
  • Repository
  • 1 Watchers
  • 1 Stars
  • 1,138 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 73 Forks
  • 0 Open issues
  • 29 Versions
  • 0 % Grown

The README.md

PHP RAML Parser

Parses a RAML file into a PHP object., (*1)

Build Status Coverage Status HHVM Status, (*2)

See the RAML spec here: https://github.com/raml-org/raml-spec, (*3)

Get started

Requires:, (*4)

composer install --dev
./vendor/bin/phpunit test
$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., (*5)

Additional parsers and schema definitions can be created and passed into the \Raml\Parser constructor, (*6)

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:, (*7)

$parser = new Raml\Parser();
$api = $parser->parse('test/fixture/simple.raml');

$routes = $api->getResourcesAsUri();

To return:, (*8)

[
    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:, (*9)

  • 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

The Versions