<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Arthur</title>
    <description>The latest articles on DEV Community by Arthur (@artimman).</description>
    <link>https://dev.to/artimman</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4159601%2F8f527f4e-e990-4e61-b825-5882b1b7f676.png</url>
      <title>DEV Community: Arthur</title>
      <link>https://dev.to/artimman</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/artimman"/>
    <language>en</language>
    <item>
      <title>PHP Framework Architecture in 2026: Laravel, Symfony, Slim, and a Lightweight Approach</title>
      <dc:creator>Arthur</dc:creator>
      <pubDate>Sat, 03 Oct 2026 11:55:42 +0000</pubDate>
      <link>https://dev.to/artimman/php-framework-architecture-in-2026-laravel-symfony-slim-and-a-lightweight-approach-3mdh</link>
      <guid>https://dev.to/artimman/php-framework-architecture-in-2026-laravel-symfony-slim-and-a-lightweight-approach-3mdh</guid>
      <description>&lt;h1&gt;
  
  
  PHP Framework Architecture in 2026: Laravel, Symfony, Slim, and a Lightweight Approach
&lt;/h1&gt;

&lt;p&gt;PHP has no shortage of frameworks.&lt;/p&gt;

&lt;p&gt;Laravel and Symfony dominate a large part of the modern PHP ecosystem. Slim remains a popular choice when a smaller HTTP layer is enough. And there are developers who prefer building more of the application architecture themselves.&lt;/p&gt;

&lt;p&gt;I am one of them.&lt;/p&gt;

&lt;p&gt;I started building &lt;strong&gt;DBM Framework&lt;/strong&gt; because I wanted a smaller application execution layer where important architectural decisions remain explicit and under the developer's control.&lt;/p&gt;

&lt;p&gt;This article is not an attempt to declare one framework better than another.&lt;/p&gt;

&lt;p&gt;The interesting question is different:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How much architecture should the framework decide for you?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Four different approaches
&lt;/h2&gt;

&lt;p&gt;At a high level, these projects solve related problems in different ways:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Laravel&lt;/th&gt;
&lt;th&gt;Symfony&lt;/th&gt;
&lt;th&gt;Slim&lt;/th&gt;
&lt;th&gt;DBM Framework&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Full-stack framework&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lightweight framework / engine&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Explicit dependency configuration&lt;/td&gt;
&lt;td&gt;configurable&lt;/td&gt;
&lt;td&gt;configurable&lt;/td&gt;
&lt;td&gt;developer-defined&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Modular architecture&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;td&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Application architecture&lt;/td&gt;
&lt;td&gt;conventions + components&lt;/td&gt;
&lt;td&gt;conventions + components&lt;/td&gt;
&lt;td&gt;developer-defined&lt;/td&gt;
&lt;td&gt;developer-defined&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data access&lt;/td&gt;
&lt;td&gt;Eloquent&lt;/td&gt;
&lt;td&gt;Doctrine ecosystem&lt;/td&gt;
&lt;td&gt;external&lt;/td&gt;
&lt;td&gt;Built-in data layer*&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ready-made application platform&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;DBM Platform*&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;DBM provides a built-in data access layer including query building and hydration, without requiring a full ORM. Doctrine can be added as an optional Composer dependency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DBM Platform is a separate application layer built on top of DBM Framework.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The table is intentionally simplified. Each ecosystem is much larger than a few rows can describe.&lt;/p&gt;

&lt;p&gt;The purpose is to show the architectural direction rather than compare feature counts.&lt;/p&gt;




&lt;h1&gt;
  
  
  Full-stack frameworks vs lightweight foundations
&lt;/h1&gt;

&lt;p&gt;Laravel and Symfony provide extensive ecosystems.&lt;/p&gt;

&lt;p&gt;They solve many application-level problems and provide established conventions, components, integrations, tooling and packages.&lt;/p&gt;

&lt;p&gt;That is exactly what many projects need.&lt;/p&gt;

&lt;p&gt;A different situation appears when the developer wants the framework to provide primarily the &lt;strong&gt;execution infrastructure&lt;/strong&gt;, while the application architecture remains their responsibility.&lt;/p&gt;

