chillerlan / php-prototype-dom
Prototype.js like DOM traversal and manipulation. PHP 7.4+
                                    Fund package maintenance!
                                                                            
                                                                                                                                        Ko Fi
                                                                                    
                                                                            
                                                                                                                                        www.paypal.com/donate?hosted_button_id=WLYUNAT9ZTJZ4
                                                                                    
                                                                
Installs: 185
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/chillerlan/php-prototype-dom
Requires
- php: ^7.4 || ^8.0
- ext-dom: *
- ext-libxml: *
- symfony/css-selector: ^5.2
Requires (Dev)
- phpunit/phpunit: ^9.5
README
prototype.js like DOM traversal and manipulation for PHP 7.4+.
Documentation
An API documentation created with phpDocumentor can be found at https://chillerlan.github.io/php-prototype-dom/ (WIP).
- for the extended DOMNode(prototypejs) methods see:Element.Methods
- for the extended DOMNodeListmethods seeEnumerable
- for the CSS selector capabilities of the several selction methods see the Symfony CssSelector Componentdocumentation
Requirements
Installation
requires composer
composer.json (note: replace dev-main with a version boundary)
{
	"require": {
		"php": "^7.4 || ^8.0",
		"chillerlan/php-prototype-dom": "dev-main"
	}
}
Profit!
Quickstart
use chillerlan\PrototypeDOM\Document; use chillerlan\PrototypeDOM\Node\PrototypeHTMLElement; $document = new Document(file_get_contents('https://www.php.net/supported-versions.php')); $supportedVersions = $document->querySelectorAll('tr.stable > td:first-of-type > a') ->map(fn(PrototypeHTMLElement $a):string => $a->value()); var_dump($supportedVersions); // -> ['7.4', '8.0']