php[architect] logo

Want to check out an issue? Sign up to receive a special offer.

PHP Is Listening

September 2024

In life, listening is a skill that can be beneficial in many ways. It can help you understand others, learn new things, and even improve your relationships. It’s currently an election year in the United States, and the presidential race is very contentious. Please do not let politics divide you from your friends and family. Remember to listen to others and respect their opinions, even if they differ from your own.

It’s Magical

By Edward Barnard

Our Back Office methodology simplifies complex tasks by breaking them into single-purpose activities. Using a Business Process Diagram (BPD), we address known and unknown project elements iteratively. Our case study, integrating Stripe with Sage Intacct, shows how we automate processes while ensuring stakeholder buy-in. Though a local environment setup with tools like Laravel Queues is challenging, it prepares you for a streamlined coding phase that takes advantage of early planning and discussions. by Edward Barnard

PHP Foundry

By Oscar Merida

Are you managing a growing list of features in your project? As your codebase evolves, the complexity and depth can outstrip our ability to manage and document it. While working on an API client for Spacetraders, I encountered it firsthand and found it overwhelming, even with a handful of commands. Despite following conventions, details are scattered across multiple files, and I can’t keep track of them all in my head. In this article, we’ll explore how attributes introduced in PHP 8, coupled with the Reflection API, can help us tame complexity. by Oscar Merida

Bring Back the Creativity

By Beth Tucker Long

Do you remember when chat rooms and social media platforms were abuzz with posts about new libraries, packages, and projects to make the PHP ecosystem and the world at large a better place? I miss those days. by Beth Tucker Long

Securing PHP Applications: A Deep Dive – Part Five – API Security

By Christopher Miller

So far, we’ve now looked at: 1. How a hacker can get in; 2. Some ways of securing that in code; 3. Authentication and authorization; 4. Educating users and handling incidents by Christopher Miller

Micro Frontends

By Chris Tankersley

In the world of modern software development, we tend to think of applications in two different paradigms—monolithic applications and microservices. by Chris Tankersly

Secure Authentication

By Eric Mann

I’ve written at length in the past about the three dimensions of authentication and how they’re important. The first two are easy.Something you **are**, being your user ID or login, and something you **know**, your password.It’s the third dimension—something you **have** that becomes a bit more complicated. by Eric Mann

How Steve Writes Laravel Code

By Steve McDougall

I get asked all the time how I approach a project when it comes to Laravel, so I thought I would walk through how I build Laravel applications to answer these questions. by Steve McDougall

Imposter Syndrome? That’s the Last of Your Worries

By Philip Tadeo

So, you finally landed the job you’ve been striving for, the one you went to school for and worked so hard to get. Congratulations! But make no mistake, your learning journey is far from over. If you want to stay on top in this ever-evolving world, you’ll need to keep yourself fresh and up-to-date with the rapidly changing landscape of development. The biggest obstacle you’ll face won’t be aggressive colleagues or overbearing managers. The biggest obstacle will be… yourself. by Philip Tadeo

Implementing Asynchronous Listeners with Serde

By Aaron Barczewski

An event-listener system enhances code modularity and reduces redundancy. By utilizing the PSR-14 standard for event dispatching, a simple synchronous event dispatcher can be created that loops through and executes all listeners subscribed to an event. However, this approach has a major drawback: if one listener fails, all subsequent listeners subscribed to the same event will also fail. A solution to this problem is to execute listeners asynchronously using a queue. This method allows listeners to run independently, ensuring that the status of one listener does not affect the execution of the remaining listeners. Additionally, it enables retry and delay functionality, allowing an engineering team to implement listeners in parallel. by Aaron Barczewski

Leave a comment

Use the form below to leave a comment: