How to create an Active Record style PHP SDK Part 15

Last week we looked at building out the functionality to serialise model objects into JSON that can be sent to the CapsuleCRM API. We are now at the stage where we can call the toJson() method on a model object and have that object serialise itself into JSON that satisfies the requirements of the API. […]

Continue reading...

Creating and testing Doctrine Repositories

A couple of weeks ago we looked at the benefits of using Repositories in web applications. We also laid the foundation for the User Repository by writing the initial interface. There are many benefits to using Repositories in web applications. For example, coding to an interface, hiding the details of the storage provider and making […]

Continue reading...

How to create an Active Record style PHP SDK Part 14

Last week we started looking at adding the functionality to persist entities to the API. Part of the beauty of the Active Record pattern is how easy it is to persist records to the data store. This is because each model object should have everything it needs to read, write, update and delete. However, in […]

Continue reading...

Creating a Mailer Infrastructure Service

A typical Domain Driven Design application will be comprised of three main areas. These three areas are the Domain, the Infrastructure and the Application. Each service layer acts as a boundary to the set of operations that are available inside that layer of abstraction. Each layer has a strict set of responsibilities and should not […]

Continue reading...

How to create an Active Record style PHP SDK Part 13

Over the last couple of weeks we’ve looked at adding the ability to query an API using the Active Record Pattern. The Active Record Pattern dictates that the model object should have the ability to query the data store. We implemented this functionality by providing a find() and an all() for retrieving single entities or […]

Continue reading...

Creating Domain Services

An important concept in Domain Driven Design is the modelling of domain logic in Entities and Value Objects. As we’ve seen over the last couple of weeks, we can use Value Objects and Entities to model and protect the business logic of our applications. However not every action or piece of functionality will fit neatly […]

Continue reading...

How to create an Active Record style PHP SDK Part 12

Last week we looked at implementing the process for normalising models with subclasses. The API we are working with has the concept of Person and Organisation entities as child entities to a parent Party entity. This makes normalising responses from the API slightly more tricky because we have to be able to dynamically determine how […]

Continue reading...

Implementing Domain Events

Recently we’ve been taking a deeper dive into the world of Domain Driven Design to discover how we can understand the requirements of an application and model it in code. A big problem with application development is often that the two opposing sides of business and development fail to communicate effectively and so the end […]

Continue reading...

How to create an Active Record style PHP SDK Part 11

Last week we began looking at encapsulating the logic around normalising API JSON responses and turning them into model objects. Whenever we make a request to the API, we will receive a raw JSON response. This JSON response will need to be “normalised” and converted into instances of the model objects that we will create […]

Continue reading...

Defining the building blocks of Domain Driven Design

An important part of the beauty of Domain Driven Design is the fact that we have a language to describe certain concepts and components within our application. Terms like Aggregate Root, Value Object and Entity have concrete meanings that describe how our applications are formed. Whilst these terms form part of the structure of Domain […]

Continue reading...

Supported by