Seite 1 von 1

Struktur index.php

Verfasst: 05.07.2009, 12:53
von _player
Hallo Leute,

ich habe schon einige Seite gemacht und nun habe ich mich heute mal gefragt ob meine Strukturen der Index-Datei überhaupt sinnvoll sind.

Bisher habe ich in der Index.php alles rein geschrieben und eventuelle Seiteninhalte per inlcude geladen.

Bei einem größeren Projekt frage ich mich nun ob das vielleicht zu unüberschaubar wird.

Wie sehen eure Dateien aus?! Würde mich über einige schöne Beispiele freuen.

Danke im Voraus

Verfasst:
von

Verfasst: 05.07.2009, 15:02
von PHPSchmied
Ist schon richtig so vom Ansatz her.
Nunja meine index.php:

<?php
include_once('class/main.class.php');
$main = new main();
?>

aber da ist auch ein komplettes Modul und TTemplate System drum rum gebaut. Also Rate ich dir ebenfalls ein solches mini Framework zu erstellen das du für jedes Projekt verwenden kannst.

Verfasst: 06.07.2009, 16:26
von Outman
Wieso sollte man ein neues Framework entwickeln? :wink: Verwende lieber ein bestehendes System wie z.B. Smarty und du wirst in Zukunft Dir viel Ärger und Zeit ersparen.

Versuche dein System so aufzusetzen, damit ein anderer schnell damit zurechtkommt. Denn sollte deine Webseite wachsen, musst du wohl oder übel andere Leute einstellen. Wenn diese erst ein haufen Stunden mit der Einarbeitung der einzelnen Seite sich beschäftigen müssen, kann es teuer werden.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 06.07.2009, 22:41
von PHPSchmied
Hab mir den Smarty Quellcode angeschaut. Nichmal die Grundlegensten Code Convention kenn das Teil. Da sitz ich erstmal paar Tage um den hässlichen Quellcode zu formatieren. Und der ist nicht gerade wenig - ich setz auf schlanke übersichtliche Frameworks die nicht so viel schnick schnack haben.

Ein Framework mit Template System, einfache MySQL Klasse und Modulfähigkeit gibt es schon für ein paar zeilen Quellcode.

Verfasst: 07.07.2009, 06:18
von Outman
PHPSchmied hat geschrieben:Hab mir den Smarty Quellcode angeschaut. Nichmal die Grundlegensten Code Convention kenn das Teil. Da sitz ich erstmal paar Tage um den hässlichen Quellcode zu formatieren. Und der ist nicht gerade wenig - ich setz auf schlanke übersichtliche Frameworks die nicht so viel schnick schnack haben.

Ein Framework mit Template System, einfache MySQL Klasse und Modulfähigkeit gibt es schon für ein paar zeilen Quellcode.
Natürlich gibt es für verschiedene Anwendungen bessere Frameworks als wie Smarty. Aber Du wirst sehen, es ist mit einer der Template Systeme, wo sich die meisten Programmierer damit auskennen. Sobald man in ein Team arbeitet ist so was immer von Vorteil. Hier mal für Dich eine kleine Anleitung, wie man Smarty recht einfach verwenden kann. -> https://www.webmaster-eye.de/Arbeiten-m ... tikel.html

Verfasst: 07.07.2009, 13:55
von PHPSchmied
Egal wie einfach es ist - ich habe 1x Template Klasse die besteht aus 62 zeilen (Smarty knapp ~100.000 Tausend zeilen) und das teil kann in template Arrays und normale variablen ersetzen. Reicht völlig ist schnell und universell. Zudem lässt sich die Klasse in andere Sprachen schneller umschreiben. Versuch mal Smarty für Java/.NET umzuschreiben.

Überzeug jemand anderen davon - mich wirste nie dafür begeistern können.

