• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ptondereau / ext-php-rs
66%
master: 66%

Build:
Build:
LAST BUILD BRANCH: fix/string-prop-getter-zend-string-leak
DEFAULT BRANCH: master
Repo Added 01 Apr 2026 02:57PM UTC
Token Y7FoKFtsn51OXQH6dAAozlw5G2JFddXKH regen
Build 18 Last
Files 96
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH feat/module-globals
branch: feat/module-globals
CHANGE BRANCH
x
Reset
Sync Branches
  • feat/module-globals
  • feat/cache-slot-property-lookup
  • feat/sapi-trait-and-zts
  • feat/static-property-descriptors
  • fix/729-binary-interned-heap-corruption
  • fix/clippy-1-95-0
  • fix/null-pointer-sapi-trampolines
  • fix/string-prop-getter-zend-string-leak

03 Apr 2026 12:22PM UTC coverage: 65.848%. Remained the same
23946026804

push

github

ptondereau
feat(zend): add ModuleGlobals for per-extension global state

Add `ModuleGlobal` trait and `ModuleGlobals<T>` struct that integrate
with PHP's TSRM to provide per-extension module globals. In ZTS builds,
PHP allocates per-thread storage via `ts_allocate_id`; in NTS builds,
the globals live inline in a user-declared static.

API surface:
- `ModuleGlobal` trait: `Default + 'static` with optional `ginit`/`gshutdown`
- `ModuleGlobals<T>::new()`: const constructor for static declaration
- `ModuleGlobals<T>::get()`: safe shared access (PHP single-threaded request model)
- `ModuleGlobals<T>::get_mut()`: unsafe mutable access
- `ModuleGlobals<T>::as_ptr()`: raw pointer escape hatch
- `ModuleBuilder::globals()`: registration via existing builder pattern

C layer: `ext_php_rs_tsrmg_bulk()` wraps `TSRMG_BULK` macro for ZTS access,
matching the existing pattern for executor/compiler/process globals.

138 of 142 new or added lines in 2 files covered. (97.18%)

73 existing lines in 2 files now uncovered.

8370 of 12711 relevant lines covered (65.85%)

33.34 hits per line

Relevant lines Covered
Build:
Build:
12711 RELEVANT LINES 8370 COVERED LINES
33.34 HITS PER LINE
Source Files on feat/module-globals
  • Tree
  • List 96
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
23946026804 feat/module-globals feat(zend): add ModuleGlobals for per-extension global state Add `ModuleGlobal` trait and `ModuleGlobals<T>` struct that integrate with PHP's TSRM to provide per-extension module globals. In ZTS builds, PHP allocates per-thread storage via `ts_al... push 03 Apr 2026 12:27PM UTC ptondereau github
65.85
23946004162 feat/module-globals fix(guide): use rust,ignore for module_globals skeptic tests Skeptic compiles guide examples as standalone files without access to the ext_php_rs crate. Use rust,ignore instead of rust,no_run to match the convention used by other guide pages (e.g... push 03 Apr 2026 12:26PM UTC ptondereau github
65.85
See All Builds (18)

Badge your Repo: ext-php-rs

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc