Design Patterns
![How to Ensure Flexible, Reusable PHP Code with Insphpect](https://uploads.sitepoint.com/wp-content/uploads/2020/06/1593522244code.png)
Learn about Insphpect, a tool that scans your PHP code for object-oriented programming techniques that hinder code reusability and flexibility.
Kirk Madera goes through the process of creating the R side of a blog module CRUD in this quick, 10-minute Zend Expressive tutorial, demonstrating its power
![ReactJS in PHP: Writing Compilers Is Easy and Fun!](https://uploads.sitepoint.com/wp-content/uploads/2016/07/1469778724building-blocks.jpg)
Christopher Pitt is back with another esoteric use case in PHP land - building custom compilers! Here he builds one which can process ReactJS code in PHP!
![Are Bitwise Operators Still Relevant in Modern PHP?](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1489014435Fotolia_94353427_Subscription_Monthly_M.jpg)
Heard of bitwise operators? Let's explore their practical application in storing and checking for user permissions, and whether this makes sense!
![What Are the Workflows of Prominent PHP Community Members?](https://uploads.sitepoint.com/wp-content/uploads/2016/02/1454566338debug.jpg)
Sharoze asks some prominent community members about their development workflow - some answers are predictable, others will surprise. What can you relate to?
![Re-Introducing PHPUnit: Getting Started with TDD in PHP](https://uploads.sitepoint.com/wp-content/uploads/2017/06/1497880521testing-functional-js.png)
Let's take a fresh look at PHPUnit - the de-facto TDD tool for PHP. We'll explain TDD on an example, implement code coverage, and more!
![Re-Introducing Eloquent’s Polymorphic Relationships](https://uploads.sitepoint.com/wp-content/uploads/2015/02/1423519219laravel-l-slant.png)
Christopher presents Eloquent's polymorphic relationships in a human-friendly way - come learn what they're all about and master this awesome ORM!
![The Theory of Constraints in PHP](https://uploads.sitepoint.com/wp-content/uploads/2016/10/1477940607weak-link-cropped.jpg)
What is the theory of constraints, and can be it be applied to PHP application development? The answer to the latter is oh yes, and for the former, dive in!
![Poka Yoke – Saving Projects with Hyper-Defensive Programming](https://uploads.sitepoint.com/wp-content/uploads/2017/06/1498380891T2eC16JHJGMFFpfid7BSe2vGu-Tw_32.jpg)
Bert introduces us to the concept of poka yoke - hyper defensive programming by forcing some checks and safeguards that make our code robust and sturdy.
![What Is Snapshot Testing, and Is It Viable in PHP?](https://uploads.sitepoint.com/wp-content/uploads/2017/06/1497636831167_MjRfUGhvdG9fRnJhbWU-Converted.png)
Chris explains what snapshot testing is on some ReactJS code, before applying it to PHP and giving you something to think about when you close this tab!
![The Balance between Visual and Technical Debt in PHP](https://uploads.sitepoint.com/wp-content/uploads/2014/08/1406890363Fotolia_53196837_Subscription_Monthly_M-Small.jpg)
What's the difference between technical and visual debt in code? Which one is more important, more dangerous? Let's discuss their balance in this editorial.
![Re-introducing Composer, the Cornerstone of Modern PHP Apps](https://uploads.sitepoint.com/wp-content/uploads/2016/08/1472279623logo-composer-transparent-badass.png)
Claudio re-introduces a tool that most revolutionized the way we develop PHP apps: Composer, PHP's dependency manager. Still unfamiliar with it? Dive in!
![Upgrading Sylius the TDD Way: Exploring Behat](https://uploads.sitepoint.com/wp-content/uploads/2016/05/1464163522make-more-money-with-less-visitors-800x470.png)
We focus on Behat now to further extend Sylius in true TDD fashion. We write stories, we test against them, and then we develop features to make them pass!
![Upgrading Sylius the TDD Way: Exploring PhpSpec](https://uploads.sitepoint.com/wp-content/uploads/2015/09/1442250303looking-money-sketch-color-1-Converted.jpg)
Deji extends the core of Sylius by adding some back end features via true TDD: writing PhpSpec tests first, seeing that they fail, and then making them pass
![Functional Programming with Phunkie: Parser Combinators in PHP](https://uploads.sitepoint.com/wp-content/uploads/2017/04/149329431824623028.png)
Marcello Duarte of Inviqa shares some functional programming insight with us by teaching us how to build Parser combinations with Phunkie! Hardcore!
![Upgrading from Pthreads v2 to v3: What to Look out For](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1490043574parallel-threads.png)
Thomas shows us the difference between Pthreads 2 and 3 and explains the upgrade procedure - the changes are big and backwards-incompatible, but worth it.
Bert discusses an interesting approach to creating arrays and collections that automatically enforce certain types - both scalar and fully custom
![My Laravel Package Building Workflow](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1489779944143_R2lmdF8xX3RzX3MxX2ljb25fYjMxXzVk-Converted.png)
Francesco tells us about his workflow for building Laravel packages - from PSR-4 baby steps to Facades, Francesco justifies and explains the steps he takes.
![Covering Laracon: Are Online Conferences Introvert Heaven?](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1488907308Screenshot-2017-03-07-17.58.50.png)
Laracon: the official Laravel conference, is online in this edition. Let's talk about online vs offline conferences, and how they help / hinder networking!
![Sylius and Cutting Your Teeth on TDD](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487885197Screenshot-2017-02-23-22.26.29.png)
We look at Sylius - a fully tested and super-robuts e-commerce platform/framework, and use it to learn some proper Test Driven Development!
![Sourcehunt: Idea of the Month and 6 Interesting Repos!](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487696168Final-01.png)
Sourcehunt Feb, apart from promoting really interesting open source repos, now also features an app idea of the month, worth a fortune. Check it out!
![Testing Frenzy – Can We BDD Test the Units?](https://uploads.sitepoint.com/wp-content/uploads/2017/01/1485786716Screenshot-2017-01-30-15.31.48.png)
Let's take a look at Peridot - a testing suite with a different approach. Can we BDD test our units? Should we?
In this "next level Laravel" post, Younes explains an interesting approach to designing relationships with Eloquent: polymorphic relations.
![Let’s Kill the Password! Magic Login Links to the Rescue!](https://uploads.sitepoint.com/wp-content/uploads/2016/03/1458141432lock.jpg)
Chris adds a password-less login procedure on top of the typical username/password login in Laravel - let's kill the password!
![Event Sourcing in a Pinch](https://uploads.sitepoint.com/wp-content/uploads/2016/11/1480349168Pfeil2710a.png)
Chris explains what event sourcing is, how to use it, when to apply it, and why. Check out this advanced DDD pattern in an easy to learn format!
![Quick Tip: The Convenient Magic of Eloquent Observers](https://uploads.sitepoint.com/wp-content/uploads/2015/02/1423519219laravel-l-slant.png)
Younes presents Eloquent Observers - a method of subscribing to changed on models and having those models notify all subscribers of changes. Check it out!
![2FA in Laravel with Google Authenticator – Get Secure!](https://uploads.sitepoint.com/wp-content/uploads/2015/10/1445353484secure.jpg)
Christopher Thomas shows us the full process of implementing 2FA - two factor authentication - in Laravel, using Google Authenticator!
![A Crash Course of Changes to Exception Handling in PHP 7](https://uploads.sitepoint.com/wp-content/uploads/2016/10/1477909265trap.png)
Ahmed Khan gives us a brief overview of the new exception and error classes in PHP 7, and how they can impact your future, current, and past code!
![Testing PHP Code with Atoum – an Alternative to PHPUnit](https://uploads.sitepoint.com/wp-content/uploads/2016/10/1476975754logo-die-cut.png)
Matthew Setter takes an introductory look at atoum - an alternative to PHPUnit with an interesting twist
![A First Look at Atlas – the ORM That Delivers](https://uploads.sitepoint.com/wp-content/uploads/2016/10/1476710131atlas-carry-globe-kneeling-ISO.png)
Claudio takes a look at Atlas - a new type of ORM that doesn't oversell. If you're dying for a breath of fresh ORM air, check it out!