All Projects → regniblod → Symfony Ddd Edition

regniblod / Symfony Ddd Edition

Symfony standard edition with DDD architecture.

Projects that are alternatives of or similar to Symfony Ddd Edition

Symfony Ddd Wishlist
Wishlist, a sample application on Symfony 3 and Vue.js built with DDD in mind
Stars: ✭ 172 (+120.51%)
Mutual labels:  symfony-application, symfony, ddd, ddd-architecture
Wallabag
wallabag is a self hostable application for saving web pages: Save and classify articles. Read them later. Freely.
Stars: ✭ 6,392 (+8094.87%)
Mutual labels:  symfony-application, symfony
Symfony Rest Edition
Fork from symfony-standard edition with additional rest features.
Stars: ✭ 643 (+724.36%)
Mutual labels:  symfony-application, symfony
Symfony 5 Es Cqrs Boilerplate
Symfony 5 DDD ES CQRS backend boilerplate
Stars: ✭ 759 (+873.08%)
Mutual labels:  symfony, ddd
Ddd Playground
Domain-Driven Design in a PHP project using Symfony
Stars: ✭ 517 (+562.82%)
Mutual labels:  symfony, ddd
Cp Ddd Framework
A lightweight flexible development framework for complex business architecture with full ecosystem!轻量级业务中台开发框架,中台架构的顶层设计和完整解决方案!
Stars: ✭ 566 (+625.64%)
Mutual labels:  ddd, ddd-architecture
En Marche.fr
Le site principal du mouvement En Marche !
Stars: ✭ 743 (+852.56%)
Mutual labels:  symfony-application, symfony
Ddd Guestbook
A DDD guestbook example written for ASP.NET Core
Stars: ✭ 447 (+473.08%)
Mutual labels:  ddd, ddd-architecture
Accompli
An easy to use and extendable deployment tool for (PHP) projects.
Stars: ✭ 9 (-88.46%)
Mutual labels:  symfony-application, symfony
Practical Clean Ddd
A simplified and effortless approach to get started with Domain-driven Design, Clean Architecture, CQRS, and Microservices patterns
Stars: ✭ 28 (-64.1%)
Mutual labels:  ddd, ddd-architecture
Ultimate Backend
Multi tenant SaaS starter kit with cqrs graphql microservice architecture, apollo federation, event source and authentication
Stars: ✭ 978 (+1153.85%)
Mutual labels:  ddd, ddd-architecture
Patterns
Complete catalog of all classical patterns in the Archimate language
Stars: ✭ 70 (-10.26%)
Mutual labels:  ddd, ddd-architecture
Modular Monolith With Ddd
Full Modular Monolith application with Domain-Driven Design approach.
Stars: ✭ 6,210 (+7861.54%)
Mutual labels:  ddd, ddd-architecture
Ec Cube
EC-CUBE is the most popular e-commerce solution in Japan
Stars: ✭ 591 (+657.69%)
Mutual labels:  symfony-application, symfony
Open Loyalty
Open Loyalty is technology for loyalty solutions for starting new loyalty projects.
Stars: ✭ 476 (+510.26%)
Mutual labels:  symfony, ddd
Symfony Cmf
Meta package tying together all the key packages of the Symfony CMF project.
Stars: ✭ 742 (+851.28%)
Mutual labels:  symfony-application, symfony
Ddd Symfony Sample
A symfony sample application using DDD
Stars: ✭ 58 (-25.64%)
Mutual labels:  symfony, ddd
Cmf Sandbox
Base project for trying CMF components integration
Stars: ✭ 368 (+371.79%)
Mutual labels:  symfony-application, symfony
Bolt
Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.
Stars: ✭ 4,136 (+5202.56%)
Mutual labels:  symfony-application, symfony
Crm Application
OroCRM - an open-source Customer Relationship Management application.
Stars: ✭ 785 (+906.41%)
Mutual labels:  symfony-application, symfony

Symfony Standard DDD Edition

Welcome to the Symfony Standard DDD Edition - a fully-functional Symfony application with DDD architecture that you can use as the skeleton for your new applications.

For details on how to download and get started with Symfony, see the Installation chapter of the Symfony Documentation.

