Download the PHP package websign-dev/sillbeam without Composer
On this page you can find all versions of the php package websign-dev/sillbeam. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download websign-dev/sillbeam
More information about websign-dev/sillbeam
Files in websign-dev/sillbeam
Package sillbeam
Short Description Modular architecture extension for Symfony applications, organized around Modules and optional Projects.
License MIT
Homepage https://getsillbeam.websign.de/
Informations about the package sillbeam
Sillbeam extends Symfony with explicit module boundaries, declared dependencies and optional Projects. It discovers your architecture, validates its dependency graph and checks static code references when Symfony builds the container. Symfony continues to handle services, routing and the application runtime.
Use it in an existing Symfony application or build a modular monolith from the start. Doctrine integration is optional, and the standard Symfony kernel is sufficient. SillbeamKernel provides a convenient alternative.
Modular architecture
| Capability | Scope |
|---|---|
| Feature modules | Organize code through #[SillbeamModule] descriptors and declare direct dependencies. |
| Architecture checks | Detect cycles, missing dependencies, invalid boundaries and undeclared static cross-module references during container compilation. |
| Symfony services | Discover module services through native autowiring, autoconfiguration and Symfony service attributes. |
| Module routing | Import controller routes from active modules and Projects through one route-loader entry. |
| Optional Projects | Compose multiple surfaces with shared and private modules, including host-based routing. |
| Optional Doctrine integration | Register entity mappings from active modules and Projects when DoctrineBundle is installed. |
| Flexible discovery | Configure multiple roots, namespaces, exclusions and alternative controller or entity directories. |
| Architecture diagnostics | Inspect the catalog, activation reasons and dependency evidence as text or JSON. |
Modules normally live in src/Module; Projects live in src/Project. These defaults can be configured. Each descriptor owns its directory and descendants. Descriptor filenames are flexible, but must match their PSR-4 class names.
Quick start
Requirements
- PHP 8.4 or newer and Composer.
- Symfony 7.4 or 8.x in the consuming application.
- DoctrineBundle, only if you want automatic Doctrine entity mappings.
PHP 8.4/8.5 with Symfony 7.4/8.0/8.1 has been checked through independent consumer installations. See the tested versions and reproduction steps.
Install with Composer
Install Sillbeam in your Symfony application's root directory:
The release version is v0.1.0. The constraint ^0.1.0 allows compatible updates within the 0.1 release line. To install exactly this version, use composer require websign-dev/sillbeam:0.1.0.
Register Sillbeam
Register the bundle in your existing bundle array:
Create the route import. No config/packages/sillbeam.yaml is required for the defaults; create it only when configuring options. If Flex has already enabled the bundle, keep its existing registration.
Install through Symfony Flex
The [Flex recipe](https://github.com/WebSign-Dev/Sillbeam/blob/main/flex-recipe/README.md) registers the bundle and creates the route import above when available through your Symfony Flex endpoint. Recipe availability is independent of Composer package installation. If Composer/Flex does not install the recipe, register the bundle and route import manually as shown above.With the usual App\: import of src/, exclude Module and Project from that native service import when Sillbeam should control their automatic activation. Keep existing exclusions and explicit services. The Flex recipe preserves your service configuration; it does not add these exclusions. See the Symfony integration rules, including custom discovery roots and native routing/Doctrine imports.
Create your first module
Create src/Module/Billing/BillingModule.php:
- Organize the feature. Put its services inside the module directory. Sillbeam derives the
billingID and its PSR-4 namespace. - Expose routes and persistence. Controllers under
Controller/use ordinary Symfony route attributes. Entities underEntity/receive automatic mappings when DoctrineBundle is registered.Entity/andDto/are excluded from automatic service imports by default. - Inspect the architecture. Build the container and review the discovered modules:
See the getting-started guide for service discovery and integration details.
Modules and Projects
Declare another module in dependencies whenever your module directly references its classes. Sillbeam checks declarations and observed static references, and reports invalid access with file and line information. Unused imports do not create dependencies. Dynamic class names, PHPDoc and string service IDs are outside this analysis.
Without Projects, all enabled shared modules are active. With Projects, each Project selects shared modules and automatically includes its enabled private modules; dependencies complete its graph. Unassigned shared modules remain in the catalog but contribute no automatic services, routes or entity mappings.
| Application layout | Use case |
|---|---|
| Symfony only | Keep a conventional Symfony application with no module or Project descriptors. |
| Modules only | Structure one application around enabled shared feature modules. |
| Project only | Use direct Project services, controllers and entities without modules. |
| Single Project | Group a surface and its private modules without requiring host configuration. |
| Multiple Projects | Compose surfaces with distinct hosts and shared or private modules. |
| Hybrid | Combine conventional Symfony code with module and Project directories. |
Projects share the container, database and event system. They provide architectural ownership and routing composition, rather than process or tenant isolation. Global subscribers and handlers are not automatically restricted to a Project's host.
Read the Project guide for dependency rules, activation and routing.
Everyday workflow
Run these commands from your Symfony application's root:
| Command | Purpose |
|---|---|
php bin/console sillbeam:architecture |
Inspect modules, Projects, dependencies and activation reasons. |
php bin/console sillbeam:architecture --format=json |
Export the architecture catalog and dependency evidence. |
php bin/console sillbeam:about |
Show application, runtime and module information. |
php bin/console debug:container |
Inspect Symfony service registration. |
php bin/console debug:router |
Inspect imported application routes. |
php bin/console doctrine:mapping:info |
Inspect entity mappings when DoctrineBundle is installed. |
Architecture errors prevent the container from building, so resolve their reported boundaries or dependencies before running diagnostics. See the troubleshooting guide.
Documentation
| Guide | Contents |
|---|---|
| Documentation overview | Guide index and starting points. |
| Getting started | Installation, descriptors and native Symfony integration. |
| Architecture | Discovery, ownership, compilation and dependency boundaries. |
| Modules | Descriptors, dependencies and activation rules. |
| Projects | Shared and private modules, hosts and request context. |
| Configuration | Discovery roots, exclusions and integration settings. |
| Public API | Attributes, registries and runtime interfaces. |
| Doctrine | Optional entity mapping integration. |
| Migration | Breaking changes and replacing the former Foundation features. |
| Testing | Repository checks and integration coverage. |
| Test applications | Example layouts and the isolated consumer application. |
Release status
Sillbeam v0.1.0 is released and available through Composer as websign-dev/sillbeam. The release notes describe its scope and limitations. Composer derives the package version from the Git tag; 0.1.x-dev is the development branch alias.
Scope and migration
Sillbeam focuses on module architecture within Symfony. Services, HTTP handling and runtime behavior use Symfony's existing mechanisms. Applications supply their own business functionality and infrastructure integrations.
The former Foundation layer—including API, Security, User, entity bases, stores and infrastructure helpers—has been removed. This is a breaking change: replace existing usage according to the migration guide before updating. Strata remains a future idea and is not a dependency.
Development & support
From the Sillbeam repository root:
The example applications cover six operating variants. The isolated consumer lives under apps/test-app; its setup is described in the test-app guide.
Read Security for private vulnerability reporting.
When reporting an issue, include your PHP and Symfony versions, relevant Sillbeam configuration, the application layout and diagnostic output. Remove credentials from shared output.
License
Sillbeam is licensed under the MIT License.
All versions of sillbeam with dependencies
nikic/php-parser Version ^5.7
php Version ^8.4
symfony/config Version ^7.4 || ^8.0
symfony/console Version ^7.4 || ^8.0
symfony/dependency-injection Version ^7.4 || ^8.0
symfony/framework-bundle Version ^7.4 || ^8.0
symfony/http-foundation Version ^7.4 || ^8.0
symfony/http-kernel Version ^7.4 || ^8.0
symfony/routing Version ^7.4 || ^8.0
symfony/yaml Version ^7.4 || ^8.0