Patterns & Practices
Need to authenticate requests to a server? Learn what JWTs are and how to use them instead of sessions to authenticate your users via API calls.
Need to collect data through a web form? Learn the basics of how to set up PHP to collect user-submitted data that you can then store or send via email.
Learn about Insphpect, a tool that scans your PHP code for object-oriented programming techniques that hinder code reusability and flexibility.
We show how to use PHPMailer - a dead simple email sending library for PHP. Send email from your local machine or an SMTP relay easily!
Rhiana Heath looks at Bootstrap accessibility issues with Bootstrap 4, showing how developers can test for problems and what can be done to fix them.
Cloud deployment SaaS compared: Runcloud vs ServerPilot vs Laravel Forge - who's cheapest? Who's simplest? Who's got the features?
Kirk presents a way to get going quickly with Zend Expressive, setting up an enterprise-ready application bootstrap in under 10 minutes. Awesome!
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!
Heard of bitwise operators? Let's explore their practical application in storing and checking for user permissions, and whether this makes sense!
Sharoze asks some prominent community members about their development workflow - some answers are predictable, others will surprise. What can you relate to?
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!
Chris writes test watchers: auto-compiling PHP from Preprocess files, and auto-testing after every file-change. No need to manually run PHPUnit ever again!
Christopher presents Eloquent's polymorphic relationships in a human-friendly way - come learn what they're all about and master this awesome ORM!
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!
Take a look at this list of 8 PHP Quality Assurance tools - absolute essentials in your passion projects
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.
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!
In this sourcehunt, we present PHP machine learning, a CRM that helps you track personal relationships, a wrapper to make Guzzle usable again, and more!
Marcello Duarte explains how we can use functional programming to build a JSON parser from scratch in PHP! Join us in exploring advanced PHP!
Scott explains how we can have a secure, encrypted, and hack-proof database, but still use normal SELECT and search queries on it. Interesting stuff!
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.
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!
Younes explores PDS-Skeleton, a new idea in the PHP world aiming to standardize file and folder layouts of packages and apps. No more "where's that class?"!
In this in-depth tutorial, we'll look at all the various cloud hosting providers for PHP, and deploy the same app on ALL of them. It's really not hard!
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!
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
Marcello Duarte of Inviqa shares some functional programming insight with us by teaching us how to build Parser combinations with Phunkie! Hardcore!
After we published Francesco's Laravel Package development workflow a month ago, Younes chimes in with his own Laravel Package development approach!
Younes sets up a CI pipeline on SemaphoreCI and makes sure it invokes Deployer or Laravel Envoy to deploy the app after a successful commit / test.
Bert discusses an interesting approach to creating arrays and collections that automatically enforce certain types - both scalar and fully custom