Pular para o conteúdo principal

Weaver ORM

PHP 8.4+ ORM for Symfony.
Zero reflection, no proxies, no memory leaks.

Why Weaver?

Zero Reflection

No runtime reflection, no magic proxies, no hidden overhead. Weaver uses PHP 8.4 property hooks and compile-time metadata — your entities are plain PHP objects.

🔒

Worker-Safe

Each request gets its own EntityWorkspace with isolated identity maps and change tracking. No shared state, no cross-request contamination — built for PHP workers and async environments.

🚀

PyroSQL Ready

First-class support for PyroSQL's advanced features: time travel queries, database branching, change data capture (CDC), approximate aggregates, and vector similarity search.

Clean, Expressive Mapping

Define entities with PHP 8.4 attributes and property hooks. No XML, no YAML, no annotations magic.

#[Entity]
class Order
{
    #[Id, GeneratedValue]
    public int $id;

    #[Column]
    public OrderStatus $status = OrderStatus::Draft;

    #[OneToMany(targetEntity: OrderLine::class)]
    public Collection $lines;

    #[Embedded]
    public Money $total;
}

// In your service
$order = $workspace->find(Order::class, $id);
$order->status = OrderStatus::Confirmed;
$workspace->flush(); // only changed fields are updated