php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 26.03.2005, 20:57  
Gast
 
Beiträge: n/a
Standard Frage zu eurem Programmierstil

Hi,
ich hab mal eine grundsätzliche frage zu eurem programmierstil, vll. auch mehr an die, die schon länger mit php programmieren.

Wie bettet ihr im allgemeinen euren html-code in php ein? gibt ihr die komplette html-syntax mit "echo()" aus, oder beendet ihr einfach den php-code mit "?>" und fängt ihn dann an geeigneter stelle wieder mit "<?php" an?
das würde mich interessieren. Vll könnt ihr mir auch noch eventuelle vorteile, bzw. nachteile der methode(n) nennen, vielen dank!

gruß, und frohes osterfest
basti
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.03.2005, 21:05  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Ist im Endeffekt fast dasselbe. Im Zweifelsfall würde ich die Variante nehmen, die grad weniger Arbeit macht oder hübscher aussieht. Auf den Programmierstil hat das kaum Auswirkungen.
Wichtig ist, dass man HTML-Code und "funktionalen" PHP-Code sauber trennt, wobei ich ja Templates bevorzuge. Die kann man auch dem Dreamweaver-Designer geben.

Oder gleich XSLT... aber das ist ein etwas anderes Kaliber.
__________________
mod = master of disaster
Waq ist offline  
Alt 26.03.2005, 21:10  
Erfahrener Benutzer
 
Registriert seit: 11.07.2004
Beiträge: 269
function
function eine Nachricht über ICQ schicken
Standard

also ich will mir nicht heraus nehmen mich als erfahrenene programmierer zu bezeichnen, aber trotzdem möchte ich meinen "programmierstil" publik mahcne

also ich mishce eigentlich beide sachen jenachdem wie es gerade passt:
z.B.: wenn ich in meine script einen langen teil html habe dann schließe ich denn php ab ?php> und schreibe in html weiter bis der php teil wiede reinsetzt ^^

auf der anderenseite wenn kurze auszücke in html komme regel ich das über echo()
z.B.:
<?php .... ?>moep<?php ... ?> so sicher nicht da dann doch lieber komplett mit echo
__________________
Es ist ein großer Trost, andere dort scheitern zu sehen, wo man selbst gescheitert ist. (William Somerset Maugham)
function ist offline  
Alt 26.03.2005, 21:10  
Gast
 
Beiträge: n/a
Standard

wieso nur fast?

gruß, sezac
 
Alt 26.03.2005, 21:14  
Erfahrener Benutzer
 
Registriert seit: 16.03.2005
Beiträge: 421
Niedi
Niedi eine Nachricht über ICQ schicken
Standard

Kommt auf den Moment an

Wenn ich einen längeren HTML code ausgeben müsste, jedoch darin einige variblen ausgegen gehören, einfach bei php bleiben, da man sonst ja zig mal den php tag öffnen muss, und dann najo.. kennt sich kein schwein mehr aus ^^

mfg
Niedi ist offline  
Alt 26.03.2005, 21:15  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.798
PHP-Kenntnisse:
Fortgeschritten
robo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblickrobo47 ist ein wunderbarer Anblick
Standard

also von der logik her sollte man sowas unterlassen:

PHP-Code:
<?php
echo 'bla';
echo 
'bla';
echo 
'bla';
echo 
'bla';
echo 
'bla';
?>
entweder

PHP-Code:
<?php
echo '
bla
bla
bla
bla
bla
bla
'
;
?>
oder so:

PHP-Code:
<?php
// anfang des scripts
$output '';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';

//ende des Scripts
echo $output;
?>
weil jedesmal echo aufrufen, dauert, eine ausgabe ist auf jeden fall weniger performance fressend als zig echo's und jenachdem, entweder nutze ich letztere methode, oder halt gleich ein templatesystem.

mfg
robo47
robo47 ist offline  
Alt 26.03.2005, 21:21  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Niedi
Kommt auf den Moment an

Wenn ich einen längeren HTML code ausgeben müsste, jedoch darin einige variblen ausgegen gehören, einfach bei php bleiben, da man sonst ja zig mal den php tag öffnen muss, und dann najo.. kennt sich kein schwein mehr aus ^^

mfg
naja... ich würde das z.b. nicht so machen, wenn ich einen längeren html-text hab, wo halt variable ausgegeben werden müssen, denn mach ich doch lieber ein-zwei-mal php auf, gib die variablen aus, und schließ es wieder. weil wenn ich den ganzen html-text in php ausgebe, muss ich ja wieder darauf auchten, das sämtlich sonderzeichen wie die anführungsstriche bei html variablen escaped werden.
 
Alt 26.03.2005, 21:27  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von robo47

PHP-Code:
<?php
// anfang des scripts
$output '';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';
$output .= 'bla';

//ende des Scripts
echo $output;
?>
weil jedesmal echo aufrufen, dauert, eine ausgabe ist auf jeden fall weniger performance fressend als zig echo's und jenachdem, entweder nutze ich letztere methode, oder halt gleich ein templatesystem.

mfg
robo47
die methode find ich recht interessant. gibts du dann in jedem teil von $output deinen html-code mit an? macht das dann nicht aber auch die variable, bei größeren seiten, extrem groß? und könnten da nicht wieder probleme auftreten?
gruß, basti
 
Alt 26.03.2005, 23:50  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Hallo Namensvetter.

Naja, du lädst dir halt den ganzen Quellcode in den Speicher, aber das ist in aller Regel absolut verkraftbar. Allerdings, wenn du das schon für interessant hälst, dann ist der Schritt zu einer Template-Engine auch nicht mehr weit. Dann hast du das ganze Gedöns komplett draußen. Ich habe, bevor ich mit Template-Engines gearbeitet habe ein Framework in folgendem Stil benutzt:

