PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP-Code Strukturieren


lexiphp
01.09.2010, 21:20:25
Guten Abend,
ich suche nach einer Lösunge meinen PHP-Code besser zu strukturieren. Ich würde gerne eine einzige "Auslagerungsdatei" anlegen und in dieser EINEN Datei sämtlichen Code auslagern. (Also kein include in mehreren Dateien). Ich würde dann gerne in dieser Auslagerungsdatei immer nur bestimmte Code-Schnippsel abrufen wollen. Z.B.

<html>
...
/**********************************************************
lade head bereich aus auslagerungsdatei (zeile 101 bis 112)
**********************************************************/
<?php lade ladeHead() ?>
...
</html>

Ich kann mir sowas derzeit nur mit Funktionen vorstellen, allerdings sollten diese dann absolut transparent sein. Die Werte sollten also außerhalb und innerhalb der Funktion gleich sein. Es ginge also nur darum den Code-Schnippsel über die Funktion aufzurufen und anzuzeigen. Geht sowas? Wie strukturiert ihr euren Code sauber?

Grüße Alex

jabubo
02.09.2010, 07:44:48
Ich denke am weitesten verbreitete sind für solche Vorhaben Template-Engine. Es gibt verschiedene Ansätze dabei und man sollte nicht alle über einen Kamm scheren. Die 2 beliebtesten sind dabei wohl Smarty und PHPTal. Mir gefällt letztere am besten, hat aber auch lange gedauert bis ich damit glücklich geworden bin.

Für hässlichen PHP 4 Code vor einigen Jahren habe ich es auch so gemacht wie von dir angedeutet. Den head-Bereich in eine Funktion die nur einen return macht und fertig. Funktioniert, ist schnell, aber nicht schön. :-)

cortex
02.09.2010, 09:24:56
Ich denke am weitesten verbreitete sind für solche Vorhaben Template-Engine.

template-engines haben zuerst einmal nichts mit der problemtik zu tun; ihr primäres ziel ist die trennung von logik (bspw. php-codes) und ausgabe (bspw. HTML).


Die 2 beliebtesten sind dabei wohl Smarty und PHPTal.


dass eine technologie eine breite anwenderbasis hat, heisst nicht unbedingt, dass sie beliebt ist .-)

Den head-Bereich in eine Funktion die nur einen return macht und fertig. Funktioniert, ist schnell, aber nicht schön. :-)

u.u. kann das aber ausreichend sein; insbes. für sprach-einsteiger. es muss nicht immer hightech sein; einfache dinge haben auch ihren reiz. siehe auch kiss (http://de.wikipedia.org/wiki/KISS-Prinzip).


Wie strukturiert ihr euren Code sauber?


durch oop, einen zentralen bootstrapper (http://de.wikipedia.org/wiki/Bootstrapping_%28Informatik%29) und modularisierung.

cx

lexiphp
02.09.2010, 11:42:39
Vielen Dank für Eure Beiträge, da ich ein Simple Management Fan bin, probiere ich es (ohne oop) weiterhin mit einer "einfachen" Lösung, ganz nach dem Kiss-Prinzip.

DokuLeseHemmung
02.09.2010, 12:03:23
Alles in eine Datei zu stopfen macht das Projekt nahezu unwartbar.

Wie strukturiert ihr euren Code sauber?
Ich halte mich konsequent an das Zend/Pear Benennungsschema für Bezeichner.
Ansonsten orientiere ich mich an den üblichen OOP Design Pattern.

cortex
02.09.2010, 12:16:27
Alles in eine Datei zu stopfen macht das Projekt nahezu unwartbar.

für eine web-visitenkarte ohne interaktive inhalte wie bspw. gästebuch oder kontaktformular ggfs. ausreichend.

cx

DokuLeseHemmung
02.09.2010, 13:01:52
für eine web-visitenkarte ohne interaktive inhalte wie bspw. gästebuch oder kontaktformular ggfs. ausreichend.

cx
Jawoll!
Wenn man so Kleinigkeiten wie Wiederverwendbarkeit usw. außer Betracht lässt...

Aber die Hauptfrage lautet doch:
Wie strukturiert ihr euren Code sauber?
Und das was lexiphp da vor hat, ist meines bescheidenen Erachtens weit davon entfernt.

Wenn man wirklich alles in eine Datei stopfen will/muss, dann doch damit: http://de3.php.net/manual/de/book.phar.php
So kann man eine "saubere" Struktur in eine einzige Datei pressen.
2 Fliegen mit einer Klappe.


Und ja, OOP ist kein Muss!
Andererseits wurden in die diversen OOP Sprachen , Design Pattern und Frameworks zigtausende von Ingenieur/Programmierer Stunden investiert. Viele FHs, und so weiter, beschäftigen sich seit ca 40 Jahren damit. Ich tue mich immer ein wenig schwer, wenn das einfach so in den Wind geschlagen wird.
;-)

cortex
02.09.2010, 13:44:30
Wenn man wirklich alles in eine Datei stopfen will/muss, dann doch damit: http://de3.php.net/manual/de/book.phar.php

oh... php ist immer wieder für überraschungen gut; kannte ich noch nicht.

Ich tue mich immer ein wenig schwer, wenn das einfach so in den Wind geschlagen wird.


nicht doch. andererseits muss man auch die verhältnismäszigkeit von fall zu fall im auge behalten. dazu dieser schöne artikel: why i hate Frameworks (http://benjismith.net/index.php/2005/09/30/hate-frameworks/) .-)

cx