1. Go to this page and download the library: Download bigz/halapi library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
bigz / halapi example snippets
use Halapi\AnnotationReader\AnnotationReaderInterface;
use Halapi\ObjectManager\ObjectManagerInterface;
use Halapi\UrlGenerator\UrlGeneratorInterface;
use Psr\Http\Message\ServerRequestInterface;
class EntityController()
{
/**
* You can provide your own implementations of those interfaces or use the provided ones.
*/
public function __construct(
UrlGeneratorInterface $router,
AnnotationReaderInterface $annotationReader,
ObjectManagerInterface $entityManager,
PagerInterface $pager
) {
$this->router = $router;
$this->annotationReader = $annotationReader;
$this->entityManager = $entityManager;
$this->pager = $pager;
}
/**
* Accessed by the /entities/{id} route
*/
public function getHalFormattedEntity(ServerRequestInterface $request, Entity $entity)
{
$linksRelation = new LinksRelation(
$this->annotationReader,
$this->router,
$this->entityManager,
);
$embeddedRelation = new EmbeddedRelation(
$this->annotationReader,
$request
);
$relationFactory = new RelationFactory([$linksRelation, $embeddedRelation]);
$builder = new HALAPIBuilder($relationFactory);
return $builder->gerSerializer()->serialize($entity);
}
/**
* Accessed by the /entities
*/
public function getHalFormattedCollection(ServerRequestInterface $request, $entityName)
{
$linksRelation = new LinksRelation(
$this->router,
$this->annotationReader,
$this->entityManager,
$request
);
$embeddedRelation = new EmbeddedRelation(
$this->router,
$this->annotationReader,
$this->entityManager,
$request
);
$relationFactory = new RelationFactory([$linksRelation, $embeddedRelation]);
$builder = new HALAPIBuilder($relationFactory);
$paginationFactory = new PaginationFactory(
$this->router,
$this->annotationReader,
$this->entityManager,
$this->pager
);
$paginatedRepresentation = $paginationFactory->getRepresentation($entityName);
return $builder->gerSerializer()->serialize($paginatedRepresentation);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.