&lt;p&gt;This is where lightweight frameworks and application engines become interesting.&lt;/p&gt;

&lt;p&gt;Slim is a good example of a framework focused on the HTTP/application layer without attempting to define an entire application ecosystem.&lt;/p&gt;

&lt;p&gt;DBM Framework follows a similar lightweight philosophy, but with a broader application infrastructure layer and an explicit dependency configuration model.&lt;/p&gt;

&lt;p&gt;The goal is not to reproduce the feature set of Laravel or Symfony in a smaller package.&lt;/p&gt;

&lt;p&gt;The goal is different:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Provide the engine without deciding what the entire application must become.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  What does "lightweight" actually mean?
&lt;/h1&gt;

&lt;p&gt;"Lightweight" should not simply mean "has fewer features".&lt;/p&gt;

&lt;p&gt;For me, it is primarily an architectural property.&lt;/p&gt;

&lt;p&gt;A lightweight application engine should minimize the amount of machinery involved in executing a request and avoid forcing application-level decisions into the framework.&lt;/p&gt;

&lt;p&gt;In DBM Framework, this means focusing on things such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HTTP handling&lt;/li&gt;
&lt;li&gt;routing&lt;/li&gt;
&lt;li&gt;middleware&lt;/li&gt;
&lt;li&gt;dependency injection&lt;/li&gt;
&lt;li&gt;events&lt;/li&gt;
&lt;li&gt;database access&lt;/li&gt;
&lt;li&gt;templates&lt;/li&gt;
&lt;li&gt;sessions and cookies&lt;/li&gt;
&lt;li&gt;logging&lt;/li&gt;
&lt;li&gt;validation&lt;/li&gt;
&lt;li&gt;filesystem and uploads&lt;/li&gt;
&lt;li&gt;application lifecycle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application layer remains separate.&lt;/p&gt;

&lt;p&gt;That distinction is important.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your Application
       ↑
Application Layer
       ↑
DBM Framework
       ↑
PHP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The framework provides the infrastructure.&lt;/p&gt;

&lt;p&gt;The developer decides what the application looks like.&lt;/p&gt;




&lt;h1&gt;
  
  
  Dependency Injection: automation vs explicit configuration
&lt;/h1&gt;

&lt;p&gt;Dependency Injection is a good example of a broader architectural difference.&lt;/p&gt;

&lt;p&gt;Modern PHP frameworks can provide highly automated dependency resolution.&lt;/p&gt;

&lt;p&gt;This is convenient.&lt;/p&gt;

&lt;p&gt;For many applications, it is exactly the right trade-off.&lt;/p&gt;

&lt;p&gt;DBM takes another approach.&lt;/p&gt;

&lt;p&gt;Dependencies can be registered explicitly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;singleton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;MyService&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;MyService&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;MyRepository&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or an already-created object can be registered directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$container&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;MyService&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$service&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Important dependencies should be visible and consciously configured.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This does not mean automation is bad.&lt;/p&gt;

&lt;p&gt;It means that DBM intentionally avoids making heavy reflection-based autowiring the center of its dependency system.&lt;/p&gt;

&lt;p&gt;The result is a more explicit application bootstrap and a dependency graph that can be easier to follow when working on a custom architecture.&lt;/p&gt;




&lt;h1&gt;
  
  
  Application architecture belongs to the developer
&lt;/h1&gt;

&lt;p&gt;One of the biggest differences between frameworks is not the number of components they provide.&lt;/p&gt;

&lt;p&gt;It is &lt;strong&gt;how much of the application structure they expect you to adopt&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A framework can provide:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Controller
Service
Repository
Model
Event
Listener
Middleware
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But the real question is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Who decides how these pieces are organized?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;With DBM Framework, the application layer is intentionally left to the developer.&lt;/p&gt;

&lt;p&gt;For example, you can build:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
├── Controller/
├── Service/
├── Repository/
├── Domain/
└── Module/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/
├── User/
│   ├── Controller/
│   ├── Service/
│   └── Repository/
│
├── Billing/
│   ├── Controller/
│   ├── Service/
│   └── Repository/
│
└── Shared/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or a completely different structure.&lt;/p&gt;

