Download the PHP package fabricio872/api-modeller without Composer

On this page you can find all versions of the php package fabricio872/api-modeller. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package api-modeller

GitHub release GitHub last commit PHP Composer Test and Tag Packagist Downloads GitHub Repo stars

Valuable partners:

PhpStorm logo

Before installation

If you are using older php then version 7.2 download with command

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

Step 1: Download the Library

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

Step 2: Initialize library

Create new instance of Fabricio872\ApiModeller\Modeller. For legacy project is easiest to implement it with Singleton pattern which gives you instance anywhere where you call it as described here.

create new class for client adapter of your choice in this example we use GuzzleHttp/Client

create new class somewhere in your composer autoload directory with name Modeller and add your namespace

Usage

This lib uses models with Annotations similar to Doctrine Entities.

Usually they are in a directory src/ApiModels but they are not required to be there as long as they have correct namespace

Example model with single Resource

This is example of a model for receiving list of users from some API

endpoint parameter is endpoint which will be called.

method parameter is method with which the request will be done

default: "GET"

type parameter defines format of the received data

currently supported: "json", "xml'

default: "json"

options parameter is array that is directly passed (but can be altered as explained in setOptions section) to symfony/http-client request method as 3. parameter so use this documentation

Example model with multiple Resources

To define multiple resources you need to wrap multiple Resource annotation into single Resources annotation with identifier at beginning. This identifier is then used while calling this endpoint as described in section setIdentifier

Calling the API

Instance of class Fabricio872\ApiModeller\Modeller can be received like this if configuration was as described here

This controller dumps model or collection of models form this example with namespace Users::class and sets query parameter 'page' to 2

Notice setOptions have alternative function addOptions which merges existing and provided options

Notice that Modeller::get() must have correct namespace pointing to class from configuration section

This controller dumps model or collection of models form this example with namespace Users::class and fills the {{id}} variable from model with number 2

noticed that now method setIdentifier is required

The modeller accepts Repo object which requires namespace of model you want to build and has optional setters:

  • setOptions()
  • setParameters()
  • setIdentifier()

setOptions

This method accepts array of options that will be merged with options configured in a model (and will override overlapped parameters) to symfony/http-client request method as 3. parameter so use this documentation

setParameters

This method accepts array and sets twig variables (same as if you render a template but here the template is endpoint parameter from model) to url configuration and can override global twig variables

setIdentifier

This method is required in case when you use multiple Resources for single model as shown in this example

Model Title

Model title is useful if your data arrives covered in another object like this

in this case your model would have title data to map your model variable directly to myData and not to data object:

you can also nest ModelTitles to array with multiple options for each title for example:

this will search in incoming response for data and in it for either subTitle1 or subTitle2


All versions of api-modeller with dependencies

PHP Build Version
Package Version
Requires php Version ^7.2|^8.0
ext-json Version *
doctrine/annotations Version ^1.13
doctrine/collections Version ^1.6
symfony/http-client Version ^4.4|^5|^6
symfony/property-access Version ^4.4|^5|^6
symfony/serializer Version ^4.4|^5|^6
twig/twig Version ^3.3
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package fabricio872/api-modeller contains the following files

Loading the files please wait ....