php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.08.2007, 09:53  
Benutzer
 
Registriert seit: 01.07.2007
Beiträge: 47
PHP-Kenntnisse:
Fortgeschritten
ecomeback
Standard HTML Klasse

Servus,

sicherlich gibt es schon so etwas wie eine HTML Klasse, die vernünftigen HTML Code ausgibt. Ich dachte an so etwas ähnliches (es kommt mir ein wenig plump vor) wie. Die OOP ist sicherlich nicht wirklich unbedingt angebracht, aber die Schreibweise macht es aus meiner Sicht etwas übersichtlicher.
Code:
$html = new Html();
$html->img('pic.jpg');
Damit könnte man das Attribute festlegen, die man verwenden oder nicht verwenden darf. Selbst font Tags könnte man endlich verbannen. Bilder auf Existens prüfen etc. So etwas ähnliches gibt es doch bestimmt oder?

Wenn ich nun jedes (x)HTML Tag in einer Klasse mit Attributen etc. auflisten würde ist das sicherlich nicht der allerbeste Ansatz, von daher würde es mir sehr helfen, wenn ich mal einen Blick in eine existierende Klasse werfen könnte.

Sollte es so etwas nicht geben, dann würde ich mich gerne ransetzen.
Vielleicht habt ihr das Ideen zur Umsetzung oder euch fällt spontan ein, warum so eine Klasse keinen Sinn macht.

Beste Grüße
ec
ecomeback ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.08.2007, 11:36  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo ecomeback,

damit haben sich bereits einige Leute beschäftigt und das Ganze nennt sich HTML-Helper. Diese finden sich in diversen Frameworks wie CakePHP, CodeIgniter und Zend Framework, die ich im Rahmen meines Vergleichs-Artikels untersucht habe. Dort kannst du dir sicher eine Anregung holen.

Grundsätzlich ist der Ansatz nicht schlecht, HTML-Code generieren zu lassen, nur das ist ab einem bestimmten Punkt nicht mehr effizient, weil es zu statisch und unhandlich ist. Bis ich den ganzen Wrapper geschrieben, getestet und u.U. Erweitert habe, bin ich mit der Erstellung eines sauberen Templates, das von einem generischen Controller verarbeitet wird schneller. Man sollte meiner Meinung nach mehr Zeit in die Erstellung von Verarbeitungsstrukturen setzen, als sich HTML-Helper zu bauen. Wie gesagt, das ist meine persönliche Meinung.

Hier noch schnell die Beispiele aus den genannten Frameworks, damit du dir diese ansehen kannst:

- CakePHP (http://www.cakephp.org):
Hier findest du unter /cake/libs/view/helpers einige Helper-Dateien, die dich
interessieren könnten.
- CodeIgniter (http://codeigniter.com):
Die hier enthaltenen Helper liegen unter /system/helpers.
- Zend Framework (http://framework.zend.com):
Das ZF legt seine Helper unter /library/Zend/View/Helper ab.

Als weitere Anregung zu dem Thema kannst du auch auf http://www.adventure-php-framework.org/Seite/Templates, bzw. http://www.adventure-php-framework.org/Seite/TagLibTags vorbeischauen. Dort werden Möglichkeiten beschrieben, die man mit Templates hat, in denen XML-Tags verarbeitet werden. Die am einfachsten verständliche Anwendung ist dabei unter http://www.adventure-php-framework.org/Seite/Formulare beschrieben - die Formular-Gestaltung.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 31.08.2007, 11:44  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

http://de2.php.net/manual/en/ref.dom.php
http://pear.php.net/packages.php?catpid=10&catname=HTML
Zitat:
Wenn ich nun jedes (x)HTML Tag in einer Klasse mit Attributen etc. auflisten würde ist das sicherlich nicht der allerbeste Ansatz, von daher würde es mir sehr helfen, wenn ich mal einen Blick in eine existierende Klasse werfen könnte.
Tja, deshalb gibt es Vererbung um eine Passende Funktionalität von einer Klasse an seine Bedürfnise Anzupassen. Würde man bei Erstellung von einer Bibliothek direkt die passende und beschränkte Klassen kreiren, dann könnte man sie in zukunft nicht mehr nutzen.

EDIT:
Zitat: dr.e
Zitat:
Man sollte meiner Meinung nach mehr Zeit in die Erstellung von Verarbeitungsstrukturen setzen, als sich HTML-Helper zu bauen. Wie gesagt, das ist meine persönliche Meinung.
So eine Meinung kann ich nur unterstützen.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 31.08.2007, 15:58  
Benutzer
 
Registriert seit: 01.07.2007
Beiträge: 47
PHP-Kenntnisse:
Fortgeschritten
ecomeback
Standard

Hallo ihr zwei,

nun da ist schon mal etwas dabei, wobei mir diese Klasse teilweise viel zu weit gehen. Das was ich vor habe ist zwar nicht der große Wurf, aber ich möchte mir praktisch eine HTML Referenz schafen, die als erste Ebene alle Tags sauber verarbeitet und im xhtml Format ausgibt. Das ich damit teilweise mit Kanonen auf Spatzen schieße ist mir durchaus bewusst, nur geht es mir in Bezug auf Syntaxrichtigkeit Vorgaben zu machen, die teils barrierefreie Ansätze bezüglich dieser Möglichkeit zum Standard zu machen.

So etwas kann ich aus den Beispielen nicht erkennen. Die setzen zum Großteil schon eine Stufe höher an, diese würde ich erst über eine weitere Vererbung dieser Klasse ins Spiel bringen.

Oder ist das nicht sinnvoll für so einen geringen Erlös eine solche Klasse zu schreiben? Sprich die gesamte HTMLReferenz praktisch in eine PHP Klasse zu packen und auf fehlende Attribute oder nicht erwünsche Tags oder falsche HTML Tags auf diese Art zu reagieren.

Vielleicht ein Beispiel, damit grob klar wird, wie ich mir das derzeit vorstelle.
PHP-Code:
class Html 
{
    public function 
div($content,$attribs=array())
    {
        
$allowed_attribs = array('class','id','style');
        
$attribs $this->handleAttribs($attribs,$allowed_attribs);
        
printf("<div%s>%s</div>\n"$attribs$content);
    }
}

$html = new Html();
$html->div('Inhalt', array('style' => 'border: 1px solid #ff00ff;')); 
Also als kleinen Eindruck. Die handleAttribs Funktion lass ich mal weg, da prüfe ich praktisch das attribs Array auf die erlaubten Attribute. Natürlich ist das nicht vollständig, es geht wie gesagt nur um das Prinzip. Das kommt mir derzeit so "platt" vor, dass ich nicht sicher bin, ob sich der Aufwand lohnt.

Vielleicht mögt mir dazu noch etwas sagen.
Beste Grüße
ec
ecomeback ist offline  
Alt 31.08.2007, 16:46  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

nee! Das lohnt sich nicht mit php die html-tags darzustellen gerad dafür um die einfache Ausgabe zu erzeugen.
Wo ist bitte Vorteil?
Es gibt editoren, die html visuel schnell darstellen können.
Man nimmt so ein Editor, macht schnell eine template, passt von hand ein paar Variablen und Platzhalter, entfehrn schnell unnötige Tags.
Fertig.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 31.08.2007, 16:48  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Das könnte vielleicht hilfreich sein wenn du Warnungen einbaust die vor Fällen warnen die in verschiedenen Browsern unterschiedlich aussehen, also auch CSS auf richtigkeit überprüfen und ggf. Warnungen ausgeben (die man auch abschalten kann).

Weil ich mich immer ärgere wenn ich was schickes gemacht hab und öffne es mit nem anderen Browser und alles is fürn arsch...

Das ist natürlich verdammt viel Arbeit!
cycap ist offline  
Alt 31.08.2007, 22:32  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.633
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo ecomeback,

Zitat:
Also als kleinen Eindruck. Die handleAttribs Funktion lass ich mal weg, da prüfe ich praktisch das attribs Array auf die erlaubten Attribute. Natürlich ist das nicht vollständig, es geht wie gesagt nur um das Prinzip. Das kommt mir derzeit so "platt" vor, dass ich nicht sicher bin, ob sich der Aufwand lohnt.
Genau das sehe ich als problematisch an: es ist nicht vollständig. Hier würde ich besser versuchen mit Templates zu arbeiten, die irgendein Controller verarbeitet und dir so den fertigen HTML-Code generiert. Das letzte Beispiel, das ich dir genannt hatte, setzt darauf, sogar noch mehr Attribute (Steuer-Attribute) einbauen zu können um Funktionen zu steuern. Klingt jetzt wahrscheinlich wie dein Großvater: in solchen Dingen habe ich mich früher auch versucht, das aber schnell aufgegeben...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
html to image klasse Matthiasnet Trash 0 19.06.2008 16:35
Variable aus Klasse herausbekommen GSJLink PHP Tipps 2008 7 16.02.2008 22:25
Variable und komplette HTML Datei chrisonline PHP Tipps 2007 3 24.05.2007 15:30
String-Parser Klasse - was muss rein? Matze PHP Tipps 2007 2 08.04.2007 22:14
mehr als eine Klasse einbinden Alpha Centauri PHP-Fortgeschrittene 4 13.04.2006 20:56
Klasenname einer nicht instanziierten Klasse DerDesian PHP Tipps 2007 9 30.11.2005 13:13
[Erledigt] &amp;amp;lt;if&amp;amp;gt; &amp;amp;lt;/if&amp;amp;gt; in einer HTML Datei fuer Templatesy PHP-Fortgeschrittene 6 03.11.2005 12:05
Instanz einer Klasse in einer anderen Klasse verwenden Buhmann PHP-Fortgeschrittene 7 28.10.2005 23:12
Probleme mit Urls und Dom KLasse. daniel987 PHP Tipps 2005-2 3 22.07.2005 15:17
[Erledigt] Führerschein für Klasse A+B.. Preis OK??? Off-Topic Diskussionen 20 13.07.2005 18:44
IMAP: Bild(er) in HTML Part richtig darstellen PHP-Fortgeschrittene 1 07.10.2004 12:21
Klassenobjet in anderer Klasse benutzen inu PHP Tipps 2004 6 19.09.2004 10:58
{$varname.optelement} mit preg_match aus HTML extrahieren PHP Tipps 2004 0 11.09.2004 04:13
Klasse ändern UniQ PHP Tipps 2004 5 24.08.2004 14:46
Validitor (HTML 4.01) = Schwachsinn? Filewalker Off-Topic Diskussionen 19 03.08.2004 15:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php html klasse, php class html, html class neu setzen mit php, html klasse php, php klassen html, html php class, php html klassen, html klasse, php klasse html, php klassen in html aufrufen, php klasse in html, html klassen in php, klasse in html, html php klassen, html klassen php, php classe in html datei, klassen für html generierung, php html parser klasse, html php klasse, php html klasse -auto

Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.