php[architect] logo

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

Debug, Rinse, Repeat

June 2021

Programming is a cyclical process, and while you may have a clear beginning, the finish line of a project is only the starting line for the next phase. In this issue, we look at tools and techniques to help you debug better, automate repetitive tasks, secure your APIs, and more.

Debugging with Purpose

By Joseph Maxwell

Debugging and solving problems is an art. It is part technique and part practice. In this article, I share a powerful technique that has helped me quickly solve many problems. This system gets my head out of a rut and pushes me to look at other solutions creatively. You will also learn some approaches to discovering the necessary information. Finally, this technique is tied up into a nice little package that cements your status as a hero in your workplace.

Don’t Make Me Think—Ways to Make Dev’s Life Easier

By Paweł Lewtak

A programmer’s job is not just writing code. It’s also writing tests, reading code, talking to other programmers, communicating ideas, and understanding other people’s designs. On top of that, there are dozens of messages, bugs, and endless little things that need to be done. Create a branch, make changes, commit, add tests, commit, correct formatting, commit, add error handling and logging, commit, pull request, merge, manual testing. What if some of this could be made more efficient? A bit of good practice and automation can be the difference.

Automating with GitHub Actions

By Gabriel Zerbib

The discipline of CI/CD, which increases the quality and the velocity, is essential in the software industry, both in open source and in business projects, with ever more numerous and practical tools. Successful development companies are increasingly regarding it as a mandatory skill, and we can clearly understand why once we have gotten into the habit of automating these operations. This article demonstrates setting up a CI pipeline with GitHub Actions.

Education Station: Approaches to API Security

By Chris Tankersley

The last few months have been a whirlwind of API work. If you’ve been following along, you have a solid grasp of the history of APIs, tools to help design your APIs, and a good lump of tips on how to turn that API design into reality. But, for the sake of space, I left out a few items that you may want to consider when it comes to various parts of the process.

The Workshop: Docker Swarm

By Joe Ferguson

Docker Swarm is a mode in which Docker deploys container services across a cluster. Spreading a service across multiple swarm nodes (systems running Docker joined to the same swarm cluster) allows us to perform load balancing and rolling updates to our application. We also can easily horizontally scale by adding more nodes and scaling services up. Previously when we’ve worked with Docker Compose files, we’ve declared services made up of containers and their operational parameters; we can deploy these same compose files as a “stack” in swarm mode. Our goal this month is to cover how to build container images for our application and orchestrate the services required to support our app in a testing or staging environment.

Security Corner: Responsible Disclosure

By Eric Mann

Despite our best efforts, security bugs will creep into deployed production code. When this happens, members of the community might reach out to report these bugs to you. Your team needs to be prepared to both receive and encourage these forms of responsible disclosure.

Community Corner: Longhorn PHP 2021

By Eric Van Johnson

2020 was a year of uncertainty, fear, and adjustments. We limited our physical contact with others, created bubbles of safe spaces and people, and tried not to wander too far from those established bubbles. As a result, a lot changed that year. One of the year’s casualties was in-person conferences, a staple in our tech industry and something some would try to attend at least once a year.

PHP Puzzles: Ciphers and Cellular Automata

Encrypting and decrypting messages were an early computing application. Last month’s challenge was to implement and harden a cipher from antiquity. Let’s look at possible solutions before moving on to this month’s challenge.

finally{}: PHP is Not Important

By Beth Tucker Long

Every technology has its share of haters. Disagreements in coding philosophies become language wars. Differences in project priorities become personal attacks. It’s vicious. It’s demoralizing. Why would anyone stay in an environment like this?

Leave a comment

Use the form below to leave a comment: