| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/dingo/blueprint/src/ |
Upload File : |
<?php
namespace Dingo\Blueprint;
use Illuminate\Support\Collection;
use ReflectionClass;
class RestResource extends Section
{
/**
* Resource identifier.
*
* @var string
*/
protected $identifier;
/**
* Resource reflection instance.
*
* @var \ReflectionClass
*/
protected $reflector;
/**
* Collection of annotations belonging to a resource.
*
* @var \Illuminate\Support\Collection
*/
protected $annotations;
/**
* Collection of actions belonging to a resource.
*
* @var \Illuminate\Support\Collection
*/
protected $actions;
/**
* Collection of default request headers belonging to a resource.
*
* @var array
*/
protected $requestHeaders = [];
/**
* Collection of default response headers belonging to a resource.
*
* @var array
*/
protected $responseHeaders = [];
/**
* Create a new resource instance.
*
* @param string $identifier
* @param \ReflectionClass $reflector
* @param \Illuminate\Support\Collection $annotations
* @param \Illuminate\Support\Collection $actions
*
* @return void
*/
public function __construct($identifier, ReflectionClass $reflector, Collection $annotations, Collection $actions)
{
$this->identifier = $identifier;
$this->reflector = $reflector;
$this->annotations = $annotations;
$this->actions = $actions;
$this->setResourceOnActions();
}
/**
* Set the resource on each of the actions.
*
* @return void
*/
protected function setResourceOnActions()
{
$this->actions->each(function ($action) {
$action->setResource($this);
});
}
/**
* Get the resource definition.
*
* @return string
*/
public function getDefinition()
{
$definition = $this->getUri();
if ($method = $this->getMethod()) {
$definition = $method.' '.$definition;
}
return '# '.$this->getIdentifier().($definition == '/' ? '' : ' ['.$definition.']');
}
/**
* Get the actions belonging to the resource.
*
* @return \Illuminate\Support\Collection
*/
public function getActions()
{
return $this->actions;
}
/**
* get the resource URI.
*
* @return string
*/
public function getUri()
{
if (($annotation = $this->getAnnotationByType('Resource')) && isset($annotation->uri)) {
return '/'.trim($annotation->uri, '/');
}
return '/';
}
/**
* Get the resource method.
*
* @return string|null
*/
public function getMethod()
{
if (($annotation = $this->getAnnotationByType('Resource')) && isset($annotation->method)) {
return $annotation->method;
}
}
/**
* Get the resource description.
*
* @return string|null
*/
public function getDescription()
{
$factory = \phpDocumentor\Reflection\DocBlockFactory::createInstance();
$docblock = $factory->create($this->reflector);
$text = $docblock->getSummary().$docblock->getDescription();
return $text;
}
/**
* Get the resource identifier.
*
* @return string
*/
public function getIdentifier()
{
if (($annotation = $this->getAnnotationByType('Resource')) && isset($annotation->identifier)) {
return $annotation->identifier;
}
return $this->identifier;
}
/**
* Check if resource has default request headers set.
*
* @return bool
*/
public function hasRequestHeaders()
{
return count($this->getRequestHeaders()) > 0;
}
/**
* Get the resource default request headers.
*
* @return array
*/
public function getRequestHeaders()
{
if (($annotation = $this->getAnnotationByType('Resource')) && isset($annotation->requestHeaders)) {
return $annotation->requestHeaders;
}
return $this->requestHeaders;
}
/**
* Check if resource has default response headers set.
*
* @return bool
*/
public function hasResponseHeaders()
{
return count($this->getResponseHeaders()) > 0;
}
/**
* Get the resource default response headers.
*
* @return array
*/
public function getResponseHeaders()
{
if (($annotation = $this->getAnnotationByType('Resource')) && isset($annotation->responseHeaders)) {
return $annotation->responseHeaders;
}
return $this->responseHeaders;
}
}