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

voku / simple_html_dom / 31980434841
97%

Build:
DEFAULT BRANCH: master
Ran 16 Aug 2026 11:54PM UTC
Jobs 7
Files 25
Run time 1min
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

16 Aug 2026 11:54PM UTC coverage: 96.796% (+0.03%) from 96.766%
31980434841

push

github

web-flow
Add agent-loop workflow tooling and explicit PHP 8.4 Html5DomParser (#150)

* Add agent-loop workflow tooling and opt-in PHP 8.4 HTML5 parsing

WHY

Two things at once, on purpose: the governed workflow is the tooling, and the
first task run through it is the PHP 8.4 HTML5 parser. A previous attempt at
the parser (PR #146) bridged "\Dom\HTMLDocument" back into "\DOMDocument"
node by node, lost more performance than it gained, and was reverted.

Tooling

voku/agent-loop needs PHP >= 8.3 while this library still supports PHP >= 7.1,
so it is installed as the isolated Composer tool project tools/agent-loop and
reached through the bin/agent-loop wrapper. The generated client projections
(.claude, .codex, .agents, .github/skills, .github/agents) stay out of Git; the
Claude and Codex hook bundles are host-owned copies under docs/agents, because
the package-owned hooks resolve only the root vendor/autoload.php and otherwise
claim this repository's src/ as the package source root.

Board and workflow state live under .agent-loop: SHD-1 is this change, planned,
approved, validated, reviewed and closed through the workflow; SHD-2 .. SHD-8
are the follow-ups it produced, five of them backed by validated findings about
the workflow itself.

Parser

"HtmlDomParser::useHtml5Parser()" parses with the PHP >= 8.4 HTML5 parser and
bridges the result into the "\DOMDocument" this library hands out. There is no
zero-copy handoff - PHP refuses to pass a node of the new DOM implementation to
the old one - so the bridge serializes to XML and re-parses. "Dom\HTML_NO_DEFAULT_NS"
keeps the tree out of the XHTML namespace, and an "xmlns" attribute from the
input is parked under a placeholder for the transport, so the generated XPath
of this library keeps matching.

The default path is unchanged and costs one boolean check. The HTML5 path falls
back to it - without an error - on PHP < 8.4, with useKeepBrokenHtml(), and for
input the XML transport cannot carry.

Validation

  php ... (continued)

83 of 85 new or added lines in 2 files covered. (97.65%)

2266 of 2341 relevant lines covered (96.8%)

308.16 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
97.44
src/voku/helper/Html5DomParser.php
Jobs
ID Job ID Ran Files Coverage
1 php-8.3-basic - 31980434841.1 16 Aug 2026 11:55PM UTC 25
90.49
GitHub Action Run
2 php-7.4-basic - 31980434841.2 16 Aug 2026 11:54PM UTC 25
92.78
GitHub Action Run
3 php-8-basic - 31980434841.3 16 Aug 2026 11:55PM UTC 25
90.56
GitHub Action Run
4 php-8.1-basic - 31980434841.4 16 Aug 2026 11:55PM UTC 25
90.54
GitHub Action Run
5 php-7.3-basic - 31980434841.5 16 Aug 2026 11:55PM UTC 25
92.78
GitHub Action Run
6 php-8.4-basic - 31980434841.6 16 Aug 2026 11:55PM UTC 25
93.28
GitHub Action Run
7 php-8.2-basic - 31980434841.7 16 Aug 2026 11:55PM UTC 25
90.49
GitHub Action Run
Source Files on build 31980434841
  • Tree
  • List 25
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 9872a316 on github
  • Prev Build on master (#31662366123)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc