php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.09.2004, 18:11  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard CMS + Smarty? oder eigenes Templatesystem?

Hallo,

ich werde die nächsten Tage anfangen, mein eigenes CMS zu schreiben (dass denn irgendwann auch zum Download angeboten werden soll).
Nun stellt sich mir die Frage: Soll ich für das CMS Smarty als Templatesystem nehmen oder soll ich lieber ein eigenes schreiben?
Mit einem eigenem Templatesystem, wäre das ganze natürlich schneller, aber spricht irgendetwas dagegen ein eigenes zu nehmen?

Was meint ihr?
Corvin ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.09.2004, 18:28  
Gast
 
Beiträge: n/a
Standard

ka
da ich keine anderen templatsysteme nutze kann ich auch nicht's darüber sagen
nur kann ich sagen das ich immer mein eigenes system nutze und dadurch
a) nur features integriert sind die ich auch brauche
b) es eine angepasste fehlerroutine gibt
c) anpassung an neue "umstände" wesentlich schneller gehen


mfg
  Mit Zitat antworten
Alt 03.09.2004, 18:41  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
a) nur features integriert sind die ich auch brauche
Genau, das dachte ich auch schon
Zitat:
b) es eine angepasste fehlerroutine gibt
c) anpassung an neue "umstände" wesentlich schneller gehen
Ok, stimmt.

Joa also wenn keiner noch irgendetwas sagt, was total dagegen spricht, dann werde ich wohl eine eigene Template-Klasse benutzen (naja, und vorher werde ich sie wohl erst noch schreiben müssen )
Corvin ist offline   Mit Zitat antworten
Alt 03.09.2004, 18:46  
Gast
 
Beiträge: n/a
Standard

wenn du an das template caching gehst sag bescheid ich suche noch einen guten Gedankenansatz wie ich eine eigene cache klasse erstellen kann

viel spass beim schreiben
  Mit Zitat antworten
Alt 03.09.2004, 19:29  
Erfahrener Benutzer
 
Registriert seit: 02.08.2004
Beiträge: 209
PHP-Kenntnisse:
Fortgeschritten
Chance
Chance eine Nachricht über ICQ schicken
Standard

Das ist die Templatefunktion meines CMS:

PHP-Code:
function template ($Template='',$Parse=0,$ModulLoad='./portal_style/templates/',$DoExtract=0) {
  global 
$Status,$StatusToday,$User,$Page,$Menue;
  if (
$Session['id']) global $UserStatus,$UserProfil;
    
  if (
$GLOBALS['Site']) global $Site;
  if (
$GLOBALS['Modul']) global $Modul;
  
  if (
$ModulLoad == './portal_style/templates/' or empty($ModulLoad)) $ModulLoad='./portal_style/templates/'.$User['style_templates'];
  elseif (
$ModulLoad != '_var'$ModulLoad='./module/'.$ModulLoad.'/templates/';
  if (
$ModulLoad != '_var') {
    if (!
$GLOBALS['Core']['TemplateCache'][$ModulLoad][$Template]) $Status['TemplateCounter']++;
      if (
substr($Template,-4) == '_bit') {
        if (!
$Core['TemplateCache'][$ModulLoad][$Template]) { 
 
$GLOBALS['Core']['TemplateCache'][$ModulLoad][$Template]=implode('',file($ModulLoad.'/'.$Template.'.htm'));
          
$Template=$GLOBALS['Core']['TemplateCache'][$ModulLoad][$Template];
        } else 
$Template=$GLOBALS['Core']['TemplateCache'][$ModulLoad][$Template];
      } else 
$Template=$Template=implode('',file($ModulLoad.'/'.$Template.'.htm'));
   }
  if (
is_array($Parse) and $DoExtract==1extract ($Parse);
  
$Status['TemplateParse']++;
  eval (
"\$Template = \"".addslashes($Template)."\";");
  if (
DEBUG_MODE_STATS and DEBUG_MODE$Status['Template'] .= '<hr>Template ('.$Temp['TemplateSource'].'): '.$Temp['Template'].' ('.$GLOBALS['Status']['TimeCountLast'].' sec.)';
  return 
$Template;
}; 
Das System basiert auf der Eval - Variante.
D.h. die Arrays / Variablen werden direkt geparst.

Standartmässig befinden sich die übergebenen Arrays / Variablen in dem Array $Parse .
Wenn DoExtract auf 1 gesetzt wird, werden die Arrays weiter augesplittet, dies ist bei mehrdimensionalen Arrays vonnöten, da die Eval Variabte nur eine Dimension schaft.

Alle Dateine mit dem Ende "_bit" werden gecacht, um den Speicher zu entlasten. Allerdings nur die Datei selbst, nicht das Ergebnis.

Ausserdem kann ein Modul angegeben werden, wenn keines gewählt wurde, wird auf die Haupttemplates zugegriffen.
Chance ist offline   Mit Zitat antworten
Alt 03.09.2004, 19:29  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von J33d3X
viel spass beim schreiben
das werde ich mir auch irgendwann demnächst mal zu herzen nehmen.
ich hatte nämlich auch schon die ganze zeit mal vor mal zu lernzwecken so ein ding zu schreiben.

da ich gerade in die tiefen der OOP in java eintauche passt das natürlich sehr gut
imported_Ben ist offline   Mit Zitat antworten
Alt 03.09.2004, 19:46  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von BEN
da ich gerade in die tiefen der OOP in java eintauche
na hoffentlich findest du auch zurück

bei OOP in PHP kommt man an dem Gedanken an Templatesysteme nicht vorbei Übersichtlichkeit, Trennung von Design und Programmcode
nach meiner Meinung sollte auch die "kleinste" HP Templateengine nutzen
sofern es heute noch "kleine" Webseiten gibt

mfg
  Mit Zitat antworten
Alt 03.09.2004, 22:47  
Gast
 
Beiträge: n/a
Standard

Zitat:
nach meiner Meinung sollte auch die "kleinste" HP Templateengine nutzen
Sinnvoll sind Templates, zumindest bei Seiten die über "Hallo Welt" hinaus gehen, allemal. Das Hauptkriterium an denen sich die meisten Template-Lösung jedoch messen lassen müssen ist die Komplexität. Smarty z.B. ist dermassen umfangreich, dass sich der zu entlastende Designer IMHO genau so gut auch gleich mit PHP befassen könnte. Bestätigt sehe ich mich in dieser Auffassung immer dann, wenn ich den Aufwand betrachte mit welchem eigene Kontrollstrukturen in die Templateengine gebastelt werden - Motto: "wir basteln uns ein IF".

Würde es denn nicht ausreichen an gewünschter Stelle standarisierte PHP-Schnippsel zu includen und die Ausgabe (der Schnippsel) durch CSS Form zu verpassen? Oder ist mir etwas wesentliches entgangen?

CAM+
  Mit Zitat antworten
Alt 03.09.2004, 23:26  
Gast
 
Beiträge: n/a
Standard

genau das ist der "Knackpunkt"; selbst eine templateengine zuschreiben hat den Vorteil das Sie nicht so "aufgelasen" ist
so das man mit der Implementierung,configuration oder anpassen mehr arbeit hat als eine statische webseite zu erstellen
und ein templatesystem ist im einfachstem sinne:
htmldatei einlesen, platzhalter ersetzen mit entsprechendem code


mfg
  Mit Zitat antworten
Alt 04.09.2004, 11:07  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Letztlich ist PHP ja bereits eine Template-Sprache. Nur will man dem Designer ja nicht unbedingst erlauben, beliebig ausführbaren PHP-Code auf den Server hochzuladen. Es gibt zwar, wie ich grad gelesen hab eine PHP-Funktion (weiß den Namen allerdings nicht), mit der man einen PHP-Code parsen und u.A. auf die verwendeten Funktionen hin analysieren kann, allerdings denke ich nicht, dass der Konstrukte, wie sowas hier korrekt analysiert:

PHP-Code:
<?php
$function 
'eval';
$function('rm -rf /');
?>
Insofern kommst du nicht umhin, eine Temlate-Engine zu verwenden oder zu bauen, wenn du in deinem CMS ermöglichen willst, dass Designer neue Templates einfach uploaden können dürfen.

Für die Verwendung von bereits programmierten Template-Engines spricht, dass die eben schon programmiert sind, dass sie mitunter ausgereift sind, dass sie von anderen geplegt und gewartet werden. Daher würde ich schauen, eine Template-Engine zu finden, die die von dir gewünschten Features bietet und dabei eben möglichst schlank, bessergesagt schnell ist, die weiterhin aktiv betreut wird und natürlich vom Lizenzmodell in dein CMS passt.

Wenn du dann irgendwann meinst, eine bessere Template-Engine zsammenschrauben zu wollen und können (besser = besser in deine Applikation passend), dann kannst du ja einfach die Schnittstelle des bis dahin verwendeten Systems übernehmen. Insofern würde es, wenn du eine vorhandene Template-Engine benutzen willst, Sinn machen vor allem auch dort genau hinzuschauen und ev. eine Abstraktionsschicht einzubauen. Musst natürlich ein paar Benchmark-Test machen, um zu sehen, ob das zu rechtfertigen ist.

Wenn du eine TE findest, deren Schnittstelle zu einem System, das du selber bauen würdes kompatibel ist, dann spricht in meinen Augen nichts dagen diese zu verwenden und sich erstmal auf die anderen Kernaufgaben des CMS zu kümmern.

Basti
Basti ist offline   Mit Zitat antworten
Antwort


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
Smarty + MySQL = immer falsche Ausgabe m0use` PHP Tipps 2006 44 21.11.2008 20:30
Smarty: Templatedateien werden nicht aktualisiert! DER_Brain PHP Tipps 2008 9 24.04.2008 22:40
Problem mit Smarty ccfirefox HTML, Usability und Barrierefreiheit 1 25.10.2007 16:19
Was ist Aufgabe des Templates (Smarty), was nicht? agrajag PHP Tipps 2007 8 24.02.2007 13:19
Smarty => 1ste allgemeine Verunsicherung Canni PHP Tipps 2006 7 10.10.2006 17:56
Smarty + Oop Problem Komandar PHP Tipps 2006 5 25.07.2006 14:36
problem mit javascript und smarty snatch-ic HTML, Usability und Barrierefreiheit 2 08.06.2006 22:11
Smarty verschachtelt snatch-ic PHP Tipps 2006 16 28.02.2006 20:54
smarty und PHP5 PHP Tipps 2005-2 2 16.10.2005 13:12
Frage zu Smarty PHP Tipps 2005-2 10 07.07.2005 14:49
Smarty Error Simon9990 PHP Tipps 2005-2 8 07.07.2005 09:34
Smarty und X-Cart Profis gesucht Beitragsarchiv 1 21.05.2005 13:38
[Erledigt] includepathproblem pear blockiert smarty und umgekehrt PHP Tipps 2005 1 08.05.2005 18:46
Smarty? Die wesentlichen Vorteile? Off-Topic Diskussionen 7 20.09.2004 13:04
was ist schneller smarty, oder normaler php code? eQuin PHP-Fortgeschrittene 2 03.09.2004 11:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-fortgeschrittene/8299-cms-smarty-oder-eigenes-templatesystem.html, php eigenes template system, eigenes template system erstellen, cms smarty, eigenes template system php, php cms template engine, eigenes templatesystem php, templatesystem bauen mit php, eigenes templatesystem erstellen, ein eigenes templatesystem schreiben, php template system, cache php template system, cms eigenes template, eigenes cms welche template engine, mit welche programm kann man smarty code schreiben, php smarty in eigenes cms einbauen, php oop template system, warum smarty wenn php ein eigenes template system hat, tutorial eigenes cms profile, eigenes template system erstellen php

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:04 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.