PHP code example of sourcetoad / enhanced-resources
1. Go to this page and download the library: Download sourcetoad/enhanced-resources 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/ */
sourcetoad / enhanced-resources example snippets
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
#[Format]
public function foo(): array
{
return [];
}
}
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
#[Format]
public function bar(): array
{
return [];
}
#[Format]
public function foo(): array
{
return [];
}
#[Format]
public function foobar(): array
{
return [];
}
}
ExampleResource::make($object)->format('foo');
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
#[Format]
public function bar(): array
{
return [];
}
#[IsDefault, Format]
public function foo(): array
{
return [];
}
#[Format]
public function foobar(): array
{
return [];
}
}
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
#[Format, Format('a')]
public function bar(): array
{
return [];
}
#[Format, Format('b'), Format('something-else')]
public function foo(): array
{
return [];
}
#[Format('c')]
public function foobar(): array
{
return [];
}
}
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
#[Format]
public function foo(): array
{
return [
'value' => $this->resource['value'],
];
}
public function double(): static
{
return $this->modify(function (array $data) {
$data['value'] *= 2;
return $data;
});
}
}
ExampleResource::make(['value' => 1])->double()->toArray(); // ['value' => 2]
use Sourcetoad\EnhancedResources\Enhancements\Except;
use Sourcetoad\EnhancedResources\Enhancements\Traits\HasExceptEnhancement;
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
use HasExceptEnhancement;
#[Format]
public function foo(): array
{
return [
'first_name' => $this->resource->firstName,
'id' => $this->resource->id,
'last_name' => $this->resource->lastName,
];
}
}
ExampleResource::make(new class {
public string $firstName = 'John';
public int $id = 1;
public string $lastName = 'Doe';
})->except('id'); // ['first_name' => 'John', 'last_name' => 'Doe']
// Without the trait you can still use the Except enhancement.
ExampleResource::make(new class {
public string $firstName = 'John';
public int $id = 1;
public string $lastName = 'Doe';
})->modify(new Except(['id'])); // ['first_name' => 'John', 'last_name' => 'Doe']
use Sourcetoad\EnhancedResources\Enhancements\Only;
use Sourcetoad\EnhancedResources\Enhancements\Traits\HasOnlyEnhancement;
use Sourcetoad\EnhancedResources\Formatting\Attributes\Format;
use Sourcetoad\EnhancedResources\Formatting\Attributes\IsDefault;
use Sourcetoad\EnhancedResources\Resource;
class ExampleResource extends Resource
{
use HasOnlyEnhancement;
#[Format]
public function foo(): array
{
return [
'first_name' => $this->resource->firstName,
'id' => $this->resource->id,
'last_name' => $this->resource->lastName,
];
}
}
ExampleResource::make(new class {
public string $firstName = 'John';
public int $id = 1;
public string $lastName = 'Doe';
})->only('id'); // ['id' => 1]
// Without the trait you can still use the Only enhancement.
ExampleResource::make(new class {
public string $firstName = 'John';
public int $id = 1;
public string $lastName = 'Doe';
})->modify(new Only(['id'])); // ['id' => 1]
use Symfony\Component\HttpFoundation\Response;
ExampleResource::make($object)->setResponseStatus(Response::HTTP_I_AM_A_TEAPOT);
use Illuminate\Database\Eloquent\Model;
use Sourcetoad\EnhancedResources\Resourceable\AsResource;
use Sourcetoad\EnhancedResources\Resourceable\ConvertsToResource;
/**
* @method ExampleResource toResource()
*/
#[AsResource(ExampleResource::class)]
class Example extends Model
{
use ConvertsToResource;
}
(new Example)->toResource();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.