for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\ResourceLinks;
/** @mixin \Illuminate\Http\Resources\Json\JsonResource */
trait HasLinks
{
/** @var bool */
private $withCollectionLinks = false;
/**
* @param string|\Closure|null|array $controller
* @param null $parameters
*
* @return \Spatie\ResourceLinks\LinkResource
*/
public function links($controller = null, $parameters = null): LinkResource
$resource = LinkResource::create($this->resource, LinkResourceType::ITEM)->link($controller, $parameters);
resource
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
if (property_exists($this, 'withCollectionLinks') && $this->withCollectionLinks) {
$resource->withCollectionLinks();
}
return $resource;
public static function collectionLinks($controller = null, $parameters = null): LinkResource
return LinkResource::create(null, LinkResourceType::COLLECTION)->link($controller, $parameters);
public function withCollectionLinks()
$this->withCollectionLinks = true;
return $this;
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: