Debugging & Deployment
![Setting Up a Modern PHP Development Environment with Docker](https://uploads.sitepoint.com/wp-content/uploads/2021/02/1612308286php-docker.png)
There are so many ways to set up your PHP development environment, but using Docker is the current best practice. Let's walk through how to do it properly.
![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.
![Git and WordPress: How to Auto-Update Posts with Pull Requests](https://uploads.sitepoint.com/wp-content/uploads/2017/05/1495148199wordpress-mod.jpg)
How compatible are git and wordpress? Let's see how easy it is to make WordPress posts auto-update based on PR submissions on the Github repository!
![Let’s Compare: RunCloud vs Forge vs ServerPilot](https://uploads.sitepoint.com/wp-content/uploads/2017/09/1506258230laravel-forge.png)
Cloud deployment SaaS compared: Runcloud vs ServerPilot vs Laravel Forge - who's cheapest? Who's simplest? Who's got the features?
![PHPBot – Can a PHP Bot Help You Look up Documentation Faster?](https://uploads.sitepoint.com/wp-content/uploads/2016/09/1473324296robots_and_you_guide_to_robots_txt-1473149095763.jpg)
Let's take a look at a new PHP experiment: PHPBot. An interactive PHP manual bot which returns code examples from the manual for easy copy-pasting!
![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!
![How to Write JavaScript-Style Test Watchers in PHP](https://uploads.sitepoint.com/wp-content/uploads/2016/08/1470873883Fotolia_116506185_Subscription_Monthly_M.jpg)
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!
![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!
![Family CRMs, Guzzle Wrappers and PHP Machine Learning? Sourcehunt!](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487696168Final-01.png)
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!
![Web App Performance Testing with Siege: Plan, Test, Learn](https://uploads.sitepoint.com/wp-content/uploads/2017/05/1495571919Fotolia_119566077_Subscription_Monthly_M.jpg)
Zoran uses Siege to benchmark and load-test a Symfony app, killing it in the process. He then uses cache to revive it and make it work under pressure!
![Can You Build a CLI Image Drawing Laravel App with These Packages?](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487696168Final-01.png)
This time, we look at a package that lets us interactively add code to Laravel from the command line, an image drawing package, and much more.
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!
![What? Why Would Someone Hack My Small Business Website?](https://uploads.sitepoint.com/wp-content/uploads/2017/05/1493829089Fotolia_129827530_Subscription_Monthly_M.jpg)
Oliver talks about the most common simple hacks applied to small business websites, how a hack works, why, and whom they actually benefit. Stay safe!
![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
![Make Your Own Social Network, Game Server, or Knowledgebase! – Sourcehunt](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487696168Final-01.png)
This sourcehunt, we've gained the magical ability to make our own game servers, knowledgebases, and social networks. Join us in contributing!
![Getting to Know and Love Xdebug](https://uploads.sitepoint.com/wp-content/uploads/2017/04/1492509685402_RGlmZmVyZW50MTYtb3JhbmdlLTIz-Converted.png)
Let's take a fresh look at Xdebug, the de-facto PHP debugger, which turned an epic 15 years old this month. A quick look at some tricks, tips, and features!
![How to Synchronize WordPress Live and Development Databases](https://uploads.sitepoint.com/wp-content/uploads/2014/11/1415473542Fotolia_42677898_Subscription_Monthly_M-Small.jpg)
Developing WordPress themes and plugins on a local server can be problematic if it doesn't match your live system. Craig discusses synchronization options.
![How Can I Use Laravel Envoy or Deployer with SemaphoreCI?](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1490525980Untitled-1.png)
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.
![Sourcehunt – Build a Medium Exporter + Cool New Libs!](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487696168Final-01.png)
This sourcehunt, we've found a lot of Laravel and/or JSON focused packages. It's an interesting combo which led us to our newest "app idea of the month"!
![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.
![Crash Course: Continuous Deployment with Semaphore CI](https://uploads.sitepoint.com/wp-content/uploads/2017/03/1489161809gear-color.png)
Viraj takes us through the basic process of setting up Continuous Deployment to a DigitalOcean server by means of Semaphore CI. Exciting!
![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!
![Laravel Dusk – Intuitive and Easy Browser Testing for All!](https://uploads.sitepoint.com/wp-content/uploads/2017/02/1487161273Screenshot-2017-02-15-12.57.35.png)
Viraj demonstrates Laravel Dusk - a browser testing tool designed for testing your apps in full - including UI and JavaScript!
![Quick Tip: LetsEncrypt “server” error fix on Ubuntu 16.04](https://uploads.sitepoint.com/wp-content/uploads/2016/11/1478209441Fotolia_112827874_Subscription_Monthly_M.jpg)
Running into the cryptic "server" error when renewing your server's HTTPS certificates with LetsEncrypt? Here's how to solve it.
![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?
![Re-Introducing Jenkins: Automated Testing with Pipelines](https://uploads.sitepoint.com/wp-content/uploads/2014/12/1417764557jenkins.jpeg)
Alex Bilbie looks at Jenkins' newest feature: pipelines. With it, we configure Laravel's auto-testing procedure, and make sure our builds stay alive!