Anfängerfrage: welcher PHP Aufruf ist besser?

Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 14:31:57 von Michael Weis

Hallo,

Ich programmiere einen kleinen Shop um, ist wohl CGI-PHP (1&1 Webpräsenz).

2 Möglichkeiten des codings:

PHP "einbetten"


"src=\"../../pics/".$result['name_file'].".jpg\"" ?>>



oder auch die statischen HTML-Teile als php echo ausgeben:

border='0'src='../../pics/".$result['name_file'].".jpg' > ?>


Die erstere Variante fände ich übersichtlicher, was die html und css
Syntax angeht, das Syntax highlighting meines Editors ist da schöner.

Stimmt es denn, das im ersten Fall pro PHP Aufruf ein eigener Prozeß
gestartet wird, d.h. die Verarbeitung ja sehr suboptimal wäre?

Danke für Aufhellung, in der FAQ oder meinen dicken Büchern habe ich
dazu nichts konkretes gefunden.

Gruß,

Michael

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 14:37:29 von mmueller12

Michael Weis schrieb:
> Die erstere Variante fände ich übersichtlicher, was die html und css
> Syntax angeht, das Syntax highlighting meines Editors ist da schöner.
>
> Stimmt es denn, das im ersten Fall pro PHP Aufruf ein eigener Prozeß
> gestartet wird, d.h. die Verarbeitung ja sehr suboptimal wäre?
Meines Wissens läuft das so ab:
Der Apache reicht die Datei an den PHP-Interpret weiter, der schaut sich
durch was in der Datei an PHP-Befehlen auszuführen ist, führt diese aus,
und reicht das Ergebnis dann an Apache zurück. Also nichts mit mehreren
PHP-Prozessen.

Michael

Re: Anfängerfrage:welcher PHP Aufruf ist besser?

am 16.04.2008 14:51:24 von Samuel Suther

Michael Weis wrote:

> Hallo,
>
> Ich programmiere einen kleinen Shop um, ist wohl CGI-PHP (1&1 Webpräsenz).
>
> 2 Möglichkeiten des codings:
>
> PHP "einbetten"
>
>
>

> "src=\"../../pics/".$result['name_file'].".jpg\"" ?>>

>
>
> oder auch die statischen HTML-Teile als php echo ausgeben:
>
>
> border='0'src='../../pics/".$result['name_file'].".jpg' > ?>
>
>
> Die erstere Variante fände ich übersichtlicher, was die html und css
> Syntax angeht, das Syntax highlighting meines Editors ist da schöner.
>
> Stimmt es denn, das im ersten Fall pro PHP Aufruf ein eigener Prozeß
> gestartet wird, d.h. die Verarbeitung ja sehr suboptimal wäre?
>
> Danke für Aufhellung, in der FAQ oder meinen dicken Büchern habe ich
> dazu nichts konkretes gefunden.
>
> Gruß,
>
> Michael
Kannste halten wie du willst, ist lediglich ein unterschied in der
Lesbarkeit es Codes.

Wenn du absolut lesbaren HTML-Code ohne einschränkungen von " und ' nutzen
wills, informier dich auch mal über EOF.

Ein Beispiel:
=============

echo <<

Webserver - PHP



PHP bietet die gleichen Möglichkeiten wie SHTML. Die folgende Zeile wird bei
jedem Aufruf der Seite
zufällig aus einer Datei eingebunden.
EOF;

