Subscribe For a 50% Discount This Black Friday
Learn To Write Clean PHP Code THAT ALWAYS WORKS!
Build AN ENTIRE PHP APPLICATION from scratch using Test Driven Development ☄️
In this course, we're going to take our dev skills to the next level by creating an API from scratch...but with a slight twist....we are going to use Test Driven Development with the PestPHP testing framework to figure out all functionality.
This is THE BEST WAY to learn how to build something which you have 100% confidence in and you'll also discover that TDD is not complicated...in fact, once mastered, it will make your life easier and your code a lot more reliable!
TDD is a modern development skill which will improve you as a developer and make you an asset to any team.
You'll gain a deep understanding of how to build an API in addition to knowing how to create and use the tools which are used to test an API using only PHP. We'll also look at how to structure our code in a way similar to frameworks like Symfony and Laravel.
This is a great way to learn A LOAD OF NEW SKILLS because you'll be building and testing something REAL. All developers tells me that this kind of practical approach is how they prefer to learn.
Why Should You Enroll In This Course?
💰 These skills are guaranteed to advance your career
🎼 You will learn the testing techniques which are used in Laravel and Symfony
🆕 PEST is current and relevant to the market
🧠 Building something real is how you learn to build something real!
🌴 Flexible. You can work at your own pace. Take as long as it takes.
🔍 No other courses teach this subject in the same way
📈 Promotion. To become a senior PHP developer you will need to understand testing frameworks
💼 Career mobility. These skills can be applied to a wide range of programming languages
By the end of the course you will have experience and complete understanding of all these concepts:
Building PHP API's - Expectations
Hooks - Datasets - Filtering Tests
Grouping Tests - Mocking - Custom Test Helpers
Custom Expectations - Refactoring With Confidence - Data Testing
PHP Framework Structure - Routing Techniques - Integration Testing
Feature Testing - Unit Testing - Testing API Endpoints
All PEST Features - HTTP Request / Response - Routing Techniques
Data Mapper and Repository Patterns - Faking Data
PHP Data Objects (PDO) - Understanding Duplication
The Pragmatic Challenges of TDD - Json Web Tokens - API Security
PLUS MUCH MORE!!
BUY THIS COURSE NOW
$69 + VAT added on checkout page
✅ Exclusive Content
✅ Subtitles in your language
✅ Over 90 video tutorials for $69
✅ Hours of quality content - no filler
✅ All code examples included
✅ Industry standard practices
✅ Lifetime ownership
📜 Certificate of achievement
🤝 30 day money back guarantee
HOW DOES THAT SOUND SO FAR?..
..HERE'S WHAT'S COVERED IN THIS COURSE
Take a minute to think about how many much-sought-after skills you will gain by building an API from scratch using Test Driven Development combined with Pest PHP. This is not simply a PHP testing course, this is a course which is going to take your PHP skills to a whole new level.
I enrolled in a similar course a few years ago and it changed my career and my whole programming outlook. Everything became easier...and BETTER PAID!
I'm talking about things like gaining a complete understanding of application structure and EVERYTHING which happens between Request and Response. Knowing all of the components so well that you know when to use feature tests and when to use unit tests, where to mock objects and exactly how to do it.
I'll also cover something which I have not seen anyone else cover in this kind of course. Pragmatism.I'll address the challenges of TDD and show you how to avoid the ways in which it can be misused or even over-used.
Below is a list of the content that I cover. These cover how to build an API from scratch PLUS all of the Pest features that you need to know.
Feature Tests
- Installing Pest
- Create an API Test
- Custom Test Helpers
- Custom Test Expectations
- Returning a Real Response
Unit Tests
- Response Test
- Response Class
- Application Sequence
- Request Class
- Request Test
- Request Query Params
- Request Path
- Request Method
- Kernel Class
Routing
- The Multiple Routes Problem
- Refactor For Routing
- Router Test
- Router Dispatch
- Route Handling Outcomes
- Setting Routes
Dependency Injection
- Service Container
- Binding a Service
- Controller Classes
- Invoking Handlers
- Route Parameters
- Resolving Route Handlers
- Mocking Dependencies
- Testing Routing Errors
- Using Datasets
- Route Handler Resolver Test
- Resolving a Controller Test
Entities and Repositories
- Data Considerations
- Repositories
- Grouping Tests
- Book Repository
- Entities
- The Dirty Filter
- Book Class
- Nesting Objects
- Serializing Objects
- Duplication vs Coincidence
Querying Data
- Faking Database Rows
- Sqlite
- PHP Data Objects (PDO)
- Retrying Test Using --retry
- Connection Objects
- Connection Test
- Connection Class
Migrations
- Environment Variables
- Migration Files
- Migrating a Test Database
- Console Commands
- Migration Dependencies
- Database Transactions
Persisting Data
- Data Mappers
- AuthorMapper Test
- AuthorMapper
- Database Test Assertions
- Querying Any Table
- BookMapper and Test
Refactoring FTW
- Fixing Feature Tests
- Refactoring Out Duplication
- Matching Project Structure
- Updating Pest
- Architecture Testing
- Testing For Strict Types
Real Usage
- Fixing Feature Tests
- Refactoring Out Duplication
- Matching Project Structure
- Updating Pest
- Architecture Testing
- Testing For Strict Types
JsonResponse Objects
- What is a JsonResponse?
- Specific Return Types
- JsonResponse Test
- JsonResponse Class
- Final Client E2E Test
Jwt Auth Middleware
- PSR 15 Middleware
- Request Handler Test
- Request Handler Class
- Refactoring For Middleware
- Introduction to Json Web Tokens (JWT)
- JWT Structure
- PHP + JWT
- Encoding the JWT
- JWT Auth Middleware Test
- JWT Authenticate Middleware
- Testing Valid Tokens
- JWT + PHP Security Considerations
BUY THIS COURSE NOW
$69 + VAT added on checkout page
✅ Exclusive Content
✅ Subtitles in your language
✅ Over 90 video tutorials for $69
✅ Hours of quality content - no filler
✅ All code examples included
✅ Industry standard practices
✅ Lifetime ownership
📜 Certificate of achievement
🤝 30 day money back guarantee
Check out some example videos from the course 🚀
All videos come with subtitles in your language
Creating Custom Test Helpers
We're doing everything from scratch in this course so let's create a test helper which will enable us to make 'requests' to our API.
Creating Custom Test Expectations
In Pest we use expectations to test that our code is behaving as expected...and it's really easy to create your own. Here I'll create one which matches json strings against expected json strings. Nice 😎
Testing Request Objects
We're going to create our own Request class so let's test that the query params can be retrieved off of it. This will show you how some things work which we take for granted.
Risky Tests and Test Todo's
I sometimes like to write out the tests I'll need for a particular class. In Pest I just need to chain a todo() function on an empty test and they'll now be marked as 'todo' instead of 'risky'.
Faking Database Rows
Let me show you how you can fake a database row to keep your tests passing until you have created your tables. This way we are focused more on our public API and the database isn't calling the shots.
Database Test Assertions
Let's create our assertDatabaseHas method which will be able to assert that a table contains a particular record based on a set criteria.
Some frameworks have already created methods like this for you but where's the fun in that? No microwavable pizzas in this kitchen...everything's made from fresh!
BUY THIS COURSE NOW
$69 + VAT added on checkout page
✅ Exclusive Content
✅ Subtitles in your language
✅ Over 90 video tutorials for $69
✅ Hours of quality content - no filler
✅ All code examples included
✅ Industry standard practices
✅ Lifetime ownership
📜 Certificate of achievement
🤝 30 day money back guarantee
A Brief History Of This Course
This course was originally meant to be a simple 2 hour addition to my popular Testing PHP course as many people had asked me to also cover PEST.
But I wanted to do something a little different so that it wouldn't just feel like any other PEST course and I also wanted it to be framework-agnostic as I believe that is how to really learn testing skills; frameworks offer a lot of helpers that hide the true difficulty of testing certain scenarios.
So I decided that I would build a simple API using a test-driven approach. It wasn't long before I discovered that this was going to longer and more in-depth than the 2 hour course I originally had in mind. IT'S ACTUALLY TURNED OUT TO BE MY MOST INFORMATIVE COURSE!
Check Out My Other Courses
Six Essential Skills Bundle
This bundle contains all the courses which meet the six essential skills all PHP Developers MUST have.
MySQL for PHP Developers
Dive into the world of databases with this course tailored for PHP developers. Enhance your skills in database management and PHP integration.
PHP Professional Toolkit Plus
All of the skills you need to advance your PHP developer career. 4 courses bundled into one with a massive saving 💲
Symfony Framework Pro
Unlock your PHP potential and develop your skills to the next level with PHP Framework Pro & Symfony 7 Microservice.
Complete Testing Bundle
Testing PHP and Test Driven PHP combined into one bundle. You'll look at testing completely differently after this
PHP Framework Pro
Essential learning for every PHP developer, this course fills a big gap in your PHP framework knowledge.
Symfony 7 Microservice
I can guarantee this is the best way to learn Symfony by building something CURRENT and REAL
PHP API Pro
Every PHP developer will eventually be required to build and maintain APIs, follow this course to learn the essentials of API Development.
PHP Pro Bundle
Are you aiming to master the intricacies of PHP frameworks or become the go-to expert on APIs? Then this bundle is designed to catapult your career forward.
PHP Professional Toolkit
Within this bundle you will receive three modern PHP courses to take your skills to a whole new level, it includes everything a good dev needs to know.
PHP Bundle
Two 5 Star PHP courses, a total of 30 hours of quality PHP content, that is relevant for today's PHP developer. You buy one get the other half price giving a massive saving 💲
Object Oriented PHP
Looking to master PHP Object-Oriented Programming? Then you're in the right place. This course will guide you through the core concepts and advanced techniques.
OOP and Framework Foundations
This bundle contains my two most popular courses: Learn Object Oriented PHP and PHP Framework Pro. Elevate your PHP skills to the next level.
Testing PHP
Learning to test isn't just a skill—it's a fundamental part of coding. When you understand testing, you understand how to write better, more robust code.
The Battle Ready Programmer
Take your PHP + Laravel skills to a new level with The Battle Ready Programmer bundle, featuring a book created by Ash Allen.
Battle Ready Laravel
The ultimate guide to auditing, testing, fixing and improving your Laravel applications, created by Ash Allen.
This is what people have had to say about my courses.
Very good thanks - Bichotte Aurelien
Excellent course and content!! I have been doing PHP for years, but unfortunately the wrong (procedural) way :-) - Johann
This is the first time I have used PEST and I think it has great value when used for TDD. This course is great for anyone that wants to create Test Driven Development - Mr J
Great content and excellent explanations. - Martin
I do not know of anyone else that can lecture on Frameworks and has the same depth of working knowledge. Thank you! Mark Corrigan
This is the course if you want a better understanding of TDD with useful examples and code along - Edin
It's really valuable because we go through all the steps of creating an API using TDD approach. There isn't much content of such quality available at such a reasonable price, so keep up the good work - German
The course answers exactly my needs. Jad
I really enjoy how the information is presented. I'm an experienced software engineer with knowledge related to PHP frameworks and the way information is presented is very valuable to me to recap the commonalities behind the specifics of PHP frameworks. Adrian Megreanu-Maior
I like this course and it was so worth waiting for. Alexis
Great work! Eric
Excellent course. Gives me the detail I am looking for. Mark Corrigan
I can understand the clear and perfect explanations - Luis Solis
This is perfect! - Unjoined
You have a great way of explaining OOP - Locoplata
This is one of the best courses I have ever done. You have a gift for teaching. Your training has given me very valuable context for all things I knew, corrected some stuff I did incorrectly, and has taught me innumerable new things. - Mark Thijssen
Making me enjoy coding again. - Drew Hinde
Gary has deep knowledge and he is following the best practices. I have no suspicions about learning non-useful nor obsolete techniques. It is essential to have work / code discipline and he has it and kind of routing you to have the same. - Burak
Gary has a patient delivery style, and I can understand him. I also appreciate that code for the video is provided, with each video, because I like to spend time testing and changing that code to get further into it. - Karl Zipser
Well explained step by step approach - Takunda Chibanda
The way of teaching is so good with real time examples. There is also engaging activities - Lokith S
Information delivered clearly and in a well-structured way - Sim
This course is fantastic! I'm really looking forward to watching the rest of the course. Thanks a million Gary! - Michael Gibbs
Well structured and taught - Suleyman Solak
Great tutorial! - Fh Ndiritu
It's much more pleasant to follow than most other courses I have tried. - Mick Amato
Thanks for this video, been watching it for the 2nd time and I can't even feel the time goes by - Lexer Quine
I won't lie, I've watched a lot of php oop course and this is the best!! Thank you king - Yasser Latrach
PHP is making sense and I can apply what I am learning at my job - Dee
Very engaging and easy to understand the concepts - Luciano
I'm very happy with the course and the instructor. - Paulo
Gary explains OOP with PHP very clearly and is easy to understand. I think it's simply great - thanks for creating it!! - Nicolas Alexander Rau
This course is a true gem! It's the first time I watched a 3h course and felt I really understood the concepts. Thank you so much Gary! Looking forward to the full course:) - Giulia Pizzignacco
I saw all the videos of oriented object programming and they were awesome! Great content - Arius
Great stuff for OOP in PHP for beginners and great reminders for other Devs. - TomTom Shaylash
Excellent course delivered by a knowledgeable and engaging content creator. Highly recommended - Drew Hinde
I have learnt so much new information which helps me to write efficient php (oop) code. I am very thankful to Gary for providing such quality content - Ridwanullah Raufi
I'm very pleased with the way Gary explains everything. - Rob Spruyt
I'm enjoying the clear English of Gary, well spoken and succinct explanation of his code. - James
Exactly what I needed for my level of coding, I can create crud applications in PHP, but OOP is completely new to me. - Tom
Sufficiently long sections to be able to take in the information, it makes it easier to understand. Very good explanations. - Mats Akebrand
I have had an extremely positive experience with this course, so Mr Clarke had definitely earned a perfect 5 stars from me! This course has helped me to understand how OOP works SO MUCH better than I previously did. I 100% understand all of his examples. - Jeffrey Carter
Excellent course, interesting and engaging - Clive
Thank you so much! Appreciate your hard work - Paul Toma
Great work. Waiting for next videos - Alwin Augustin
Beautiful work! - Mohammed B
Great work. Thank you Sir! - Yusuf Aliya
Great video! Thanks so much - Ck
Interesting tutorial, thanks for all! - Mdazhardware
Thanks, awesome work!- Hamad Adel
Great work!- Houssem Rahrah
Thanks for your time we appreciate it!- Mamadou Aly Sy
Great!- Sergey Vasko
Nice course- Kennedy Muthui
Gary Clarke - Who am I?
Hello and thank you so much for checking out my work. My name is Gary Clarke and I'm a software developer with many years experience, primarily in PHP. I started creating video tutorials during lockdown in 2020 because I wanted the challenge of being able to explain complex / technical subjects to others in a way which is easy to understand and remember.
At this moment in time, my videos have been watched nearly half a million times and I intend to keep creating new and improved content and teaching more and more new people. It would be my pleasure to see you on the inside of one of my courses.
Edin ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Jack ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Laurence ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Bernard Chisumo⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Jonathan Wood ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Edin ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Mr J ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
German⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Luis Solis⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Bichotte Aurelien⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Johann Muller ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Mr J ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency
Martin ⭐️⭐️⭐️⭐️⭐️
✅ Valuable information ✅ Helpful practice activities ✅ Clear instructions
✅ Accurate course description ✅ Engaging delivery style ✅ Knowledgeable instructor ✅ Improved competency