StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Frameworks
  4. Frameworks
  5. PHP-MVC vs Symfony

PHP-MVC vs Symfony

OverviewDecisionsComparisonAlternatives

Overview

Symfony
Symfony
Stacks8.5K
Followers6.2K
Votes1.1K
GitHub Stars30.7K
Forks9.7K
PHP-MVC
PHP-MVC
Stacks106
Followers222
Votes3

PHP-MVC vs Symfony: What are the differences?

Introduction

In this article, we will discuss the key differences between PHP-MVC (Model-View-Controller) and Symfony frameworks.

  1. File Structure: Symfony follows a well-defined file structure with a bundle-based architecture. Each component of a Symfony project is divided into bundles, making it easier to manage the codebase. On the other hand, PHP-MVC does not enforce a strict file structure and allows developers to organize their code as they see fit.

  2. Dependency Injection: Symfony heavily relies on the concept of dependency injection, where components and services are loosely coupled and can be easily swapped or modified. This promotes reusability and modularity in Symfony applications. PHP-MVC does not inherently provide built-in support for dependency injection and may require additional third-party libraries to achieve similar functionality.

  3. Framework Maturity: Symfony is a well-established and mature framework with a large and active community, providing extensive documentation and support. It has been continuously maintained and improved over the years, making it highly reliable for enterprise-level applications. PHP-MVC, on the other hand, is a more generic concept rather than a specific framework, making it less mature and lacking the same level of community support and resources.

  4. Code Generation: Symfony provides powerful command-line tools that generate boilerplate code and assist in creating CRUD operations, forms, and other common functionalities with minimal effort. These code generators streamline the development process and save time. In PHP-MVC, developers often need to write repetitive code manually, which can be time-consuming and error-prone.

  5. Testing Support: Symfony incorporates an extensive testing framework that allows developers to write unit tests, functional tests, and acceptance tests for their applications. This framework provides built-in tools for mocking dependencies and testing different aspects of the application. PHP-MVC does not come with a standardized testing framework and may require additional libraries or custom implementations to achieve similar testing capabilities.

  6. Component Reusability: Symfony is built as a collection of decoupled and standalone components, known as Symfony Components. These components can be used independently in any PHP project, providing a high level of reusability. PHP-MVC, being more of a concept than a framework, may not offer such standalone components for reuse.

In Summary, Symfony offers a well-structured file system, dependency injection, a mature and well-supported framework, code generation tools, comprehensive testing support, and reusable components. PHP-MVC, on the other hand, allows more flexibility in terms of file structure, lacks built-in dependency injection, is less mature, requires more manual code writing, may have limited testing capabilities, and lacks standalone reusable components.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on Symfony, PHP-MVC

Danilo
Danilo

Senior Software Engineer at WeRoad

Dec 14, 2021

Decided

For a full-stack app or just simple APIs I'd go 100% with Laravel. You get a clean architecture, beautiful documentation and friendly and always growing community: the project is yours, from A to Z. With their docs and resources like Laracast you can start from zero and build what you want, when you want. The learning curve is definitely smaller when compared to Symfony and, with the help of a bit of "magic" (Facades etc.) you get the same results in the half of the time with cleaner code.

105k views105k
Comments
Quade
Quade

DevOps Engineer

Jun 27, 2022

Needs adviceonDjangoDjangoPythonPythonSymfonySymfony

Hi everyone! I'm starting a personal project that I've been postponing for a little while and I need a bit of advice. I thought that it will be a bit of a challenge but I figure the best way to learn is by doing!

The plan is to build an app with loads of automation build in for reporting which would make it very easy to perform tasks, The plan is to build something similar to an HR app using microservice architecture, separating services e.g. employee data, payroll (including calculations based on easily entered info like tax %), employee services (vacation, sick day allowance booking and tabulation) and automated reporting on a pre-defined schedule (bi-weekly, monthly).

I am considering Django (as I currently know a bit of Python) and Symfony (as a friend who is a developer recommended it) but I am well aware there are other (and probably better) tools out there for the job (like maybe ExpressJS/Node.js for the backend and React/Vue.js for the front).

Background:

I have got knowledge as a DevOps, Site Reliability and Cloud engineer so once the app is built I'm very comfortable taking it to deployment.

Thank you all for your help and responses.

72.4k views72.4k
Comments
Fabian
Fabian

May 5, 2020

Needs adviceonGraphQLGraphQLC++C++SymfonySymfony

I'm about to begin working on an API, for which I plan to add GraphQL connectivity for processing data. The data processed will mainly be audio files being downloaded/uploaded with some user messaging & authentication.

I don't mind the difficulty in any service since I've used C++ (for data structures & algorithms at least) and would also say I am patient and can learn fairly quickly. My main concerns would be their performance, libraries/community, and job marketability.

Why I'm stuck between these three...

Symfony: I've programmed in PHP for back-end in a previous internship and may do so again in a few months.

Node.js: It's newer than PHP, and it's JavaScript where my front-end stack will be React and (likely) React Native.

Golang: It's newer than PHP, I've heard of its good performance, and it would be nice to learn a new (growing) language.

2.4M views2.4M
Comments

Detailed Comparison

Symfony
Symfony
PHP-MVC
PHP-MVC

It is written with speed and flexibility in mind. It allows developers to build better and easy to maintain websites with PHP..

This project is - by intention - NOT a full framework, it's a bare-bone structure, written in purely native PHP ! The php-mvc skeleton tries to be the extremely slimmed down opposite of big frameworks like Zend2, Symfony or Laravel.

Statistics
GitHub Stars
30.7K
GitHub Stars
-
GitHub Forks
9.7K
GitHub Forks
-
Stacks
8.5K
Stacks
106
Followers
6.2K
Followers
222
Votes
1.1K
Votes
3
Pros & Cons
Pros
  • 177
    Open source
  • 149
    Php
  • 130
    Community
  • 129
    Dependency injection
  • 122
    Professional
Cons
  • 10
    Too many dependency
  • 8
    Lot of config files
  • 4
    YMAL
  • 3
    Feature creep
  • 1
    Bloated
Pros
  • 3
    Easy to Learn
Integrations
CakePHP
CakePHP
PHP
PHP
ReactPHP
ReactPHP
PHP
PHP

What are some alternatives to Symfony, PHP-MVC?

Node.js

Node.js

Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Rails

Rails

Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

Django

Django

Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

Laravel

Laravel

It is a web application framework with expressive, elegant syntax. It attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as authentication, routing, sessions, and caching.

.NET

.NET

.NET is a general purpose development platform. With .NET, you can use multiple languages, editors, and libraries to build native applications for web, mobile, desktop, gaming, and IoT for Windows, macOS, Linux, Android, and more.

ASP.NET Core

ASP.NET Core

A free and open-source web framework, and higher performance than ASP.NET, developed by Microsoft and the community. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET Core.

Spring

Spring

A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments.

Spring Boot

Spring Boot

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need very little Spring configuration.

Android SDK

Android SDK

Android provides a rich application framework that allows you to build innovative apps and games for mobile devices in a Java language environment.

Phoenix Framework

Phoenix Framework

Phoenix is a framework for building HTML5 apps, API backends and distributed systems. Written in Elixir, you get beautiful syntax, productive tooling and a fast runtime.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase