An Introduction to Compilers, Interpreters, and JITs
With the birth of PHP 7, there is and has been a lot of talk about abstract syntax trees, just-in-time compilers, static analysis, etc. But what are these terms about? Are they magic features that make PHP go much faster? And if so, how does it all work? In this article, I will discuss the basics of how computer languages work and explain the processes that must be in place before a computer can actually run, for instance, your PHP script. by Joshua Thijssen
Getting Started with Zend Expressive
Many frameworks are now starting to adopt PSR-7 and the ideas of middleware. Middleware helps move some common code out of our business logic and into reusable objects that can be injected into a request. Zend Expressive is one of the new micro frameworks that are built totally around PSR-7, and is designed fully around middleware as a first-class citizen. by Chris Tankersley
Object Relational Mapping with Laravel’s Eloquent
Read this article for FREE
Object-relational mapping—ORM for short—has been a challenge in software system development for many years. In basic terms, this difficulty arises when attempting to match an object-oriented system to a relational database or RDBMS. So can you transpose an object-oriented model onto a relational model? While this remains a very hard problem to solve, there are ORM solutions that can emulate the same effect by creating a virtual object database. One such solution is Laravel’s Eloquent ORM framework. Eloquent provides the abstractions needed for you to be able to work with relational data as if it were loaded onto an inherited object model. by Luis Atencio
Integrating Heterogeneous Web Applications with Laravel and Guzzle
Companies and organizations that offer more than a couple of web applications to their employees or community require some kind of integration, at least for access control (e.g., LDAP, CAS, etc.). But what if the target user group does not belong to the company? What if some applications are not written in PHP or are proprietary and don’t make source code available? And what if, on the top of this, we want a higher level of integration (e.g., on a UI level)? This article will describe an integration architecture that provides a solution to this problem. by Alexandros Gougousis
Education Station: Hunting Mutants with Humbug
This month, I want to take another dive into testing, specifically looking at a way of validating and verifying the tests which we write. That might seem like a funny thing to say. And perhaps it’s just because I’m not as experienced at testing as you, or those in the community, are. by Matthew Setter
Leveling Up: Ensuring Your Tests are Valuable
Writing tests for our code and applications is critical. It gives us a repeatable, reliable way to ensure the code we write does what it should do and doesn’t do what it shouldn’t. Often, code coverage is used as a way to measure how much of a codebase is tested, but it only tells part of the story. More importantly than reaching the fabled 100 percent code coverage metric, we should be concentrating on building valuable tests. by David Stockton
Community Corner: Modern PHP
I’ve been thinking a lot lately about the topic of Modern PHP. (Those of you who know me probably know why.) It is an interesting topic these days and a very fluid one as well. by Cal Evans
Security Corner: Securing Legacy Applications—Part 1
I want to take some time in the next few issues to give you some things to think about when refactoring legacy applications and tips on how to make it more secure as you go. In this first part of the series I’m going to look at a few “quick hits” that you can look for in your current codebase. These are things that are pretty easy to fix, too, making them relatively simple to implement. by Chris Cornutt
Growing Programmer Population
Half of the programmers in the world have less than five years of experience. Doesn’t this begin to explain an awful lot? This is especially important to us in the PHP community, because PHP is often seen as a perfect entry language, and the language where many people get started. by Eli White