1. Go to this page and download the library: Download alvarez/concrete-php 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/ */
alvarez / concrete-php example snippets
use Alvarez\ConcretePhp\Data\AbstractDTO;
final class CreateUserDTO extends AbstractDTO
{
public function __construct(
public string $name,
public string $email,
public string $password,
) {}
}
use Alvarez\ConcretePhp\Services\AbstractModelService;
class UserService extends AbstractModelService
{
// Add domain-specific helpers here (e.g., changePassword, activate, archive)
}
$service = UserService::find(1); // findOrFail under the hood
$service->update(['name' => 'Jane Updated']);
$user = $service->getRecord(); // Eloquent model
interface IsDTO
{
public function toArray(): array;
public static function fromArray(array $data): static;
public function toJson(): string;
public static function fromJson(string $json): self;
}
public static function getModelPath(): string
{
return Task::class; // or 'App\\MyModels\\Task'
}
class UserService extends AbstractModelService
{
public function activate(): static
{
$this->getRecord()->update(['active' => true]);
return $this;
}
public function changePassword(string $password): static
{
$this->getRecord()->update(['password' => bcrypt($password)]);
return $this;
}
}
$capsule = new Capsule;
$capsule->addConnection(['driver' => 'sqlite','database' => ':memory:']);
$capsule->setAsGlobal();
$capsule->bootEloquent();
Capsule::schema()->create('tasks', function (Blueprint $t) { $t->id(); $t->string('title'); $t->timestamps(); });
class Task extends Model { protected $fillable = ['title']; }
class TaskService extends AbstractModelService { public static function getModelPath(): string { return Task::class; } }
// Then use TaskService::create([...]) and assertions as in the package tests.
bash
composer
json
{
"name": "alvarez/concrete-php",
"description": "Lightweight Service Layer and DTO helpers for Laravel and Eloquent",
"type": "library",
"license": "MIT",
"
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.