proomt

Search

Search posts, papers, and topics

All posts

Hacker News front page4 min readintermediate

My temporary PHP fix from 2014 has nearly 20M installs. Today I'm deprecating it

Summary

A 174‑line PHP shim for `http_build_url()` was published in 2014, ended up with ~20 M installs, and is now deprecated in favor of the PHP‑League URI library and the native URI API in PHP 8.5.

  • A short, temporary polyfill can become a de‑facto dependency for millions of projects if published to a package registry.
  • Even tiny shims can harbor subtle bugs (e.g., the trailing‑slash ‘a’ removal bug) that go unnoticed for years.
  • Deprecating a widely‑used package should include a clear migration path to a better, maintained alternative.
  • Relying on community‑maintained libraries or upcoming language features reduces long‑term maintenance risk.

The story illustrates how open‑source package ecosystems can amplify a one‑off fix into critical infrastructure, highlighting the maintenance and security responsibilities that come with wide adoption.

6/10

Related reading

  1. What's new in PHP 8.6

    This post previews PHP 8.6 features, highlighting partial function application, a new polling API, and readonly property defaults. It also mentions other improvements and deprecations expected in the upcoming release.

    Freek Van der Hertenfreek.dev1 min
  2. Laravel Scalpel Scans for Filesystem Intrusion Evidence

    Laravel Scalpel is a Laravel‑native scanner that looks for post‑deployment filesystem tampering – rogue PHP files, obfuscated backdoors, altered .htaccess/.user.ini, missing or mis‑configured .env, and diffs against a signed baseline. It ships with six built‑in scanners, baseline snapshot commands, fast vs strict hashing modes, CI‑friendly output (JSON, SARIF, GitHub annotations) and a ScanFinish…

    Laravellaravel-news.com5 min
  3. I expected better from Google

    The authors of the open‑source project mobile‑use discovered that Google’s Artemis repository contains large blocks of identical Python code, examples, and even the same agent name without any attribution. They document the exact file diffs, the removal of their names via a force‑push, and the omission of their benchmark results from a public leaderboard. The post argues that this violates Apache…

    Lobstersminitap.ai6 minHN18032lobste.rs87