Git Product home page Git Product logo

htmlelement's Introduction

HtmlElement view helper for Zend Framework

You want HTML tags as objects?

You want surefire generated HTML tags and HTML attributes?

You want to generate HTML tags on the fly?

This module comes to the rescue!

Build Status Scrutinizer Code Quality Coverage Status HHVM Status SensioLabsInsight Latest Stable Version Dependency Status Total Downloads License

Zend Framework view helper plugin for generating HTML tags. Use HTML tags as objects and manipulate HTML attributes and values.

  • Well tested. Besides unit tests and continuous integration/inspection this solution is also ready for production use.
  • Great foundations. Based on Zend Framework and interop-config
  • Every change is tracked. Want to know whats new? Take a look at CHANGELOG.md
  • Listen to your ideas. Have a great idea? Bring your tested pull request or open a new issue. See CONTRIBUTING.md

Installation

Installation of this module uses Composer. For Composer documentation, please refer to getcomposer.org.

Put the following into your composer.json

{
    "require": {
        "sandrokeil/html-element": "^2.0"
    }
}

Please register the HtmlElement view helper to your Zend\View plugin manager. You can use the Sake\HtmlElement\Service\HtmlElementFactory factory if you install interop-config.

return [
   'view_helpers' => [
        'factories' => [
            \Sake\HtmlElement\View\Helper\HtmlElement::class => \Sake\HtmlElement\Service\HtmlElementFactory::class,
        ],
    ],
];

Documentation

The usage is easy. Here is an example how to use the view helper

<?php

// assume we are in a template
echo $this->html('div', 'my content', array('id' => 'content', 'class' => 'box shadow'));

// or
$div = $this->html('div');
echo $div->setText('my content')
    ->setAttributes(array('id' => 'content', 'class' => 'box shadow'));

// to render HTML you can use
echo $div->enableHtml(true)
    ->setText(
        $this->html('p')->setText('Hello World!')->appendClass('welcome');
    );

// or
echo $this->html(
    'div',
    $this->html('p')->setText('Hello World!')->appendClass('welcome'),
    array('id' => 'content', 'class' => 'box shadow'),
    true
);

Performance tweaks

The default behaviour of HtmlElement is maximum security. But if you have thousands of HTML tags it could be slow. If your HTML attributes are not from user input, you can disable escaping of HTML attributes to increase performance. You can also disable escaping of text to unleash the beast. ;-) This is simply done by adding the following lines to your config file, but keep security in mind.

<?php

return array(
    'sake_htmlelement' => array(
        'view_helper' => array(
            'default' => array(
                'escapeHtmlAttribute' => false,
                'escapeText' => false,
            ),
        ),
    ),
    // other module config stuff
);

htmlelement's People

Contributors

sandrokeil avatar

Stargazers

 avatar  avatar

Watchers

 avatar

htmlelement's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.