2017 © Pedro Peláez
 

library php-raml-parser

A RAML parser built in php

image

cozylife/php-raml-parser

A RAML parser built in php

  • Monday, August 17, 2015
  • by CozyLife
  • Repository
  • 1 Watchers
  • 2 Stars
  • 23 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 73 Forks
  • 0 Open issues
  • 27 Versions
  • 0 % Grown

The README.md

PHP RAML Parser

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

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

Differences in this fork

The original release of PHP RAML Parser merges the call data for each security call with the main request. That causes unnecessary overhead when, for example, requesting OAuth tokens, and can create unintended side-effects. This fork remedies that issue by keeping all calls independent., (*3)

See more about why this change is critical when making calls based on an API modeling language., (*4)

Get started

Requires:, (*5)

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

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

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

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

$routes = $api->getResourcesAsUri();

To return:, (*9)

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

  • 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

09/05 2015

1.3.1.x-dev

1.3.1.9999999-dev https://github.com/alecsammon/php-raml-parser

A RAML parser built in php

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alec Sammon

14/04 2015

1.1.0.x-dev

1.1.0.9999999-dev https://github.com/alecsammon/php-raml-parser

A RAML parser built in php

  Sources   Download

MIT

The Requires

 

The Development Requires

by Alec Sammon