Skip to main content

Do you separate your logic?

I recently watched a video about separating logic into different categories within your custom code.

It wasn't a PHP video, but the concept applies to any programming language or framework.

This was the final structure of the directories:

src/
  Controllers/
  Domain/
  Persistence/
  Properties/
  Services/

It was described as using Controllers for presentational logic, Domain for domain logic, and Services for application logic, and reminds me of a domain-driven design (DDD) approach to organising code.

I remember watching other older videos showing separating business and presentational logic in React into different components (if I remember correctly).

This isn't an approach I see in Drupal code, maybe more-so in other PHP framework-based projects like Symfony or Laravel.

It's something I've been thinking of trying, potentially on my website codebase.

Do you organise your code in this or a similar way?

If so, why?

What advantages does it bring?

Was this interesting?

Subscribe to my daily newsletter for software professionals on software development and delivery, Drupal, DevOps, community, and open-source.

About me

Picture of Oliver

I'm a certified Drupal Triple Expert and former Drupal Association staff member with 18 years of experience, a Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.