PHP code example of webrek / arco

1. Go to this page and download the library: Download webrek/arco 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/ */

    

webrek / arco example snippets


use Webrek\Arco\Laravel\Facades\{Arco, Consent};
use Webrek\Arco\ArcoRight;

$solicitud = Arco::receive(ArcoRight::Acceso, $user);   // registrada con su plazo de 20 días hábiles
Arco::complete($solicitud, 'Información entregada.');

Consent::grant($user, 'marketing', ['privacy_version' => 'v3', 'ip' => request()->ip()]);
Consent::granted($user, 'marketing');   // true

use Webrek\Arco\{ArcoService, ConsentService, ArcoRight, Subject};

$arco = new ArcoService($tuRepositorioDeSolicitudes, responseBusinessDays: 20);
$solicitud = $arco->receive(ArcoRight::Acceso, Subject::email('[email protected]'));

$consent = new ConsentService($tuRepositorioDeConsentimiento);
$consent->grant(Subject::email('[email protected]'), 'marketing');

$solicitud->markInProgress();           // (entidad) o Arco::markInProgress($solicitud) (persistiendo)
Arco::complete($solicitud, 'Hecho.');   // o Arco::reject($solicitud, 'No localizado.')

$solicitud->isOverdue($ahora);
Arco::pending();   // solicitudes abiertas, plazo más próximo primero
Arco::overdue();   // las que ya están vencidas

'response_business_days' => 20,
'holidays' => ['2026-01-01', '2026-02-02', '2026-03-16', '2026-05-01'],

Consent::grant($user, 'marketing', [
    'privacy_version' => 'v3',
    'source' => 'formulario-registro',
    'ip' => request()->ip(),
    'user_agent' => request()->userAgent(),
]);

Consent::granted($user, 'marketing');   // true
Consent::revoke($user, 'marketing');
Consent::history($user, 'marketing');   // todos los eventos, del más reciente al más antiguo

use Webrek\Arco\Laravel\Concerns\HasDataRights;

class User extends Authenticatable
{
    use HasDataRights;
}

$user->grantConsent('marketing', ['privacy_version' => 'v3']);
$user->hasConsentedTo('marketing');
$user->arcoRequests;     // sus solicitudes ARCO
$user->consentRecords;   // sus eventos de consentimiento
bash
php artisan vendor:publish --tag=arco-migrations
php artisan migrate
php artisan vendor:publish --tag=arco-config   # opcional: plazo, días festivos, tablas
bash
php artisan arco:pending            # la cola de solicitudes abiertas
php artisan arco:pending --overdue  # solo las vencidas