Oben das << dann kommt, ist wie der Inhalt einer eigenen Textdatei (inkl. Leerstellen
und Tabs am Anfang.

beendet wird der aufruf mit EOF;

Viel Spaß
Samuel Suther
-www.suther.de-

Domains, Hosting, Onlineshops: xstable.de

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 14:53:50 von Christoph Herrmann

Michael Müller schrieb:
> Der Apache reicht die Datei an den PHP-Interpret weiter, der schaut sich
> durch was in der Datei an PHP-Befehlen auszuführen ist, führt diese aus,
> und reicht das Ergebnis dann an Apache zurück. Also nichts mit mehreren
> PHP-Prozessen.

Ist es nicht so, dass der Apache die komplette Datei an den Interpreter
weiterleitet sobald diese eine entsprechende Dateiendung hat?

Jeder Seitenaufruf ist dabei soweit ich weiß ein eigener Prozess.

Der PHP Interpreter geht die Datei dann durch und gibt sämtliche
Ausgaben außerhalb der PHP Tags direkt aus bzw. führt sämtliche
Anweisungen innerhalb dieser PHP Tags aus.

Ob die Verarbeitung so oder anders schneller ist kann ich nicht
beurteilen, aber generell tendiert der Trend dazu, HTML und PHP Code
voneinander zu trennen.

Dies funktioniert zum Beispiel mit Hilfe einer Template Engine:
http://de.wikipedia.org/wiki/Template_Engine

Oder speziell bei PHP wäre da vielleicht Smarty zu nennen:
http://de.wikipedia.org/wiki/Smarty
http://www.smarty.net/

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/

Re: Anfängerfrage:welcher PHP Aufruf istbesser?

am 16.04.2008 14:56:28 von Hans-Werner Hilse

Moin,

Samuel Suther wrote:

> Wenn du absolut lesbaren HTML-Code ohne einschränkungen von " und '
> nutzen wills, informier dich auch mal über EOF.

richtiger: =BBHeredocs=AB. EOF (eigtl. wohl =BBend of file=AB) wird manchmal
als heredoc-identifier genommen. Muss aber nicht. Die
PHP-Online-Dokumentation verwendet z.B. =BBEOD=AB (end of document?).

Innerhalb von Heredocs gelten die selben Regeln (mal abgesehen vom
Escaping von Doublequotes) wie in Doublequote-Strings.

Seit PHP 5.3.0 gibt es auch Nowdocs, die sich eher wie
Singlequote-Strings verhalten. Steht aber alles in der Doku, vgl.
http://www.php.net/manual/en/language.types.string.php#langu age.types.strin=
g.syntax.heredoc

-hwh

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 14:58:51 von Gregor Kofler

Samuel Suther meinte:

> Wenn du absolut lesbaren HTML-Code ohne einschränkungen von " und ' nutzen
> wills, informier dich auch mal über EOF.

[snip]

Das hat nichts mit "EOF" zu tun (es kann eine quasi-beliebige
Zeichenkette sein), es handelt sich um den sog. heredoc-Syntax. Damit
findet man ihn auch im Handbuch oder Suchmaschinen.

Gregor


--
http://photo.gregorkofler.at ::: Landschafts- und Reisefotografie
http://web.gregorkofler.com ::: meine JS-Spielwiese
http://www.image2d.com ::: Bildagentur für den alpinen Raum

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 16:04:56 von Niels Braczek

Michael Weis schrieb:

> Die erstere Variante fände ich übersichtlicher, was die html und cs=
s=20
> Syntax angeht, das Syntax highlighting meines Editors ist da schöner.=


Das ist Grund genug, diese Variante zu wählen. Wenn man die
PHP-Statements auf reine echo()s und vielleicht die eine oder andere
grundlegende String-Funktion beschränkt (eine Frage der Disziplin),
reicht das völlig, um der Forderung nach Trennung von Code und Layout
nachzukommen. Die Aufgabe von speziellen Template-Engines ist es
letztlich, die Disziplin zu erzwingen.

> Stimmt es denn, das im ersten Fall pro PHP Aufruf ein eigener Prozeß =

> gestartet wird, d.h. die Verarbeitung ja sehr suboptimal wäre?

Nein.

MfG
Niels

--=20
| http://www.kolleg.de =B7 Das Portal der Kollegs in Deutschland |
| http://www.bsds.de =B7 BSDS Braczek Software- und DatenSysteme |
| Webdesign =B7 Webhosting =B7 e-Commerce =B7 Joomla! Content Management =
|
------------------------------------------------------------ ------

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 16.04.2008 20:49:29 von Huber Hans

Christoph Herrmann schrieb:
> Michael Müller schrieb:
>> Der Apache reicht die Datei an den PHP-Interpret weiter, der schaut
>> sich durch was in der Datei an PHP-Befehlen auszuführen ist, führt
>> diese aus, und reicht das Ergebnis dann an Apache zurück. Also nichts
>> mit mehreren PHP-Prozessen.
>
> Ist es nicht so, dass der Apache die komplette Datei an den Interpreter
> weiterleitet sobald diese eine entsprechende Dateiendung hat?

Ja

>
> Jeder Seitenaufruf ist dabei soweit ich weiß ein eigener Prozess.

Ja/Nein: http://www.php-faq.de/q/q-php-cgi-vs-modul.html

Gruß Hans

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 17.04.2008 00:05:49 von Martin Lemke

Michael Weis schrieb:

> Die erstere Variante fände ich übersichtlicher

sprintf('


',$result['name_file']);

Noch besser ist es, eine möglichst vollständige Trennung von Code un html
anzusterben, indem man eine Template-Engine verwendet. Z. B. Smarty.

MVC und so'n Zeugs finde ich zu inperformant.

Martin

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 17.04.2008 00:19:21 von Christoph Herrmann

Martin Lemke schrieb:
> Noch besser ist es, eine möglichst vollständige Trennung von Code un html
> anzusterben, indem man eine Template-Engine verwendet. Z. B. Smarty.

Ohne ist es performanter um es in deinen Worten auszudrücken...

Im übrigen ist eine Template-Engine eine Art MVC einzusetzen, da dadurch
die Steuerung und Logik von der Ausgabe trennst.

> MVC und so'n Zeugs finde ich zu inperformant.

Warum nutzt du dann PHP? Das ist im Vergleich zu C++ in der Regel auch
inperformant, wenn das deine einzige Sorge ist?

In der Regel sollte man die verwendeten Techniken seinen Bedürfnissen
anpassen. Sollte sich die Ausgabe unabhängig der Steuerung und der Daten
ändern können oder voneinander der Übersichtlichkeit halber und zur
Wartung getrennt sein macht MVC sehr wohl Sinn, weswegen die meisten
Frameworks auch nach diesem Prinzip umgesetzt sind.

--
Mit freundlichen Grüßen,
Christoph Herrmann

http://dragonprojects.de/

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 17.04.2008 09:35:57 von Michael Weis

Huber Hans wrote at 16.04.2008 20:49
>> Jeder Seitenaufruf ist dabei soweit ich weiß ein eigener Prozess.
>
> Ja/Nein: http://www.php-faq.de/q/q-php-cgi-vs-modul.html
>
> Gruß Hans

Hier ging es in meinem OP aber um CGI, also in diesem Falle: ja

Danke aber allen, ich habe jetzt (mehr) Klarheit.

Gruß,

Michael

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 17.04.2008 10:23:06 von benjamin radtke

Martin Lemke schrieb:
> MVC und so'n Zeugs finde ich zu inperformant.
>
Sorry, aber das ist völliger Quatsch. Das klingt eher danach, als
hättest du dich mit dem Thema noch nie groß beschäftigt.

MfG Benny

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 19.04.2008 00:01:04 von Martin Lemke

benjamin radtke schrieb:

>> MVC und so'n Zeugs finde ich zu inperformant.
>>
> Sorry, aber das ist völliger Quatsch.

Ich schrieb nicht, das sei per se inperformant, sondern, dass ich es so
empfinge (bei den mir verfügbaren Ressourcen). Das kannst Du nicht als
Quatsch bezeichnen, denn was ich empfinde kann ich besser beurteilen als
Du.

> Das klingt eher danach, als
> hättest du dich mit dem Thema noch nie groß beschäftigt.

Ich habe es ausprobiert. Es gibt Gründe, die dafür sprechen, aber, und das
ist nicht zu leugnen, solche, die dagegen sprechen. Das kommt auch auf die
Ressourcen an, die man zur Verfügung hat.

Wenn Du Dir den Webserver mit anderen Kunden teilen musst, sind die
Vorzeichen andere als wenn Du alleinherrscher der Maschine bist.

Martin

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 19.04.2008 00:07:25 von Martin Lemke

Christoph Herrmann schrieb:

> Warum nutzt du dann PHP? Das ist im Vergleich zu C++ in der Regel auch
> inperformant, wenn das deine einzige Sorge ist?

Da gebe ich Dir Recht. Ich habe auch schon Überlegungen abgestellt, ob ich
das eine oder andere Skript nicht in einer Compilersprache inplementieren
sollte.

PHP ist aber für Webzecke die optimale Pattform.

> [...] macht MVC sehr wohl Sinn

Das will ich gar nicht leugnen. Natürlich sind MVC-Implementationen keine
rein theoretischen Informatikerspielzeuge. Man kann damit produktiv etwas
anfangen.

> weswegen die meisten
> Frameworks auch nach diesem Prinzip umgesetzt sind.

Auch in dem von mir favorisierten Zendframework.

Martin

Re: Anfängerfrage: welcher PHP Aufruf ist besser?

am 21.04.2008 10:09:40 von benjamin radtke

Martin Lemke schrieb:
> benjamin radtke schrieb:
>
>>> MVC und so'n Zeugs finde ich zu inperformant.
>>>
>> Sorry, aber das ist völliger Quatsch.
>
> Ich schrieb nicht, das sei per se inperformant, sondern, dass ich es so
> empfinge (bei den mir verfügbaren Ressourcen). Das kannst Du nicht als
> Quatsch bezeichnen, denn was ich empfinde kann ich besser beurteilen als
> Du.
>
Das will ich nicht bestreiten. =)
>> Das klingt eher danach, als
>> hättest du dich mit dem Thema noch nie groß beschäftigt.
>
> Ich habe es ausprobiert. Es gibt Gründe, die dafür sprechen, aber, und das
> ist nicht zu leugnen, solche, die dagegen sprechen. Das kommt auch auf die
> Ressourcen an, die man zur Verfügung hat.
>
Es gibt leider viele, welche MVC nur aus den bekannten Frameworks (wie
zum Beispiel Zend) kennen. Die dortige Implementierung ist sicher nicht
die schnellste, aber dafür umso komplexer, versehen mit vielen mehr oder
weniger nütlichen Features. MVC an sich ist aber nicht zwingend eine
Performancebremse, da dieses Pattern auch sehr schmal umgesetzt werden kann.
> Wenn Du Dir den Webserver mit anderen Kunden teilen musst, sind die
> Vorzeichen andere als wenn Du alleinherrscher der Maschine bist.
>
Das Problem kenn ich durchaus.. ;-)
> Martin

Gruß,
Benny