PHPackages                             be-framework/be - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. be-framework/be

ActiveLibrary[Framework](/categories/framework)

be-framework/be
===============

Be Framework - The Ontological Programming Framework for PHP

0.x-dev(5d ago)274.0k↑23.8%4[6 issues](https://github.com/be-framework/Be.Framework/issues)[3 PRs](https://github.com/be-framework/Be.Framework/pulls)1MITPHPPHP ^8.3

Since Sep 10Pushed 3w ago5 watchersCompare

[ Source](https://github.com/be-framework/Be.Framework)[ Packagist](https://packagist.org/packages/be-framework/be)[ RSS](/packages/be-framework-be/feed)WikiDiscussions 0.x Synced yesterday

READMEChangelog (1)Dependencies (11)Versions (12)Used By (1)

Be Framework
============

[](#be-framework)

> A paradigm where the domain, seen in the first person, ceaselessly transforms through encounters with others — proving its existence in every becoming.

**"Be, Don't Do"**

The Core Shift: Domain in the First Person
------------------------------------------

[](#the-core-shift-domain-in-the-first-person)

In conventional programming, the system operates on the domain from a god's-eye view: fetch, validate, save — all commands issued in the third person. Even "Tell, Don't Ask" still has a commander.

Be Framework places the viewpoint inside the domain itself. The domain is the subject. Everything that follows is derived from this single shift in perspective.

### Self-Proving Existence

[](#self-proving-existence)

An `Email` object doesn't get validated — it either exists or it doesn't. Existence itself is proof of correctness. Semantic variables embody this principle: they define a world where invalid values simply cannot be.

### Transformation Through Encounter

[](#transformation-through-encounter)

The domain transforms itself through encounters with others. What it already is (immanent) meets what the world provides (transcendent), and a new being emerges. A `PatientArrival` encounters a triage protocol and becomes an `EmergencyCase` — not because something processes it, but because it becomes.

### Self-Determined Relations

[](#self-determined-relations)

The domain determines its own relationships with others. Unlike controllers that can call any model without constraint, each being declares what it can become. The `#[Be]` attribute is this declaration — the domain's own voice saying what transformation is possible.

### No Commander

[](#no-commander)

There is no orchestrator, no service class directing the flow. Input enters and flows through a landscape of beings like water finding its path. This is choreography — each dancer knows only their own part, yet the whole emerges in harmony.

```
$becoming = new Becoming($injector);
$final = $becoming(new OrderInput($items, $customer, $payment));
```

One line. No controller. The domain transforms itself.

What Does This Look Like?
-------------------------

[](#what-does-this-look-like)

```
#[Be(Greeting::class)]
final readonly class NameInput
{
    public function __construct(
        public string $name  // Immanent: what I am
    ) {}
}

final readonly class Greeting
{
    public string $message;

    public function __construct(
        #[Input] string $name,              // Immanent: carried forward
        #[Inject] WorldGreeting $greeting   // Transcendent: what I encounter
    ) {
        $this->message = "{$greeting->text} {$name}";  // New immanent: what I become
    }
}
```

```
$becoming = new Becoming($injector);
$greeting = $becoming(new NameInput('world'));

echo $greeting->message; // hello world
```

`NameInput` declares that it can become a `Greeting`. When it encounters `WorldGreeting` from the outside world, it transforms. Each class is immutable — not because immutability is a goal, but because a being in a moment is that moment's being alone.

Documentation
-------------

[](#documentation)

**[Full Documentation](https://be-framework.github.io/)**

Patterns
--------

[](#patterns)

**[be-patterns](https://github.com/be-framework/be-patterns)** — Working examples of Be Framework in action

Philosophical Roots
-------------------

[](#philosophical-roots)

Across cultures and centuries, deep inquiry into the nature of things arrives at the same place: existence and time. If that is where all fundamental questions converge, the domain too might be described in those terms — that is the question this paradigm explores.

Status
------

[](#status)

Be Framework is currently in the conceptual and early implementation phase.

###  Health Score

50

—

FairBetter than 95% of packages

Maintenance93

Actively maintained with recent releases

Popularity34

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 95.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

5d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/db4fc75ffc631168d0d7143b6f2c24b1534dfb921212bd851c026c5cbbb1344d?d=identicon)[koriym](/maintainers/koriym)

---

Top Contributors

[![koriym](https://avatars.githubusercontent.com/u/529021?v=4)](https://github.com/koriym "koriym (259 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (6 commits)")[![HajimeMat-AVAP](https://avatars.githubusercontent.com/u/55294484?v=4)](https://github.com/HajimeMat-AVAP "HajimeMat-AVAP (3 commits)")[![chatii](https://avatars.githubusercontent.com/u/1707999?v=4)](https://github.com/chatii "chatii (2 commits)")[![hanahiroAze](https://avatars.githubusercontent.com/u/9178166?v=4)](https://github.com/hanahiroAze "hanahiroAze (1 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/be-framework-be/health.svg)

```
[![Health](https://phpackages.com/badges/be-framework-be/health.svg)](https://phpackages.com/packages/be-framework-be)
```

###  Alternatives

[bear/resource

Hypermedia framework for object as a service

48687.7k43](/packages/bear-resource)[bear/sunday

A resource-oriented application framework

251625.6k27](/packages/bear-sunday)[bear/package

BEAR.Sunday application framework package

31566.2k27](/packages/bear-package)[ray/media-query

PHP interface-based SQL framework

11254.8k4](/packages/ray-media-query)[koriym/dii

Dependency Injection Plugin for Yii 1

17273.7k](/packages/koriym-dii)[lorenzo/piping-bag

CakePHP 4 plugin for using Ray.Di as a Dependency Injection Container

35123.1k1](/packages/lorenzo-piping-bag)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