Verfasst: 07.07.2009, 14:08
von Nullpointer
da beißt sich eh immer die katze in den schwanz. templates sollen den code vom layout trennen und dann blasen sich die templatesysteme zu eigenen programmiersprachen auf. welcher designer kann denn ohne einarbeitung komplexere smarty templates editieren?

Verfasst: 07.07.2009, 14:17
von everflux
Warum sollte man smarty für java oder .net "umschreiben"? Je nach Plattform hat man dort etablierte Bibliotheken oder Frameworks.
Für manche Sachen ist Smarty gut, für andere weniger gut geeignet. Ich denke nicht, dass es die eierlegendewollmilchsau gibt.
Aber bei einer Sache bin ich mir sicher: Wenn man Smarty "nur" verwendet, braucht man den Quellcode nicht umzuformatieren. Einfach nicht anfassen und die Updates von den Smarty Entwicklern machen lassen.

Verfasst: 07.07.2009, 14:58
von Lord Lommel
Ich benutze nur Smarty, resp. eine davon abgelittene eigene Klasse. Bis jetzt hab ich noch keinen Fall erlebt, wo Smarty kapituliert hat und es eine andere, mir bekannte, Engine gepackt hätte. Klar ist sowas wie der php-Tag fragwürdig, aber Code und Design zu trennen ist oftmals gar nicht so einfach.

Verfasst: 07.07.2009, 15:35
von mgutt
Nullpointer hat geschrieben:da beißt sich eh immer die katze in den schwanz. templates sollen den code vom layout trennen und dann blasen sich die templatesysteme zu eigenen programmiersprachen auf. welcher designer kann denn ohne einarbeitung komplexere smarty templates editieren?
Genau das ist der Grund, warum solche Systeme in meinen Augen totaler Unsinn sind.

Ich habe mal ein System gebastelt, dass ich bisher noch nirgends gesehen habe.

Ich binde in der index.php Kopf und Fuß ein und beim Inhalt arbeite ich mit separaten Files, deren Inhalte ich mit Switches einbinde z.B. so:

Code: Alles auswählen

<?php
switch &#40;$c&#41; &#123;
	case 'title'&#58;
?>Ich bin ein Titel<?php
	break;
	case 'meta_desc'&#58;
?>Ich bin eine Beschreibung<?php
	break;
	case 'meta_keys'&#58;
?>ich, bin, die, suchwörter<?php
	break;
	case 'headline'&#58;
?>Ein lustiger H1 Titel<?php
	break;
	case 'content'&#58;
?>Hier kommt der schöne lange Text<br />
Lustiges <b>HTML</b> wie man es beim Editor gewohnt ist. Bei Bedarf sogar mit WYSIWYG-Editor.<br />
PHP geht auch&#58;<br />
<?= date&#40;"d.m.Y"&#41; ?><br />
<br />
<?php
	break;
	case 'footer'&#58;
?>Ich erscheine unter dem Inhalt<?php
	break;
&#125;
?>
So binde ich dann die Inhalte ein:

Code: Alles auswählen

<?php
$p = isset&#40;$_GET&#91;'p'&#93;&#41; ? basename&#40;$_GET&#91;'p'&#93;&#41; &#58; '';
if &#40;!$p || !file_exists&#40;'content/' . $p . '.php'&#41;&#41; &#123;
	$p = 'index';
&#125;
?>
<html>
<head>
<title><? $c = 'title'; include&#40;'content/' . $p . '.php'&#41;; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="<? $c = 'meta_desc'; include&#40;'content/' . $p . '.php'&#41;; ?>">
<meta name="keywords" content="<? $c = 'meta_keys'; include&#40;'content/' . $p . '.php'&#41;; ?>">
</head>

<body>

<div id="content">
	<h1><? $c = 'headline'; include&#40;'content/' . $p . '.php'&#41;; ?></h1>
	<? $c = 'content'; include&#40;'content/' . $p . '.php'&#41;; ?>
</div>

<div id="footer">
	<? $c = 'footer'; include&#40;'content/' . $p . '.php'&#41;; ?>
