ereborcodeforge / durins-forge
Durin Forge — Composer framework package for Durin applications (composition, CLI, and DX over MithrilPHP)
Package info
github.com/EreborCodeForge/durins-forge
Language:JavaScript
pkg:composer/ereborcodeforge/durins-forge
Requires
- php: ^8.5
- ext-msgpack: *
- ext-pdo: *
- ext-sockets: *
- ereborcodeforge/durin-architecture: ^0.1.3
- ereborcodeforge/durin-core: ^0.1
- ereborcodeforge/durin-presets: ^0.2.1
- ereborcodeforge/mazarbul: ^1.0
- ereborcodeforge/mithrilphp: ^2.2
Requires (Dev)
- phpunit/phpunit: ^12.5
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v0.2.5
- v0.2.4
- v0.2.3
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1.0
- dev-chore/public-api-discovery-provider
- dev-feat/distribution-smoke-presets-0.1.3
- dev-feat/package-contract-distribution
- dev-refactor/consumer-mode-package-hardening
- dev-feat/composer-durin-architecture
- dev-feat/composer-durin-presets
- dev-feat/composer-durin-core
- dev-feat/composer-baseline
- dev-feat/composer-packages-ownership
- dev-feat/framework-core-cleanup
- dev-feat/dx-016-dependency-graph-renderers
- dev-feat/dx-015-dependency-graph-core
- dev-feat/dx-014-make-feature
- dev-feat/dx-013-make-usecase-normalization
- dev-feat/dx-012-make-module
- dev-feat/dx-011-generator-core
- dev-feat/dx-010-preset-service
- dev-feat/dx-009-preset-minimal
- dev-feat/dx-008-preset-engine
- dev-feat/dx-007-durin-status
- dev-feat/dx-006-durin-dev
- dev-feat/dx-005-durin-serve
- dev-feat/dx-004-runtime-facade
- dev-feat/dx-003-doctor-core
- dev-feat/dx-002-tooling-foundation
- dev-feat/dx-001-version-normalization
- dev-feat/dx-000-governance
- dev-feat/mazarbul
- dev-feat/response-cache
- dev-feat/eregion-gates
This package is auto-updated.
Last update: 2026-09-28 02:00:40 UTC
README
Framework e forjador de apps sobre MithrilPHP. Este repositório é o pacote Composer ereborcodeforge/durins-forge (type: library) — não um domínio de negócio pré-montado. Apps consumidoras nascem com durin new + generators e dependem deste package.
Namespace de produção: EreborCodeForge\Durin\Forge\. O namespace App\ pertence exclusivamente à aplicação consumidora.
Em produção, Eregion guarda o HTTP; o Worker Mithril mantém o Kernel aquecido.
Durin forja a app → Mithril aquece o Worker → Eregion guarda os portões.
Requisitos
- PHP 8.5+ (ADR-0001)
- Extensões:
json,pdo,msgpack,sockets - Composer 2
- Node.js (opcional, frontend Vue/Vite)
Consumo (caminho canônico)
Numa aplicação:
composer require ereborcodeforge/durins-forge vendor/bin/durin doctor vendor/bin/durin dev vendor/bin/durin make:feature ...
Apps geradas por durin new já declaram ereborcodeforge/durins-forge e documentam vendor/bin/durin.
Desenvolvimento deste repositório
composer install
# ignore-platform-req=ext-msgpack no Windows se a extensão ainda não estiver instalada
cp .env.example .env
php bin/durin migrate
composer.json pinna (entre outros):
ereborcodeforge/mithrilphp:^2.2ereborcodeforge/mazarbul:^1.0ereborcodeforge/durin-core:^0.1ereborcodeforge/durin-presets:^0.1.3ereborcodeforge/durin-architecture:^0.1
DX de banco: db() / DB::database('name') (Mazarbul). Migrations DDL ainda usam DB::pdo() quando precisam de atributos PDO.
Como rodar (runtime)
vendor/bin/forge server:install # baixa Eregion → .mithril/bin vendor/bin/forge eregion:craft # eregion.yaml + var/runtime/eregion.json vendor/bin/durin optimize vendor/bin/forge server:check vendor/bin/durin serve --host=0.0.0.0 --port=8080
Neste repo (DX local), php bin/durin é equivalente.
durin serve / durin dev
Entrada orientada a produção via RuntimeFacade → Mithril/Eregion. Defaults de dev usam 127.0.0.1:8080 e APP_ENV=development.
vendor/bin/durin doctor vendor/bin/durin status vendor/bin/durin dev
doctor = a app pode rodar · status = o que está configurado/disponível agora. Sem --watch no V1.
Ownership
| Pacote / área | Responsabilidade |
|---|---|
durin-core |
Project/manifest/scaffold primitives |
durin-presets |
Presets e templates de durin new |
durin-architecture |
Planners/detectors de arquitetura |
durins-forge Tooling |
Doctor, Generators, Graph, Runtime + CLI |
| App consumidora | App\Kernel, config/, routes/, public/, .env |
Ver ADR-0004, ADR-0005 e ADR-0006.
Contrato público: docs/public-api.md · arquitetura do pacote: docs/package-architecture.md.
Skeleton de aplicação (não autoloadado como framework): resources/skeleton/application/.
Distribuição:
ereborcodeforge/durins-forgev0.1.0está no Packagist (tag apontando para o merge do package-contract). Apps geradas (durin-presets≥0.1.3) dependem só de Forge — semrepositoriesVCS. Pacotes futurosdurin-app/durin-installerainda não existem.
Kernel e artifacts
- Consumidor:
App\KernelcompõeEreborCodeForge\Durin\Forge\Core\Http\HttpApplicationKernel - Preferência:
var/cache/container.php+var/cache/routes.php(ignorados comAPP_ENV=testing) - Fallback (dev): providers via discovery +
requirederoutes/*.php ApplicationPath/base_path()resolvem a raiz da aplicação, não o path do package emvendor/
vendor/bin/durin optimize vendor/bin/durin container:compile vendor/bin/durin routes:compile vendor/bin/durin config:cache
CLI Durin
vendor/bin/durin
# neste repo:
php bin/durin
php bin/durins-forge
| Comando | Descrição |
|---|---|
new |
Cria projeto a partir de preset (--preset=minimal|service|worker) |
doctor |
Diagnóstico PHP / projeto / Mithril-Eregion / artefatos (--json, --strict) |
status |
Status do runtime / tooling |
dev / serve |
Sobe runtime via Mithril/Eregion |
optimize |
Compila container + routes |
graph:dependencies |
Grafo de dependências |
make:module / make:usecase / make:feature |
Generators |
migrate / migrate:rollback / migrate:fresh |
Migrations |
Testes
composer test
Inclui fronteira de namespace (App\ proibido em src/), contrato dos presets gerados e integração consumer-mode (writes só na app).
Próximo passo
O pacote de aplicação mínima durin-app (e depois durin-installer) ainda não faz parte deste repositório. Este package está pronto para ser consumido via Composer conforme ADR-0005.