Domain Driven Design with Laravel 9

  • avatar
Preview post image

Modern web frameworks teach you to take one group of related concepts and split it across multiple places throughout your codebase. Laravel is a robust framework with a big community behind it. Usually it's standard structure is enough for most starting projects.

Building scalable applications, instead, requires a different approach. Have you ever heard from a client to work on controllers or review the models folder? Probably never - they ask you to work on invoicing, clients management or users. These concept groups are called domains.

Domain Driven Design: Layers

  • avatar
  • 2.3K Views
  • 8 Likes
  • 4 mins read
Preview post image

Creating applications that can handle very complex tasks requires separation of code by using directory structures, layers and boundaries. This is where the concept of a Layered Architecture comes in. Projects developed with the Domain Driven Design approach has the following layers: domain, application, infrastructure and user interface (UI).

Interfaces binding with implementations in Laravel

  • avatar
  • 1.8K Views
  • 5 Likes
  • 6 mins read
Preview post image

An interface is a programming structure that allows the computer to enforce certain properties on an object. In object oriented programming, an interface generally defines the set of methods that an instance of a class that has that interface could respond to. It is actually a concept of abstraction and encapsulation.

 Join Our Newsletter

Get the latest news and popular articles to your inbox every month

Native enumerations in PHP

  • avatar
  • 182 Views
  • 3 Likes
  • 6 mins read
Preview post image

Enumerations, or Enums allow a developer to define a custom type that is limited to one of a discrete number of possible values. That can be especially helpful when defining a domain model, as it enables making invalid states unrepresentable. In other words, enums are a restricting layer on top of classes and class constants, intended to provide a way to define a closed set of possible values for a type.