&lt;p&gt;The framework does not need to know what your business architecture looks like.&lt;/p&gt;




&lt;h1&gt;
  
  
  Database access and Doctrine
&lt;/h1&gt;

&lt;p&gt;DBM Framework provides its own lightweight data access layer rather than requiring a full ORM.&lt;/p&gt;

&lt;p&gt;It includes database abstractions such as query building and hydration, giving the application a structured way to work with data without forcing an entity-based ORM model.&lt;/p&gt;

&lt;p&gt;At the same time, DBM does not prevent developers from using Doctrine.&lt;/p&gt;

&lt;p&gt;If a project needs Doctrine, it can be added through Composer as an optional dependency.&lt;/p&gt;

&lt;p&gt;This keeps the choice at the application level: use the built-in data layer, integrate Doctrine, or introduce another data access approach when the project requires it.&lt;/p&gt;

&lt;p&gt;DBM Platform also supports selecting the database implementation through configuration:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Database framework and driver configuration.
# Format: "FRAMEWORK|driver"
#
# Examples:
# PDO|pdo_mysql
# PDO|pdo_pgsql
# DOCTRINE|pdo_mysql
# DOCTRINE|pdo_pgsql

DB_DRIVER=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that the framework does not make the ORM choice a requirement for the application.&lt;/p&gt;




&lt;h1&gt;
  
  
  Modular architecture
&lt;/h1&gt;

&lt;p&gt;A lightweight framework does not have to mean a small application.&lt;/p&gt;

&lt;p&gt;DBM Framework is designed to support modular monolith architectures.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
│
├── Users
│   ├── Controllers
│   ├── Services
│   └── Repositories
│
├── Billing
│   ├── Controllers
│   ├── Services
│   └── Repositories
│
└── Notifications
    ├── Controllers
    ├── Services
    └── Repositories
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application can remain one deployable system while individual modules have clearly defined responsibilities.&lt;/p&gt;

&lt;p&gt;This is one reason I prefer the term &lt;strong&gt;application engine&lt;/strong&gt; for DBM Framework.&lt;/p&gt;

&lt;p&gt;It is not simply a tiny routing library.&lt;/p&gt;

&lt;p&gt;It provides the infrastructure needed to build a larger application while leaving the application architecture open.&lt;/p&gt;




&lt;h1&gt;
  
  
  Framework vs application platform
&lt;/h1&gt;

&lt;p&gt;There is another distinction that is important in the DBM ecosystem.&lt;/p&gt;

&lt;p&gt;DBM Framework is not a ready-made CMS or administration system.&lt;/p&gt;

&lt;p&gt;It is the foundation.&lt;/p&gt;

&lt;p&gt;On top of it, I am developing &lt;strong&gt;DBM Platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────────────────────┐
│           Your Application           │
│      Controllers · Services · Domain │
├──────────────────────────────────────┤
│             DBM Platform             │
│       CMS · Admin · Auth · Modules  │
│                optional              │
├──────────────────────────────────────┤
│            DBM Framework             │
│ HTTP · Routing · Middleware · DI     │
│ Database · Templates · Events · ...  │
└──────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This separation is intentional.&lt;/p&gt;

&lt;p&gt;Developers who want to build their own application can use DBM Framework directly.&lt;/p&gt;

&lt;p&gt;Projects that need a ready-made application layer can use DBM Platform.&lt;/p&gt;

&lt;p&gt;The engine and the platform therefore solve different problems.&lt;/p&gt;




&lt;h1&gt;
  
  
  Where does performance fit in?
&lt;/h1&gt;

&lt;p&gt;Performance was one of the reasons I started thinking about this architecture.&lt;/p&gt;

&lt;p&gt;But I don't think a framework should be marketed using one magic benchmark number.&lt;/p&gt;