Alle Requests gehen bei einem zentralen Skript ein, dieses analysiert den Request und ruft ein entsprechendes Action-Skript auf (z.B. action.guestbook_addentry.php). Dieses schreibt an der Stelle, an der entschieden ist, welche Seite ausgegeben wird (also z.B. view.guestbook_success.php) den Namen dieser "Sicht" (view) in eine Variable und ein Array wird dann mit den einzelnen Elementen gestopft, die auf dieser Seite dann auch gewünscht sind:

PHP-Code:
$view 'guestbook_show_list';
$template['guestbook_show_list'] = array();
$template['guestbook_show_list']['num_entries'] = mysql_num_rows($result);
$template['guestbook_show_list']['entries'] = array();
while (
$guestbook_entry mysql_fetch_assoc($result)) {
    
$template['guestbook_show_list']['entries'][] =  $guestbook_entry;

An der Stelle ist noch keine Spur von HTML in den Daten vorhanden.

Wenn dieses Action-Skript durch ist, kannst du in dem zentralen Skript (der Controller sozusagen) das Array dann noch um die erste Dimension kürzen, da ohnehin nur diese für das Template der ausgewählten Seite interessant ist. Etwa so:

PHP-Code:
$template $template[$view];
include (
"./views/view.$view.php"); 
Und darin war dann in erster Linie HTML-Code enthalten und zwischendrinnen hat ein wenig PHP die Werte aus $template eingestreut - ggf. entsprechend aufbereitet.

War natürlich in den Templates immernoch ein ziemliches Durcheinander von PHP-Schleifen, in denen HTML ausgegeben wurde, aber die Rollen waren schonmal gut aufgeteilt. War fast schon eine MVC-Implementierung *g* - nur eben ohne OOP (von den zwei Klassen $Session und $MySQL mal abgesehen *g*).

...ich weiß, bin was vom Thema weg, aber vielleicht inspiriert es ja den einen oder anderen, genauer hinzuschauen, wo er HTML ausspuckt und ob das da auch der richtige Ort dafür ist.

Basti
Basti ist offline  
Alt 27.03.2005, 01:21  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Ich bevorzuge die direkte Trennung von PHP und HTML mit Templates.

Die Funktion hat den Vorteil, das bestimmte Templates im Speicher behalten werden können, während andere nur einmal geladen werden.

Es wird auf Eval verzichtet,
und die Variablen werden direkt aus dem PHP Script genommen.

Da die Funktion immer wieder verbessert wurde, ist im momment ein Teil der Funktion leider unnötigerweise nötig, da erst die restlichen Scripts noch angepast werden müssen.

PHP-Code:
<?php
function template ($Template='',$Parse=FALSE,$ModulLoad='_core') {
  if (isset(
$Parse) != FALSE$GLOBALS['Parse'] = $Parse;
  
TimeCount('TemplateTime');

  if (
$ModulLoad != '_var') {

    
$TemplateLoad './module/'.$ModulLoad.'/templates/'.$Template.'.htm';
    if (isset(
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad]) == FALSE)  $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad] = array();

    if (
strpos($Template,'_bit') != 0) {
        if (isset(
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template]) == FALSE) {
          
$GLOBALS['Status']['TemplateCounter']++;
          
$GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template] = implode('',file($TemplateLoad));
          
$Template $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template];
        } else 
$Template $GLOBALS['Cache']['_cache']['TemplateCache'][$ModulLoad][$Template];
      } else {
        
$Template implode('',file($TemplateLoad));
        
$GLOBALS['Status']['TemplateCounter']++;
      }
  }

  
$GLOBALS['Status']['TemplateParse']++;
  
$Template = @preg_replace('/{([^}]+):([^}]+)}/e','$GLOBALS[\'\\1\'][\'\\2\']',$Template);
  
TimeCount('TemplateTime');
  
  if (empty(
$TemplateLoad) == TRUE$TemplateLoad='_var';
  if (
defined('DEBUG_STATS') == TRUE and DEBUG_STATS == TRUE$GLOBALS['Debug']['Templates'] .= '<hr>Template: '.$TemplateLoad.', '.$GLOBALS['Status']['TimeCountLast'].' sec'
  
  return 
$Template;
};
?>
__________________
Web-Entwickler/-in bei der IAK GmbH
Chance 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
Frage zur dauerhaften voting sperre! litterauspirna PHP Tipps 2008 19 29.05.2008 16:19
Frage zu Session SmileMan PHP Tipps 2008 1 08.10.2007 11:22
Der "richtige" Programmierstil Matze PHP Tipps 2007 15 18.01.2007 14:37
Frage zu Programmierstil inu PHP Tipps 2006 8 26.05.2006 08:11
Ein kleine Frage zum posten hier im Forum Kein Genie Off-Topic Diskussionen 3 20.03.2006 13:40
method post frage test022 PHP Tipps 2007 10 23.12.2005 13:02
Access Frage - Datenbankverbindung abfragen reimondo Off-Topic Diskussionen 1 01.10.2005 18:24
[Erledigt] frage PHP Tipps 2005-2 9 15.06.2005 13:22
[Erledigt] Performence Frage PHP-Fortgeschrittene 10 06.05.2005 19:00
Frage zu einem Editformular PHP Tipps 2005 3 25.04.2005 14:58
mal ne Frage PHP Tipps 2005 7 14.04.2005 09:46
Frage zu einer Liste? HTML, Usability und Barrierefreiheit 2 15.02.2005 16:56
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
[Erledigt] Frage! PHP Tipps 2004 4 27.07.2004 11:25
[Erledigt] fputs frage PHP Tipps 2004 2 16.07.2004 19:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
programmierstil sessions

Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 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.