Installing the Symfony Standard DDD Edition

When it comes to installing the Symfony Standard DDD Edition, you have the following options.

Use Composer (recommended)

As Symfony uses Composer to manage its dependencies, the recommended wayto create a new project is to use it.

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

curl -s http://getcomposer.org/installer | php

Then, use the create-project command to generate a new Symfony application:

php composer.phar create-project regniblod/symfony-ddd-edition --stability=dev path/to/install

Composer will install Symfony and all its dependencies under the path/to/install directory.

Download an Archive File

To quickly test Symfony, you can also download an archive of the Standard DDD Edition and unpack it somewhere under your web server root directory.

If you downloaded an archive "without vendors", you also need to install all the necessary dependencies. Download composer (see above) and run the following command:

php composer.phar install

Checking your System Configuration

Before starting coding, make sure that your local system is properly configured for Symfony.

Execute the check.php script from the command line:

php bin/symfony_requirements

Access the config.php script from a browser:

http://localhost/path/to/symfony/config.php

If you get any warnings or recommendations, fix them before moving on.

Getting started with Symfony

This distribution is meant to be the starting point for your Symfony applications.

A great way to start learning Symfony is via the Quick Tour, which will take you through all the basic features of Symfony2.

Once you're feeling good, you can move onto reading the official Symfony2 book.

A default bundle, ModuleBundle, shows you Symfony DDD architecture in action. After playing with it, you can remove it by following these steps:

  • remove the routing entries referencing ModuleBundle in app/config/routing.yml.
  • remove the ModuleBundle from the registered bundles in app/AppKernel.php.
  • remove src/Project/Module and tests/Project/Module directories.
  • Remove all the .gitkeep files: find . -name .git -prune -o -type d -empty -exec touch {}/.gitkeep \;

How to add a new module

Use the command symfony-ddd:generator:create-module <module_name> to create a new module with the complete src and tests directory structure, bundle, services and repositories files, routing and Doctrine mapping.

What's inside?

The Symfony Standard DDD Edition is configured with the following defaults:

  • A ModuleBundle you can use to start coding.
  • Twig as the only configured template engine.
  • Doctrine ORM/DBAL.
  • Swiftmailer.
  • Annotations enabled for everything.

It comes pre-configured with the following bundles:

  • FrameworkBundle - The core Symfony framework bundle
  • SensioFrameworkExtraBundle - Adds several enhancements, including template and routing annotation capability
  • DoctrineBundle - Adds support for the Doctrine ORM
  • TwigBundle - Adds support for the Twig templating engine
  • SecurityBundle - Adds security by integrating Symfony's security component
  • SwiftmailerBundle - Adds support for Swiftmailer, a library for sending emails
  • MonologBundle - Adds support for Monolog, a logging library
  • WebProfilerBundle (in dev/test env) - Adds profiling functionality and the web debug toolbar
  • SensioDistributionBundle (in dev/test env) - Adds functionality for configuring and working with Symfony distributions
  • SensioGeneratorBundle (in dev/test env) - Adds code generation capabilities
  • DebugBundle (in dev/test env) - Adds Debug and VarDumper component integration
  • SymfonyDDDGeneratorBundle (in dev/test env) - Adds code generation capabilities specifically for this Symfony distribution.

All libraries and bundles included in the Symfony Standard Edition are released under the MIT or BSD license.

Architecture

TODO: Explain different layers.

Folder structure

src
└── Project
    └── Module
        ├── Application
        │   └── ModuleBundle
        │       ├── Command
        │       ├── Controller
        │       ├── DependencyInjection
        │       │   └── Compiler
        │       └── Resources
        │           ├── config
        │           │   └── doctrine
        │           └── views
        │               └── default
        ├── Domain
        │   ├── Component
        │   ├── Event
        │   ├── Exception
        │   ├── Model
        │   ├── Repository
        │   ├── Service
        │   └── Value
        └── Infrastructure
            ├── Migrations
            │   └── Doctrine
            ├── Repository
            │   └── Doctrine
            └── Service

Inspiration

Other implementations:

ToDo

  • Explain architecture.
  • Create sample app.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].