</div>

</body>
</html>
Der Vorteil ist, dass man parallel ein CMS haben kann, wenn man niemanden auf den FTP-Teil zugreifen lassen möchte. Das CMS könnte dann die Dateien im Verzeichnis "content/" erstellen. Was man erlaubt (HTML, PHP, etc.) kann man dann ja selber über das CMS steuern. Ich arbeite nur alleine, daher bleibe ich nur beim FTP-Teil und erstelle die Dateien von Hand.

Verfasst: 07.07.2009, 20:18
von Outman
Huhu,

so ich muss mich hier noch mal melden, Smarty ist nur ein Templatesystem womit man den Php Code vom Template schön trennen kann, man hat z.b. mit den Zend Framwork die Möglichkeit Smarty als Templatesystem zu verwenden. Ein Beispiel dafür https://framework.zend.com/manual/de/ze ... ripts.html

So und hier noch ein schöner Beitrag "10 Gründe gegen den Einsatz von PHP Frameworks" -> https://www.phphatesme.com/blog/wtf/10- ... rameworks/

Wenn Ihr den Beitrag gelesen habt, dann könnt Ihr hier mitreden. Es gibt noch viel mehr Gründe, aber diese Gründe zeigen Euch auch die vielen Vorteile und ich hoffe, dass ich dadurch Euch ein wenig die Augen geöffnet habe.

Grüße Nico

Verfasst: 07.07.2009, 21:01
von mgutt
Das einzige was man trennt ist HTML und PHP. Der Designer muss aber trotzdem PHP können bzw. sich mit einem PHPler austauschen, um Inhalte dynamisch ausgeben zu können. Es ist faktisch überhaupt nicht möglich, nur im HTML-Teil zu arbeiten, außer die Seite besteht nur aus statischen Inhalten. Egal was man darstellt, man muss im PHP-Teil erstmal die Daten generieren und dann im Template zuweisen. Unter dem Strich heißt das doppelte Arbeit.

Den einzigen Vorteil, den ich dabei sehe, ist die bessere Übersicht über die HTML-Datei. Die Nachteile sind dabei aber nicht von der Hand zu weisen: Mehr Speicherverbrauch, weniger Leistung, höhere Zugriffszeit, neue "Sprache", etc. Vergleich mal das von mir gezeigte Konzept in einem Benchmark mit Smarty & Co.

Kommt natürlich darauf an, wo man seine Prioritäten setzt, aber für mich ist Leistung und schnelles Arbeiten das Wichtigste.

Verfasst: 07.07.2009, 21:10
von everflux
Ich möchte natürlich keine Flamewars anheizen - jedoch ist die Idee natürlich nicht php-in-smarty (oder einer anderen template engine) nachzubauen.
optimalerweise hat der programmierer alle objekte zur verfügung gestellt und der designer kümmert sich lediglich um - ratet - das styling :)

Natürlich ist die Geschwindigkeit nicht wie pures PHP. Assembler ist wohl auch schneller als Pascal - aber es gibt ja noch andere Aspekte: Wartbarkeit, Erweiterbarkeit und Skalierbarkeit. Auch bei der Entwicklung/ den Entwicklern.

Verfasst: 07.07.2009, 21:21
von Outman
Naja ich verwende auch nicht überall Smarty, da es nicht immer Sinn macht. Bei Projekten wo mehre Leute dran arbeiten, macht es schon Sinn und man muss sich so oder so Gedanken um ein gescheite Struktur machen.

Am Ende wird man sowieso nicht um ein MVC Framework -> https://de.wikipedia.org/wiki/Model_View_Controller kommen, meist kommt der Umbruch bei den Leuten, wenn ein Projekt mehr Last macht als ein Server verkraften kann.

Ohne ein MVC Framework kommt man hier an die Grenzen bei der Umgestaltung des Codes und man kann dann meist nicht mehr viel machen.