Skip to content
CAI
Software that uses CAICheck a score

symfony/polyfill-ctype

42.1

Weak · 19 September 2026

292

lines of production code

PHP

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is a PHP polyfill library designed to provide the ctype extension functionality for environments where it is missing or incompatible. It ensures backward compatibility by offering dedicated bootstrap files for different PHP versions and robustly handling mixed input types. The project manages its dependencies and metadata through Composer, explicitly declaring its provision of the ext-ctype extension.

Behavioural changes

Ctype polyfill updated for PHP 8+ compatibility and expanded coverage

The Ctype polyfill now provides a dedicated bootstrap for PHP 8.0 and later (bootstrap80.php) to ensure correct behavior on newer versions, while the legacy bootstrap (bootstrap.php) has been updated to check for individual function existence rather than the extension being loaded, ensuring all ctype functions are polyfilled even if the extension is partially available. The underlying Ctype implementation class has been refined to handle mixed input types more robustly by explicitly checking for strings and non-empty values before regex matching, and documentation links have been updated to the canonical php.net domain.

(repo-wide) · high confidence

Dependencies

Update composer.json metadata and PHP requirements

The composer.json manifest has been updated to require PHP 7.2 or higher (previously 5.3.3), added a 'provide' declaration for the ext-ctype extension, and included a 'suggest' for ext-ctype for best performance. The author list was updated to include Gert de Pagter and the Symfony Community, and the 'extra' section now includes 'thanks' metadata pointing to the main polyfill repository.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 42.

Lenses

  • Code Health 100
  • Architecture 69
  • Maturity 45
  • Readiness 17
  • Security 100

Changes since last survey

  • 41 commits — 37 feature/other, 4 fixes

By area

  • (root) — 41 commits

Notable commits

  • fix: CS fixes
  • fix: Fix CS issues
  • fix: Fix the name of arguments for PHP 8
  • fix: Revert "minor #477 Auto-close PRs on subtree-splits (kbond)"
  • change: Add a forgotten word in the readme
  • change: Add missing "extra.thanks" entries in composer.json
  • change: Add polyfill-php81
  • change: Add separate checks for all polyfilled functions and constants
  • change: Add the cytpe polyfill
  • change: Added missing polyfill for JsonException
  • change: Apply PR feedback
  • change: Apply more PR feedback
  • change: Auto-close PRs on subtree-splits
  • change: Bump branch-alias
  • change: Bump for 1.17.0
  • change: Bump for 1.28
  • change: Bump minimum PHP version to 7.1
  • change: Bump to PHP 7.2, stick to phpunit 8.5
  • change: Bumped branch alias
  • change: Drop polyfills for PHP <= 7.1 from the metapackage
  • …and 21 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

symfony/polyfill-ctype was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 141046a8f9477948ff284fa65be2095baafb94f2 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.