&lt;p&gt;DBM Framework has been tested with results such as:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Observed response time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Server cache enabled&lt;/td&gt;
&lt;td&gt;~1.9 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Without cache&lt;/td&gt;
&lt;td&gt;~3–4 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Database + templating&lt;/td&gt;
&lt;td&gt;~5 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are results from specific tests, not universal benchmarks.&lt;/p&gt;

&lt;p&gt;Hardware, PHP configuration, web server, database, caching, application code and system load all matter.&lt;/p&gt;

&lt;p&gt;The more interesting question is what contributes to the overhead.&lt;/p&gt;

&lt;p&gt;DBM deliberately focuses on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a small core&lt;/li&gt;
&lt;li&gt;limited automation&lt;/li&gt;
&lt;li&gt;explicit dependency registration&lt;/li&gt;
&lt;li&gt;predictable request flow&lt;/li&gt;
&lt;li&gt;avoiding heavy reflection-based autowiring&lt;/li&gt;
&lt;li&gt;keeping the execution path relatively small&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performance is therefore a consequence of the architectural direction, rather than the only reason for choosing the framework.&lt;/p&gt;




&lt;h1&gt;
  
  
  And what about AI-generated code?
&lt;/h1&gt;

&lt;p&gt;This is becoming an increasingly interesting part of application development.&lt;/p&gt;

&lt;p&gt;AI can generate controllers, services, repositories and configuration very quickly.&lt;/p&gt;

&lt;p&gt;But generated code still needs an architecture.&lt;/p&gt;

&lt;p&gt;Someone has to decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;where the code belongs&lt;/li&gt;
&lt;li&gt;which dependencies it should use&lt;/li&gt;
&lt;li&gt;how modules communicate&lt;/li&gt;
&lt;li&gt;where business logic lives&lt;/li&gt;
&lt;li&gt;which abstractions are actually necessary&lt;/li&gt;
&lt;li&gt;how much automation is appropriate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That leads to a principle that has become important to me while developing DBM:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI can generate code. Someone still has to decide how that code is organized.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The framework should help with that decision without taking it away from the developer.&lt;/p&gt;




&lt;h1&gt;
  
  
  So which approach should you use?
&lt;/h1&gt;

&lt;p&gt;There is no universal answer.&lt;/p&gt;

&lt;p&gt;Laravel and Symfony provide extensive ecosystems and established conventions.&lt;/p&gt;

&lt;p&gt;Slim provides a lightweight foundation for applications that need a smaller framework layer.&lt;/p&gt;

&lt;p&gt;DBM Framework is aimed at developers who want a lightweight application engine with explicit configuration and freedom over the application layer.&lt;/p&gt;

&lt;p&gt;The differences can be summarized like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;More framework-defined application structure
                    ↑
                    │
              Laravel
              Symfony
                    │
                    │
                  Slim
                    │
                    │
             DBM Framework
                    ↓
More developer-defined architecture
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is not a quality ranking.&lt;/p&gt;

&lt;p&gt;It is simply a way of thinking about where architectural responsibility sits.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why I built DBM Framework
&lt;/h1&gt;

&lt;p&gt;DBM Framework started as a much smaller PHP project.&lt;/p&gt;

&lt;p&gt;Over time, the architecture evolved.&lt;/p&gt;

&lt;p&gt;The current version separates the framework engine from the application layer and forms the foundation of the larger Dybem ecosystem.&lt;/p&gt;

&lt;p&gt;The idea became increasingly simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Build the infrastructure.&lt;br&gt;
Keep the application architecture visible.&lt;br&gt;
Let the developer decide what comes next.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If that approach sounds interesting, the project is open source and available on GitHub.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DBM Framework:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/designbymalina/dbmframework" rel="noopener noreferrer"&gt;https://github.com/designbymalina/dbmframework&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dybem:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://www.dybem.com/" rel="noopener noreferrer"&gt;https://www.dybem.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The framework is still evolving, and feedback from PHP developers is welcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  What do you prefer in your own projects: a framework that provides more conventions and automation, or a smaller foundation where you define more of the architecture yourself?
&lt;/h2&gt;

</description>
      <category>php</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>architecture</category>
    </item>
  </channel>
</rss>
