API Reference
Quick reference for common framework surfaces
This page is a compact reference for APIs you will use frequently in Glueful applications.
Response Helpers
use Glueful\Http\Response;
Response::success($data);
Response::created($data);
Response::noContent();
Response::notFound('Not found');
Response::unauthorized('Unauthorized');
Response::forbidden('Forbidden');
Response::validation(['field' => ['Message']]);
Response::error('Server error', 500);
Response::paginated($items, $total, $page, $perPage);
BaseController Helpers
Inside controllers that extend Glueful\Controllers\BaseController:
$data = $this->getRequestData();
$putData = $this->getPutData();
return $this->success($data);
return $this->created($data);
return $this->notFound('Missing');
Database
Resolve the connection with db($context) (inside a BaseController, use $this->context) or inject Glueful\Database\Connection:
$db = db($this->context);
$users = $db->table('users')->get();
$user = $db->table('users')->where('id', 1)->first();
$id = $db->table('users')->insertGetId(['name' => 'John']); // insert() returns a row count
$db->table('users')->where('id', 1)->update(['name' => 'Jane']);
$db->table('users')->where('id', 1)->delete(); // soft-deletes if deleted_at exists
$page = $db->table('users')->paginate(page: 1, perPage: 25);
$db->transaction(function () use ($db) {
// ...
});
See Database for the full query builder and ORM for models.
Validation
Typed request DTO (validated before the controller runs, 422 on failure):
use Glueful\Validation\Attributes\Rule;
use Glueful\Validation\Contracts\RequestData;
final class CreateUserData implements RequestData
{
public function __construct(
#[Rule('required|email|max:255')]
public readonly string $email,
) {}
}
public function store(CreateUserData $data): Response { /* ... */ }
Rule-object validation:
use Glueful\Validation\Validator;
use Glueful\Validation\Rules\Required;
$validator = new Validator([
'name' => [new Required()],
], $context); // context (or connection:) lets unique/exists rules query the database
$errors = $validator->validate($input);
Rule strings: required, string, email, max:N, in:a,b, unique:table,column, exists:table,column, nullable, sometimes, and more. See Validation.
Routing Attributes
use Glueful\Routing\Attributes\Controller;
use Glueful\Routing\Attributes\Get;
use Glueful\Routing\Attributes\Route;
#[Controller(prefix: '/v1/users')]
class UserController
{
#[Get('/{id}', where: ['id' => '\d+'])]
public function show(int $id): \Glueful\Http\Response
{
return \Glueful\Http\Response::success(['id' => $id]);
}
#[Route('/search', methods: 'GET')]
public function search(): \Glueful\Http\Response
{
return \Glueful\Http\Response::success([]);
}
}
CLI
Current commonly used commands:
php glueful install
php glueful serve
php glueful migrate:run
php glueful migrate:status
php glueful scaffold:controller UserController
php glueful scaffold:model User
php glueful scaffold:request CreateUserRequest
php glueful scaffold:dto CreateUserData
php glueful migrate:verify
php glueful generate:key
php glueful generate:openapi
php glueful cache:clear