Download the PHP package drupol/htmltag without Composer
On this page you can find all versions of the php package drupol/htmltag. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download drupol/htmltag
More information about drupol/htmltag
Files in drupol/htmltag
Package htmltag
Short Description A fast and extensible helper library for generating HTML, create tags, their attributes and content.
License MIT
Informations about the package htmltag
HTMLTag
Description
This is a PHP library that handles the generation of HTML tags, their attributes and content.
The focus is on security, speed and usability.
Requirements
- PHP >= 7.1.3
Installation
Usage
Will print:
HTML Builder
The library comes with an HTML Builder class that allows you to quickly create HTML content.
This will produce:
Technical notes
Tag analysis
The library is built around 3 objects.
- The Tag object that handles the attributes, the tag name and the content,
- The Attributes object that handles the attributes,
- The Attribute object that handles an attribute which is composed of name and its value(s).
The Tag object uses the Attributes object which is, basically, the storage of Attribute objects. You may use each of these objects individually.
All methods are documented through interfaces and your IDE should be able to autocomplete when needed.
Most methods parameters are variadics and accept unlimited nested values or array of values. You can also chain most of the methods.
The allowed type of values can be almost anything. If it's an object, it must implements the __toString()
method.
Examples
Method chaining:
The following examples will all produce the same HTML.
Tag object
Attributes object
Attribute object
Dependency injection and extensions
Thanks to the factories provided in the library, it is possible to use different classes in place of the default ones.
Ex: You want to have a special handling for the "class" attribute.
The same mechanism goes for the Tag
class.
Security
To avoid security issues, every printed objects are escaped.
If objects are used as input and if they implement the __toString()
method, they will be converted to string.
It's up to the user to make sure that they print unsafe output so they are not escaped twice.
Code quality, tests and benchmarks
Every time changes are introduced into the library, Travis CI run the tests and the benchmarks.
The library has tests written with PHPSpec.
Feel free to check them out in the spec
directory. Run composer phpspec
to trigger the tests.
PHPBench is used to benchmark the library, to run the benchmarks: composer bench
PHPInfection is used to ensure that your code is properly tested, run composer infection
to test your code.
Contributing
Feel free to contribute to this library by sending Github pull requests. I'm quite reactive :-)