php[architect] logo

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

Navigating State – July 2018

We write code to solve problems. Whether it’s allowing a client’s site to accept credit card payments to buy a plush toy or if we’re trying to automatically track our World Cup bracket results, the applications we make exist for a reason. While HTTP and PHP are stateless at their core, keeping track of the state of things is a recurring concern. It could be tracking if a user is logged in or knowing where they are in the shopping cart checkout process. In this issue, we survey tools to help you model and persist application state.

Sponsored By
Nexcess Logo

State in the Stateless World

By Luka Mužinić

While finite state machines and Petri nets sound too abstract or even out of place for web development, rest assured, they can be quite useful in your applications. If you have news articles that go from draft to review and then to published or webshop orders which are created, updated, and dispatched only to get returned and refunded, you might want to look into using state machines. Let’s learn one new pattern, see what popular libraries are out there, and how to use them to keep your business rules well organized and your concerns separated.

Pro Parsing Techniques with PHP, Part Two: Fault Tolerance

By Michael Schrenk

This article is part two of a three-part series on parsing text with PHP. The previous installment dealt with basic parsing techniques; particularly how parsing becomes easier when you limit your parsing toolkit to only a few, well chosen, tools that you’ll use over and over again. This article is dedicated to fault tolerant parsing techniques. This series will finish with the third article which describes how to use regular expressions.

Making Use of Our Robot Overlords

By Brian Thompson

As the development of PHP software has evolved, so has the tooling that can support it. Similarly, as projects have grown, so have the project teams working together. This growth in project teams has resulted in a need for more complex deployment processes and increased communication. Today’s top development teams are leveraging Continuous Integration robots such as GitLab CI and tightly integrating them with their communication platforms. You can as well with minimal effort!

MySQL Without The SQL—Oh My!

By Dave Stokes

Do you work on projects where you begin coding before knowing what your data looks like? Or are you part of the vast majority of developers who have had little or no training in database theory, relational calculus, Structured Query Language, or sets? Could you be working on a project without a database administrator to set up relational tables, indexes, and schemas? Or are you tired of embedding ugly lines of SQL in your pristine PHP code? There is new hope for you.

The Dev Lead Trenches: Issue Workflows for Teams

By Chris Tankersley

Issues and issue tracking are central to your team’s communications about what’s getting worked on and needs fixing. Having a clear and agreed upon standard for working with them will keep your team focused and productive while minimizing misunderstanding.

The Workshop: CakePHP, Part Two

By Joe Ferguson

Last month we covered the basics of CakePHP and how to get started creating routes, controllers, database tables, and retrieving data. This month we’re going to dive into returning HTML views, as well as creating and validating forms to create new widgets.

Education Station: Build an Algorithm

By Edward Barnard

If you have trouble making change for a dollar without a calculator, and don’t care, this article may not be for you. Otherwise, come along with me! We’ll be converting between numbering systems. We’ll create an algorithm for converting between decimal (integer) and hexadecimal numbers.

Security Corner: Secure Remote Password Authentication

By Eric Mann

A solid practice in protecting user credentials is to never store passwords in plaintext on the server. Modern content management systems and PHP frameworks leverage strong one-way functions to store only hashes of passwords. This technique protects your users should your database ever be breached by an attacker. An even stronger mechanism, however, would never send a plaintext password to the server in the first place.

Community Corner: Contributing is More Than Coding

By James Titcumb

I recently returned from another fantastic edition of the Dutch PHP Conference in the Netherlands, where I spoke to many people about open source software. In fact, every year they host a “Code Night” which encourages open source contributions, and they’re not the only conference to do this. If you’ve followed my column, you’ll already be aware of how much I encourage folks to start looking into how they can help with open source software.

finally{}: Do We Need Developers?

By Eli White

Proportionally fewer people are graduating from college with degrees in computer science & related fields. In 2005 and 2015, there were approximately the same number of Computer Science graduates, but there were overall 31% more college graduates, meaning that the percentage of CS degrees dropped significantly. Why is this happening?

Leave a comment

Use the form below to leave a comment: