Sauberer PHP/HTML Programmierstil
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
beispiel
code
editor
ende
endeffekt
ersetzen
forum
http
inhalt
interpretieren
machen
meinung
problem
sektor
string
system
url
verwenden
zeile
-
Du hast natürlich recht hemiolos.
Ich hatte nicht alle deiner links angeschaut, allerdings wäre es besser gewesen den Code direkt zu posten und zu erklären, statt einen eigenen unkommentierten Quellcode per Link anzugeben
[Edit]
Und zur Aussage "selten benutzt" habe ich mich hinreisen lassen, weil ich in meinem Umfeld niemanden kenne der davon überhaupt gebrauch macht obwohl es mir, wie du ja schon sagtest, sehr nützlich erscheint. ^^
Grüße,
Sektor
Beitrag zuletzt geändert: 23.1.2011 15:01:13 von sektor -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das kaum einer HEREDOC oder NOWDOC benutzt, ist sehr verständlich. Für normale Webseiten bietet sich ein Templatesystem einfach besser an, als irgendein limiterter HEREDOC String.
Solche Sachen kommen normalerweise erst dann zum Einsatz, wenn maneinen längeren Text hat, in dem viele ' vorkommen. Also eigentlich nur, wenn man zu PHP kompiliert. Auch wenn du CLI Anwendungen entwickelst, wirst du sowas häufiger mal sehen. -
sektor schrieb:
...es mir, ... sehr nützlich erscheint. ^^
nikic schrieb: Das kaum einer HEREDOC oder NOWDOC benutzt, ist sehr verständlich...
un dann gib es diejenigen, die suchen und ersetzen ...
Also da sieht man ganau, wo wir etwas einheitliches haben. Aber Varianz war schon immer ein Liebkind der natur ;o)
lg
p.s.: @sektor, du hast recht. Ich habe nur gedacht, so ein einfaches Ding braucht keine Erklärung. Werde mich bessern!
Beitrag zuletzt geändert: 23.1.2011 21:15:15 von hemiolos -
hemiolos schrieb:
nikic schrieb: Das kaum einer HEREDOC oder NOWDOC benutzt, ist sehr verständlich...
un dann gib es diejenigen, die suchen und ersetzen ...
Kann es sein, dass du einen Beitrag von mir überlesen hast? Ich habe da recht ausführlich zu dem Thema Stellung genommen. -
nikic schrieb:
wenn du das meinst, habe ich natürlich gelesen. und natürlich habe ich deine posting auch auf meinem lieblingportal 'stackoverflow' gelesen :o)
Kann es sein, dass du einen Beitrag von mir überlesen hast? Ich habe da recht ausführlich zu dem Thema Stellung genommen.
dazu noch 2 vermerke:
1. damit bin ich so in etwa einer meinung;
2. regexp ist sehr resourcenfressend (wie in deinem beispiel auf stackoverflow).
lg -
@hemiolos: Dann habe ich wahrscheinlich nicht gut genug erklärt, wie das funktioniert: Diese Regex Sachen, werden nur ein einziges Mal gemacht, um den PHP-Template-Code zu generieren. Dieser wird anschließend gecacht (normalerweise sogar über APC im Arbeitsspeicher).
Wie lange der Vorgang des Generierens dauert ist im Endeffekt eigentlich vollkommen unbedeutend,, entscheidend ist nur, wie schnell das entstandene Template dann ausgeführt wird.
Was Regex anbelangt: Unabhängig davon, dass die Regex-Sachen ja sowieso nur einmalig ausgeführt werden, ist die Annahme, dass Regex langsam sind nicht wirklich richtig. Ich muss aber zugeben, dass die dort genutzten schon recht alt sind (Oktober 2010) und ich das jetzt natürlich anders machen würde:
a) Man sollte wahrscheinlich eine negated character group mit possesive quantifier benutzen:
Das würde der Regex-Engine das sämtliches Backtracking ersparen, was natürlich ein großer Vorteil ist, was Geschwindigkeit anbelangt.~\{\s*+([^}]++)\s*+\}~
b) Es wäre eventuell sinnvoll '}' in Strings nicht als schließendes Zeichen zu werten:
Das ganze wird dann aber schon etwas unübersichtlich für jemanden, der sich nicht sonderlich mit regulären Ausdrücken auskennt.~\{\s*+([^}'"]*+(?:(?:'[^'\\\\]*+(?:\\\\.[^'\\\\]*+)*+'|"^[^"\\\\](?:\\\\.[^"\\\\]*+)*+")[^}'"]*+)*+)\s*+\}~
Und da sieht mans schon: Einfach Twig benutzen :D Es ist einfach besser als schnell selbst was zusammenzuhauen ;)
PS: Schön zuwissen, dass du auch StackOverflow nutzt :D -
nikic schrieb:
deine Worte in Gottes Ohren ;o))
...
Das ganze wird dann aber schon etwas unübersichtlich~\{\s*+([^}'"]*+(?:(?:'[^'\\\\]*+(?:\\\\.[^'\\\\]*+)*+'|"^[^"\\\\](?:\\\\.[^"\\\\]*+)*+")[^}'"]*+)*+)\s*+\}~
PS: Schön zuwissen, dass du auch StackOverflow nutzt :D
Ja na sowas unerhörtes aber auch! So klein ist die Welt ... da kriegst Platzangst ;o)
lg
P.S.: nichts für ungut! Mit PHP versucht man dynamische Seiten hervorzuzaubern und mit Templates versucht man statisches ins dynamische hineinzuschmuggeln???? wenn du mich fragst ... oxymoron ;o) -
Wir reden gerade über ein grundlegendes Problem von PHP, dass es auf einer Seite einfach zu erlernen ist, viele jedoch, die keine Programmierspachen wie C++ oder Java kennen, nicht effizient und sauber mit PHP zurecht kommen, sondern umständlich bzw. quick-and-dirty programmieren. Das reicht für einen Hobbyprogrammierer zwar aus und das ist auch ok so, mit sauberem PHP hat das aber nichts zu tun.
Wenn wir jedoch hier über dieses Thema sprechen wollen, müssen wir ganz klar zwischen sauberem Stil und einer sauberen Architektur sprechen.
Sauberer Stil zB:
- Variablennamen erkenntlich vergeben
- Keine zig tausend Echos
- Kommentare verwenden
- Code dokumentieren
- immer gleicher Aufbau der Scripte
- Die PEAR-Codingstandards können eine Richtlinie darstellen.
- uvm.
Saubere Architektur:
- streng relationale Datenbankstruktur verwenden
- Objektorientierte Programmierung (zumindest bei größeren Projekten)
-- Setter und Getter verwenden
-- Prototyping
- Dont repeat yourself (DRY)
- Wenn möglich Model-View-Controller (MVC) benutzen oder zumindest Ausgabe nach der Logik
- Testgetriebene Entwicklung
- Caching kann sinnvoll sein
- uvm.
Das sind von mir nur einige Vorschläge, aber einiges davon mag unter allen, manches auch nur unter bestimmten Bedinungen Sinnvoll sein. Jedoch unterscheidet auch einiges davon einen Laien von einem Profi. -
Servus,
bin neu hier, aber werfe gleich mal ein, zwei Dinge in den Ring. Nehmen wir mal den Beispielcode und machen ein paar kleine Anpassungen:
Das ist dann besonders effizient und aufgeräumt wenn man Schleifen durchläuft die komplexe Abfragen machen. Die function lässt sich natürlich aus auslagern und includen. Insbesondere wenn der Content re-used wird. Das würde ich nicht machen wenn die function Abhängigkeiten mit anderm Content der Seite hat.<html> <head>...</head> <body> <div id=content> <?php news() ; ?> </div> </body> </html> <?php exit(); // Ab hier endet das Seitenrendering function news() { if(section = news) { echo "<h1>News</h1>"; .... } else if (...) { ... } }
MVC würde ich erst bei komplexen Sites einsetzen, da die Lernkurve ganz schön hoch sein kann. Insbesondere Zend ist ja schon fast Quasi Standard. Wer jetzt nicht den Vorschlaghammer auspacken will kann ja vielleicht mal einen Blick auf FUEL werfen.
HP -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage