BusiRocket

Technology

PHP

PHP carries a reputation that stopped matching the language years ago. Today's PHP has declared types on parameters, properties and return values, enumerations, and a static analysis ecosystem that finds bugs before a single line runs. What has not changed is something else: the distance between PHP written with discipline and PHP written in a hurry is still enormous, and most of the PHP that causes trouble belongs to the second group.

Our way of proving which group we work in is to show the code. ZoneMirror, our cPanel and WHM plugin for replicating DNS zones to Cloudflare, is published under the MIT license: static analysis at PHPStan level 8, the strictest level on the usual scale, and 690 test methods running green against PHP 8.2, 8.3 and 8.4 in continuous integration. That is not repository decoration: it is what makes it possible to upgrade the PHP version the day it is due, instead of postponing it for years out of fear of what might break.

The other half of PHP work is not in the code, it is on the server. PHP lives inside a concrete configuration — version, extensions, memory limits, and on shared hosting layers like CloudLinux and CageFS — and a real share of production problems is born there rather than in the application. We cover that part too, and it is documented in public: the diagnostic cases we have solved on cPanel servers are written up on the blog, with the symptom, the cause and the complete fix.

With legacy applications the criterion is the same and the order matters: first pin the version and the dependencies, then static analysis with a baseline of what exists, then tests around each area before changing it. Rewriting is sometimes the right answer, but it is almost never the first one, and taken without measuring it is the most expensive way to rediscover what the old system already knew. If your PHP application works but nobody dares touch it, that is exactly the starting point we know how to work with.

The specifics

  • ZoneMirror, a cPanel and WHM plugin written in PHP: PHPStan level 8, 690 test methods in green and the full PHP 8.2, 8.3 and 8.4 matrix in continuous integration.

  • Open source under the MIT license: our PHP work can be read and audited, not just taken on faith.

  • Diagnosis and resolution of PHP errors on cPanel servers with CloudLinux and CageFS, with the cases documented publicly on the blog.

Projects built this way

GKE

Continuous delivery on Kubernetes and GKE

The layer nobody sees: Helm charts, a GKE Gateway API migration and per-environment deployment workflows, so a product team can ship without becoming cluster experts.

Clients under NDA

  • kubernetes
  • gcp

How we work

Four steps, no surprises

The same process on a three-week engagement and on a two-year platform.

  1. 01

    Scope

    One session to understand the business process, not to show templates. We leave with priorities and a phased price.

  2. 02

    Architecture

    Data model, integrations and a performance budget before the first screen is written.

  3. 03

    Build

    Weekly releases to an environment you can visit. What gets approved gets deployed, it does not pile up.

  4. 04

    Operation

    Monitoring, verified backups and deployments anyone on the team can run.

Frequently asked questions

Isn't PHP obsolete?

The language is not; some ways of writing it are. Today's PHP has declared types, a reasonable error model and static analysis tooling on par with any serious ecosystem. The difference between a maintainable PHP application and one nobody dares touch is not the language: it is whether there are types, tests and static analysis, or whether all of that was replaced by habit and luck.

Can you take over a legacy PHP application?

Yes, and the first step is never a rewrite. It is pinning the PHP version and its extensions, putting static analysis in place as a net with a baseline of what already exists, and writing tests around what is about to change before changing it. From there every change leaves the system a little better measured than before, and the rewrite decision, if it ever comes, is made with data rather than exhaustion.

Which PHP version should I be on?

One with active security support, today the 8.2 branch or later, with the upgrade tested in a separate environment before production. Staying on an unsupported version does not freeze the risk: it accumulates it, because every year without upgrading makes the jump bigger and more expensive. Our platform code is tested against 8.2, 8.3 and 8.4 at once precisely so the version is never the emergency.

Does this include WordPress?

WordPress is PHP, but it is a different conversation: there the important decision is when the CMS fits and when it stops fitting, and it has its own page. This page is about PHP as a platform language: applications, server plugins and custom code where the decisions are engineering decisions, not plugin-ecosystem decisions.

Next step

Tell us what the system has to do

We reply within one business day with a phased scope proposal, or with the reason we are not the right studio for it.