This commit is contained in:
Manish Verma
2016-12-13 18:18:25 +05:30
parent fc98add11c
commit 2d8e640e9b
2314 changed files with 97798 additions and 75664 deletions

View File

@@ -0,0 +1,114 @@
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <me@philsturgeon.uk>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal\Resource;
use ArrayIterator;
use League\Fractal\Pagination\CursorInterface;
use League\Fractal\Pagination\PaginatorInterface;
/**
* Resource Collection
*
* The data can be a collection of any sort of data, as long as the
* "collection" is either array or an object implementing ArrayIterator.
*/
class Collection extends ResourceAbstract
{
/**
* A collection of data.
*
* @var array|ArrayIterator
*/
protected $data;
/**
* A the paginator instance.
*
* @var PaginatorInterface
*/
protected $paginator;
/**
* The cursor instance.
*
* @var CursorInterface
*/
protected $cursor;
/**
* Get the paginator instance.
*
* @return PaginatorInterface
*/
public function getPaginator()
{
return $this->paginator;
}
/**
* Determine if the resource has a paginator implementation.
*
* @return bool
*/
public function hasPaginator()
{
return $this->paginator instanceof PaginatorInterface;
}
/**
* Get the cursor instance.
*
* @return CursorInterface
*/
public function getCursor()
{
return $this->cursor;
}
/**
* Determine if the resource has a cursor implementation.
*
* @return bool
*/
public function hasCursor()
{
return $this->cursor instanceof CursorInterface;
}
/**
* Set the paginator instance.
*
* @param PaginatorInterface $paginator
*
* @return $this
*/
public function setPaginator(PaginatorInterface $paginator)
{
$this->paginator = $paginator;
return $this;
}
/**
* Set the cursor instance.
*
* @param CursorInterface $cursor
*
* @return $this
*/
public function setCursor(CursorInterface $cursor)
{
$this->cursor = $cursor;
return $this;
}
}

View File

@@ -0,0 +1,24 @@
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <me@philsturgeon.uk>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal\Resource;
/**
* Item Resource
*
* The Item Resource can stored any mixed data, usually an ORM, ODM or
* other sort of intelligent result, DataMapper model, etc but could
* be a basic array, object, or whatever you like.
*/
class Item extends ResourceAbstract
{
//
}

View File

@@ -0,0 +1,33 @@
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <me@philsturgeon.uk>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal\Resource;
/**
* Null Resource
*
* The Null Resource represents a resource that doesn't exist. This can be
* useful to indicate that a certain relationship is null in some output
* formats (e.g. JSON API), which require even a relationship that is null at
* the moment to be listed.
*/
class NullResource extends ResourceAbstract
{
/**
* Get the data.
*
* @return mixed
*/
public function getData()
{
// Null has no data associated with it.
}
}

View File

@@ -0,0 +1,182 @@
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <me@philsturgeon.uk>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal\Resource;
use League\Fractal\TransformerAbstract;
abstract class ResourceAbstract implements ResourceInterface
{
/**
* Any item to process.
*
* @var mixed
*/
protected $data;
/**
* Array of meta data.
*
* @var array
*/
protected $meta = [];
/**
* The resource key.
*
* @var string
*/
protected $resourceKey;
/**
* A callable to process the data attached to this resource.
*
* @var callable|TransformerAbstract|null
*/
protected $transformer;
/**
* Create a new resource instance.
*
* @param mixed $data
* @param callable|TransformerAbstract|null $transformer
* @param string $resourceKey
*/
public function __construct($data = null, $transformer = null, $resourceKey = null)
{
$this->data = $data;
$this->transformer = $transformer;
$this->resourceKey = $resourceKey;
}
/**
* Get the data.
*
* @return mixed
*/
public function getData()
{
return $this->data;
}
/**
* Set the data.
*
* @param mixed $data
*
* @return $this
*/
public function setData($data)
{
$this->data = $data;
return $this;
}
/**
* Get the meta data.
*
* @return array
*/
public function getMeta()
{
return $this->meta;
}
/**
* Get the meta data.
*
* @param string $metaKey
*
* @return array
*/
public function getMetaValue($metaKey)
{
return $this->meta[$metaKey];
}
/**
* Get the resource key.
*
* @return string
*/
public function getResourceKey()
{
return $this->resourceKey;
}
/**
* Get the transformer.
*
* @return callable|TransformerAbstract
*/
public function getTransformer()
{
return $this->transformer;
}
/**
* Set the transformer.
*
* @param callable|TransformerAbstract $transformer
*
* @return $this
*/
public function setTransformer($transformer)
{
$this->transformer = $transformer;
return $this;
}
/**
* Set the meta data.
*
* @param array $meta
*
* @return $this
*/
public function setMeta(array $meta)
{
$this->meta = $meta;
return $this;
}
/**
* Set the meta data.
*
* @param string $metaKey
* @param mixed $metaValue
*
* @return $this
*/
public function setMetaValue($metaKey, $metaValue)
{
$this->meta[$metaKey] = $metaValue;
return $this;
}
/**
* Set the resource key.
*
* @param string $resourceKey
*
* @return $this
*/
public function setResourceKey($resourceKey)
{
$this->resourceKey = $resourceKey;
return $this;
}
}

View File

@@ -0,0 +1,54 @@
<?php
/*
* This file is part of the League\Fractal package.
*
* (c) Phil Sturgeon <me@philsturgeon.uk>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace League\Fractal\Resource;
interface ResourceInterface
{
/**
* Get the resource key.
*
* @return string
*/
public function getResourceKey();
/**
* Get the data.
*
* @return mixed
*/
public function getData();
/**
* Get the transformer.
*
* @return callable|\League\Fractal\TransformerAbstract
*/
public function getTransformer();
/**
* Set the data.
*
* @param mixed $data
*
* @return $this
*/
public function setData($data);
/**
* Set the transformer.
*
* @param callable|\League\Fractal\TransformerAbstract $transformer
*
* @return $this
*/
public function setTransformer($transformer);
}