Leichte PHP-Klassen zum Generieren von HTML-Elementen.
Dieses Paket hat keine andere Abhängigkeit als PHP-5.4
Composer ist ein weit verbreiteter Abhängigkeitsmanager für PHP-Pakete. Dieses HTML-Formular ist auf Packagist als user-meta/html
verfügbar und kann durch Ausführen des composer require
installiert werden. Informationen zum Aktivieren von Composer für Ihr Projekt finden Sie in der Dokumentation „Erste Schritte“ des Projekts.
Um diese Abhängigkeit mit dem Befehl hinzuzufügen, führen Sie Folgendes in Ihrem Projektverzeichnis aus:
composer require user-meta/html
Ein kurzes Beispiel für die Generierung von Texteingaben mit Html-Form mithilfe von Composer:
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use UserMeta Html Html ;
echo Html:: text ( ' example ' );
Ausgabe:
< input type =" text " value =" example " />
Es können nahezu alle Arten von HTML-Elementen verwendet werden. (z. B. Schaltfläche, E-Mail, Div, P usw.)
echo Html:: button ( ' Submit Me ' );
echo Html:: email ( ' example email ' );
echo Html:: div ( ' example text ' );
echo Html:: p ( ' example text ' );
Ausgabe:
< input type =" button " value =" Submit Me " />
< input type =" email " value =" example email " />
< div > example text </ div >
< p > example text </ p >
Die meisten Elemente akzeptieren zwei Argumente:
$default
: Standardwert$attributes
: Array von Attributenecho Html::text($default, attributes);
Für Optionselemente wie „select“ und „radio“ wird das dritte Argument als $options
akzeptiert
$options
: Array von Optionen. Das Array kann Schlüssel-Wert-Paare oder nur Werte enthaltenecho Html::select($default, attributes, $options);
Um Name, ID, Klasse oder andere Attribute zuzuweisen, verwenden Sie zweite Argumente ( $attributes
).
Ein Textfeld mit Standardwert, Name, ID und Klassenattributen:
echo Html:: text ( ' Example_Value ' , [ ' name ' => ' Example_Name ' , ' id ' => ' Example_ID ' , ' class ' => ' Example_Class ' ]);
Ausgabe:
< input type =" text " name =" Example_Name " value =" Example_Value " id =" Example_ID " class =" Example_Class " />
Sie können auch beliebige Attribute zu jedem Element hinzufügen:
echo Html:: text ( ' Example_Value ' , [ ' name ' => ' Example_Name ' , ' data-example ' => ' Example_Data ' ]);
Ausgabe:
< input type =" text " name =" Example_Name " value =" Example_Value " data-example =" Example_Data " />
echo Html:: email ( null , [ ' name ' => ' Email ' , ' required ' ]);
echo Html:: email ( null , [ ' name ' => ' Email ' , ' readonly ' ]);
echo Html:: email ( null , [ ' name ' => ' Email ' , ' disabled ' ]);
Ausgabe:
< input type =" email " name =" Email " required =" required " />
< input type =" email " name =" Email " readonly =" readonly " />
< input type =" email " name =" Email " disabled =" disabled " />
echo Html:: email ( null , [
' name ' => ' Example_Name ' ,
' label ' => ' Email '
]);
echo Html:: email ( null , [
' name ' => ' Example_Name ' ,
' label ' => [
' Example ' ,
' class ' => ' Class '
]
]);
Ausgabe:
< label > Email </ label >
< input type =" email " name =" Example_Name " />
< label class =" Class " > Example </ label >
< input type =" email " name =" Example_Name " />
echo Html:: div ( ' example text ' , [ ' id ' => ' Example_ID ' , ' class ' => ' Example_Class ' ]);
Ausgabe:
< div id =" Example_ID " class =" Example_Class " > example text </ div >
echo Html:: label ( ' Some text ' , [ ' id ' => ' ID ' , ' class ' => ' Class ' , ' for ' => ' For ' ]);
Ausgabe:
< label id =" ID " class =" Class " for =" For " > Some text </ label >
echo Html:: checkbox ( true , [ ' name ' => ' Name ' ]);
echo Html:: checkbox ( true , [ ' name ' => ' Name ' , ' value ' => ' Value ' ]);
Ausgabe:
< input type =" checkbox " name =" Name " value =" 1 " checked =" checked " />
< input type =" checkbox " name =" Name " value =" Value " checked =" checked " />
Übergeben Sie das erste Argument als „false“ (Standardeinstellung deaktiviert). echo Html::checkbox(false)
Erstellen Sie eine Liste von Kontrollkästchen mit Standardwerten
echo Html:: checkbox ( ' cat ' , [ ' name ' => ' Name ' , ' id ' => ' ID ' ], [ ' dog ' => ' Dog ' , ' cat ' => ' Cat ' ]);
echo Html:: checkbox ([ ' cat ' ], [ ' name ' => ' Name ' , ' id ' => ' ID ' ], [ ' dog ' => ' Dog ' , ' cat ' => ' Cat ' ]);
Ausgabe
< label > < input type =" checkbox " value =" dog " name =" Name " id =" ID_1 " /> Dog </ label >
< label > < input type =" checkbox " value =" cat " name =" Name " id =" ID_2 " checked =" checked " /> Cat </ label >
So erhalten Sie ein Array von Werten mit der POST- oder GET-Methode
echo Html:: checkbox ([ ' cat ' ], [ ' name ' => ' Name[] ' , ' id ' => ' ID ' ], [ ' dog ' => ' Dog ' , ' cat ' => ' Cat ' ]);
Ausgabe
< label > < input type =" checkbox " value =" dog " name =" Name[] " id =" ID_1 " /> Dog </ label >
< label > < input type =" checkbox " value =" cat " name =" Name[] " id =" ID_2 " checked =" checked " /> Cat </ label >
echo Html:: select ([ ' cat ' ], [ ' name ' => ' Name ' ], [ ' dog ' => ' Dog ' , ' cat ' => ' Cat ' ]);
echo Html:: select ([ ' cat ' ], [ ' name ' => ' Name ' ], [ ' dog ' , ' cat ' ]);
Ausgabe
< select name =" Name " >
< option value =" dog " > Dog </ option >
< option value =" cat " selected =" selected " > Cat </ option >
</ select >
< select name =" Name " >
< option value =" dog " > dog </ option >
< option value =" cat " selected =" selected " > cat </ option >
</ select >
echo Html:: radio ([ ' cat ' ], [ ' name ' => ' Name ' , ' id ' => ' ID ' ], [ ' dog ' , ' cat ' ]);
Ausgabe
< label > < input type =" radio " value =" dog " name =" Name " id =" ID_1 " /> dog </ label >
< label > < input type =" radio " value =" cat " name =" Name " id =" ID_2 " checked =" checked " /> cat </ label >
Mehrere Elemente können als Sammlung zusammengefasst werden
$ div = new Html ( ' div ' );
$ div -> p ( ' Hello World ' );
$ div -> text ( ' example ' );
$ div -> add ( ' Some plain text ' );
echo $ div -> render ();
Ausgabe:
< div >
< p > Hello World </ p >
< input type =" text " value =" example " />
Some plain text
</ div >
Die Sammlung verwendet Html
Konstruktor und akzeptiert zwei Parameter.
$type
(optional): Name des Tags. (z. B. Form, Div)$attributes
(optional): Array von Attributen Generieren eines Formulars mithilfe von Sammlungen:
$ form = new Html ( ' form ' , [ ' method ' => ' POST ' ]);
$ form -> div ( ' Enter your email and password for login ' );
$ form -> email ( '' , [ ' name ' => ' email ' , ' label ' => ' Email ' ]);
$ form -> password ( '' , [ ' name ' => ' password ' , ' label ' => ' Password ' ]);
$ form -> submit ( ' login ' );
echo $ form -> render ();
Ausgabe:
< form method =" POST " >
< div > Enter your email and password for login </ div >
< label > Email </ label >
< input type =" email " name =" email " />
< label > Password </ label >
< input type =" password " name =" password " />
< input type =" submit " value =" login " />
</ form >
Generieren einer HTML-Vorlage mithilfe verschachtelter Sammlungen:
$ html = new Html ( ' html ' );
$ head = $ html -> import ( ' head ' );
$ head -> title ( ' Example Title ' );
$ body = $ html -> import ( ' body ' );
$ body -> p ( ' Hello World ' );
echo $ html -> render ();
< html >
< head >
< title > Example Title </ title >
</ head >
< body >
< p > Hello World </ p >
</ body >
</ html >
$ book = new Html ( ' book ' );
$ book -> title ( ' The Da Vinci Code ' );
$ author = $ book -> import ( ' author ' );
$ author -> name ( ' Dan Brown ' );
$ author -> nationality ( ' American ' );
echo $ book -> render ();
Ausgabe
< book >
< title >The Da Vinci Code</ title >
< author >
< name >Dan Brown</ name >
< nationality >American</ nationality >
</ author >
</ book >
Es ist möglich, jedes HTML-Element zu erstellen, indem man seinen Namen aufruft.
echo Html:: email ( ' [email protected] ' );
echo Html:: h1 ( ' Example Heading ' );
Unter der Haube verwenden wir Html::input()
für das Eingabeelement und Html::tag()
für das HTML-Tag
Erstellen Sie eine E-Mail-Eingabe mit der input
:
echo Html:: input ( ' email ' , ' [email protected] ' );
Erstellen Sie h1 mithilfe der tag
-Methode:
echo Html:: tag ( ' h1 ' , ' Example Heading ' );
echo Html:: email ( '' , [ ' _before ' => ' Before ' , ' _after ' => ' After ' ]);
Ausgabe
Before < input type =" email " /> After
echo Html:: email ( '' , [ ' _enclose ' => ' div ' ]);
echo Html:: email ( '' , [ ' _enclose ' => [ ' div ' , ' class ' => ' Class ' ]]);
Ausgabe
< div >
< input type =" email " />
</ div >
< div class =" Class " >
< input type =" email " />
</ div >
// Same value and label
echo Html:: select ( null , [], [ ' audi ' , ' bmw ' ]);
// Different value and label
echo Html:: select ( null , [], [ ' audi ' => ' Audi ' , ' bmw ' => ' BMW ' ]);
// Option with extra attributes
echo Html:: select ( null , [], [ ' ferrari ' => [ ' Ferrari ' , ' data-origin ' => ' Italy ' ]]);
echo Html:: select ( null , [], [[ ' value ' => ' ferrari ' , ' label ' => ' Ferrari ' , ' data-origin ' => ' Italy ' ]]);
Ausgabe
< select > < option value =" audi " > audi </ option > < option value =" bmw " > bmw </ option > </ select >
< select > < option value =" audi " > Audi </ option > < option value =" bmw " > BMW </ option > </ select >
< select > < option value =" ferrari " data-origin =" Italy " > Ferrari </ option > </ select >
< select > < option value =" ferrari " data-origin =" Italy " > Ferrari </ option > </ select >
Mehrere Möglichkeiten mit einem Optionsarray mischen
echo Html:: select ( null , [], [
' audi ' ,
' bmw ' => ' BMW ' ,
' honda ' => [
' Honda ' ,
' data-origin ' => ' Japan '
],
[
' value ' => ' ferrari ' ,
' label ' => ' Ferrari ' ,
' data-origin ' => ' Italy '
]
]);
Ausgabe
< select >
< option value =" audi " > audi </ option >
< option value =" bmw " > BMW </ option >
< option value =" honda " data-origin =" Japan " > Honda </ option >
< option value =" ferrari " data-origin =" Italy " > Ferrari </ option >
</ select >
Numerischen Wert verwenden
echo Html:: select ( null , [], [ 2 => ' Two ' , 4 => ' Four ' ]);
Ausgabe
< select >
< option value =" 2 " > Two </ option >
< option value =" 4 " > Four </ option >
</ select >
Escape bedeutet, unerwünschte Daten wie fehlerhafte HTML- oder Skript-Tags zu entfernen.
Die Bibliothek wendet esc_attr
auf das Wertattribut an. esc_url
zu href
und src
Attributen.