PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   OOP (http://www.selfphp.de/forum/showthread.php?t=19079)

Area51 07.04.2008 21:17:52

OOP
 
Moin ihrs ;)
Ich bin gerade dabei, ein GB auf OOP-Basis zu entwickeln. Doch nun eine Frage, da ich glaube, ich hab etwas missverstanden:
Ich hab eine Datei namens getEntries.class.php, in der (wie der Name schon sagt), alle Einträge, die aktiviert sind, aus der DB geladen und in einem Array gespeichert werden. In einer anderen Datei (display.php) wird lediglich die Datei getEntries.class.php eingebaunden, ein neues Objekt $entries gestartet und die Methode $entries -> loadEntries () aufgerufen.

Sieht also etwa so aus:
PHP-Code:

// Include entry class
require_once ($class_dir.'/getEntries.class.php');

// New instance of getEntries
$entries = new getEntries;

// Load and display
$entries -> loadEntries (); 

Wäre das im Sinne von OOP, ober hab ich da etwas verrafft?

ksticker 07.04.2008 21:39:15

AW: OOP
 
Meiner Meinung nach erfüllt OOP eigentlich nur dann einen wirklichen Zweck wenn, Aufgaben sich öfters wiederholen, oder wiederholen könnten.
Also wenn ein Script wiederverwendbar sein soll.

Zum Beispiel schreibe Ich gerade einen Editor für meinen Adminbereich, nun hatte ich festgestellt, das sich verschiedene Aufgaben immerwieder wiederholen, also das Anzeigen der Datensätze, das Bearbeiten, das Löschen etc.
Nun bin ich also Dabei eine Klasse zu schreiben wo ich nur die Tabellen, Spaltennamen und Aktionen angebe. Den Rest soll mir die Klasse abnehmen.

Area51 07.04.2008 21:41:52

AW: OOP
 
Das tut sich bei mir doch auch ;)

ksticker 07.04.2008 21:47:06

AW: OOP
 
Ich meinte das eher so:
Wenn Du das Script kopieren und nur abwandeln müsstest, weil Du wo anders eine ähnliche Problemstellung vorfindest.
Wenn das bei Dir zutrifft, dann kannst Du eine Klasse verwenden aber
wenn Du wahrscheinlich ni auf eine ähnliche Problemstellung treffen wirst ist es wohl eher schwachsinn extra eine Klasse dafür zu schreiben.

Hoffe ich konnte Dir helfen :-)

Area51 07.04.2008 21:56:15

AW: OOP
 
Also als Beispiel:
Im ACP möchte ich folgende Optionen anbieten: DB-Tables reparieren / optimieren / analysieren.

Da sich die Queries nur um ein Schlüsselwort unterscheiden und sonst alles identisch wäre, könnte ich dort eine Klasse verwenden, richtig?

ksticker 07.04.2008 22:03:41

AW: OOP
 
Würde ich Dir nicht empfehlen, das der Aufwand dem Nutzen nicht gerecht wird.
Wann man eine Klasse nimmt und wann nicht, muss man ins Verhältnis Aufwand/ Nutzen setzten.

ascer 08.04.2008 02:59:37

AW: OOP
 
dazu sollte aber auch gesagt werden, finde ich, dass sich der Aufwand auch bei komfortableren programmieren relativiert...

Soll heissen, für manche Sachen (finde ich es zumindest) deutlich einfacher, eine Klasse zu schreiben, als Funktionen o.Ä. zu benutzen...

Ich hatte z.B. mal ein Projekt, wo ein Intranet schon vorhanden war, dieses aber sehr veraltet und nur halbfertig war...ich sollte also vorhandene Variablen/Schnittstellen übernehmen aber z.B. die Rechteverwaltung neuprogrammieren...aufgrund des veralteten/halbfertigen Intranets konnte ich die Klasse auch nie wieder gebrauchen, weil sie speziell auf das Projekt angepasst werden musste und eine freiere bzw. "wiederverwertbarere" Klasse zuviel Aufwand war....

Fazit: sie erfüllt bis heute nur diesen einen Zweck, ABER die Rechteverwaltung und teilweise neue Features für einen eingeloggten Member (die ebenfalls ich basteln sollte) ließen sich (finde ich zumindest) deutlich leichter bzw. komfortabler programmieren mit der Klasse...


gruß,
Ascer

+gruß und frohes Schaffen an ksticker ;-)

cortex 08.04.2008 10:01:44

oop
 
@ area51: jepp - sieht wie oop aus. mein tip: benutze zur einbindung der klassen kein include / require, sondern autoload. bei grösseren projekten wird es sonst unübersichtlich + aufwändig.

PHP-Code:

function __autoload$class )
{
    require 
'/classes/'.$class.'.php';


@ksticker: oop ist nicht nur eine frage der wiederverwendbarkeit des quellcodes bzw. des aufwand-nutzen-verhältnis. es ist ebenso eine "designphilosophie" aka programmierstil und kann - richtig angewendet - eine wohlgeformte projektstruktur unterstützen.

Zitat:

[...] ist es wohl eher schwachsinn extra eine Klasse dafür zu schreiben [...]
ich arbeite bei grossen projekten ausschliesslich mit klassen aus oben genannten gründen. einen "extra" aufwand empfinde ich dabei nicht. oop kann auch ganz einfach sein .-p

cx

ksticker 08.04.2008 15:51:52

AW: OOP
 
Zitat:

Zitat von ascer (Beitrag 114688)
deutlich einfacher, eine Klasse zu schreiben, als Funktionen o.Ä. zu benutzen...

Eine Klasse besteht im Prinzip auch nur aus Funktioen(Methoden) und Variablen Gell

Wenn man eine Klasse benutzt oder wenn nicht, ist immer eine Ermessensfrage.
Denn es ist doch "ein wenig" aufwändiger eine Klasse zu schreiben.
Für ein kleines, simpes Subprojekt wie ein Kontaktformular oder Gästebuch würde ICH wohl ni anfangen eine Klasse zu schreiben.
Aber wie gesagt, das ist eine Ermessensfrage und wenn man seine Ordnerhirachie ordentlich führt ist die Übersichtlichkeit auch gegeben.

|Coding 08.04.2008 16:18:41

AW: OOP
 
Es geht aber weniger um die Struktur im Dateisystem, sonder mehr um die Struktur des Codes.

Ein prozeduraler Programmierstil hat doch deutliche Nachteile gegenüber einer objektorientierten Variante. Wie man es nun macht, ist jedem selbst überlassen, kommt ja auch darauf an, ob man überhaupt in der Lage ist, durchdacht objektorientiert zu programmieren. Kann man das, dann ist OOP nicht mehr, sondern ehr weniger Aufwand, von Pflege, Ausbaumöglichkeiten und der Bugfixerei mal ganz abgesehen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:28:45 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.