php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 14.11.2005, 21:31  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard Ab welcher Projektgröße lohnt sich OOP?

Hallo,
ich sitze gerade an einer Mini-Aufgabe und habe dafür nen Haufen Klassen und Verwaltungs-Klassen erstellt. Wie so oft war für mich der Weg das Ziel (allerdings muss das Ziel auf morgen fertig sein) und ich habe wieder elendig lang gebraucht.

Klassen:
MovieManager
Movie
Actor
Director
etc.

Ab welcher Projektgröße lohnt sich der Einsatz eigentlich, denn ich bin mir sicher, ich hätte es prozedural mindestens doppelt so schnell hinbekommen. Oder liegt das eher an meiner wohl mangelnden praktischen Erfahrung, dass ich mit OOP deutlich langsamer bin?

Wie schnell ist bei euch der Zeitunterschied beim kompletten Erstellen (Konzeption, Programmierung, Testen) bei OOP vs Prozedural?

Klar braucht OOP immer etwas länger und ist damit aber auch gleich wiederverwendbar, aber dass ich soviel länger brauche...Oder ist der Betreff falsch gewählt und es müsste heißen, ab der wievielten Wiederbenutzung lohnt sich OOP?
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.11.2005, 21:41  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard Re: Ab welcher Projektgröße lohnt sich OOP?

Zitat:
Zitat von Zergling
Wie schnell ist bei euch der Zeitunterschied beim kompletten Erstellen (Konzeption, Programmierung, Testen) bei OOP vs Prozedural?
Ich habe mich noch nicht gebenchmarkt
Aber klar, ich denke man kann sagen, dass objektorientiertes Programmieren ein wenig zeitaufwendiger ist.

Zitat:
Zitat von Zergling
Ab welcher Projektgröße lohnt sich der Einsatz eigentlich [...]?
Ich arbeite eigentlich viel objektorientiert, die OOP kommt bei mir auch schon bei nicht ganz so großen Projekten zum Einsatz, da ich es einfach übersichtlicher und angenehmer finde, objektorientiert zu programmieren. Weiterhin finde ich den modularen Aufbau und die Wiederverwendbarkeit des Codes sehr vorteilhaft.
Corvin ist offline   Mit Zitat antworten
Alt 14.11.2005, 21:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Und benutzt du größtenteils die Klassen auch wieder (außer ganz alltäglichen Klassen wie vielleicht der eigenen DB-Klasse) oder machst du sie letztlich dann doch neu (so ist das leider bei mir manchmal)?

Wie siehts mit PEAR aus, benutzt du/ihr das und bringt das einen nicht unerheblichen Zeitgewinn?
Zergling-new ist offline   Mit Zitat antworten
Alt 14.11.2005, 21:53  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Zergling
Und benutzt du größtenteils die Klassen auch wieder (außer ganz alltäglichen Klassen wie vielleicht der eigenen DB-Klasse) oder machst du sie letztlich dann doch neu (so ist das leider bei mir manchmal)?
Meine Template-Klasse, sone Art Konfigurations-Klasse, einen Error-Handler und eine Klasse mit ein paar Hilfsfunktionen verwende ich hauptsächlich wieder.

Zitat:
Zitat von Zergling
Wie siehts mit PEAR aus, benutzt du/ihr das und bringt das einen nicht unerheblichen Zeitgewinn?
PEAR kommt bei mir wenig zum Einsatz, weil ich in Sachen Programmierung zu den Leuten gehöre, die immer alles selbst machen wollen
Corvin ist offline   Mit Zitat antworten
Alt 14.11.2005, 22:16  
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 Corvin Gröning
Zitat:
Zitat von Zergling
Und benutzt du größtenteils die Klassen auch wieder (außer ganz alltäglichen Klassen wie vielleicht der eigenen DB-Klasse) oder machst du sie letztlich dann doch neu (so ist das leider bei mir manchmal)?
Meine Template-Klasse, sone Art Konfigurations-Klasse, einen Error-Handler und eine Klasse mit ein paar Hilfsfunktionen verwende ich hauptsächlich wieder.

Zitat:
Zitat von Zergling
Wie siehts mit PEAR aus, benutzt du/ihr das und bringt das einen nicht unerheblichen Zeitgewinn?
PEAR kommt bei mir wenig zum Einsatz, weil ich in Sachen Programmierung zu den Leuten gehöre, die immer alles selbst machen wollen
Dito.

Ich verwende eigentlich meine Klassen immer irgendwo mal wieder, besser sie aus .. etc.
imported_Ben ist offline   Mit Zitat antworten
Alt 14.11.2005, 22:50  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Eigentlich immer OOP selbst wenns nur Kleinigkeiten sein aber da wo sich ein Objekt anbietet setzt ich es auch ein. Meistens kommen bei mir die Klassen nie zum 2. Einsatz außer bei so Klassen wie Datenbankschnitstelle, RandomString Generator oder zb. n ThumbCreator aber alle anderen Klassen landen irgendwo im Archiv und werden dort auch begraben

Aber der Vorteil von OOP liegt klar auf der Hand nämlich der modulare Aufbau des Codes späteres austauschen geht "fast" problemlos.

Ich hab mal von irgendjemanden gehört das OOP Performancelastiger sei aber das halte ich persönlich für unwahrscheinlich es sei den ich instanziere 50.000 Objekte
HStev ist offline   Mit Zitat antworten
Alt 14.11.2005, 22:58  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

OOP hat ja auch den Ansatz was schon geschaffenes wieder benutzen zu können ... egal wie klein es ist ... ist es arbeit ...
robo47 ist offline   Mit Zitat antworten
Alt 15.11.2005, 08:46  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von robo47
OOP hat ja auch den Ansatz was schon geschaffenes wieder benutzen zu können ... egal wie klein es ist ... ist es arbeit ...
Das ist ein Argument ;-) Und prozedurales Zeug etwa nicht? Wenn man es richtig macht, dauert das Lösen einer Aufgabe mit prozeduralem Code wahrscheinlich noch länger als mit der OOP.

Nehmen wir mal an, ich schreib einen Request-Container, also ein Skript, das den Request zur Verfügung stellt:

Code:
class SRequest {
    var $args = array(); // Argumentnamen
    var $argv = array(); // Argumentwerte
    var $argc = 0; // Anzahl der Argumente
}

function &request_create()
{
    $req = new SRequest();

    // hier füll ich die Argumente von $_POST/$_GET in diese Instanz

    return $req;
}

function request_delete($request)
{
    unset($request); // nur der förmlichkeit halber, funktioniert natürlich nicht
}

function request_get_arg($request, $argname)
{
    // Schleife, die den Argumentnamen sucht und den Wert zurückgibt
}


function request_set_arg($request, $argname, $argvalue)
{
    // Schleife, die den Argumentnamen sucht und den Wert ändert, bzw den Argumentnamen neu anlegt
}

// usw.
Ich nutze Klassen als C-ähnliche Strukturen. Angewandt wird das dann folgendermaßen:

Code:
include_once("request.php");

$req = &request_create();
$seite = request_get_arg(&$req, "seite");
request_delete(&$req);
  Mit Zitat antworten
Alt 15.11.2005, 09:43  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Naja für C-Strukturen könnte man genauso gut Assoc Arrays nehmen

Mann hat halt mit Klassen - vor allen in PHP5 durch die Magic Functions __get und __set - die Möglichkeit das Füll- und Rückgabeverhalten der Eigenschaften zu beeinflussen.

Genauso wie es jetzt mittels __call möglich ist Methoden zu überladen wenn es auch auf den 1. Blick etwas merkwürdig aussieht.

PHP-Code:
<?php
class MethodNotExistsException extends Exception {}
class 
Foo
{
    public function 
__call($methode$params)
    {
        
$FUNCTION "_" $methode "_" ;
        
        foreach (
$params as $param)
        {
            
$FUNCTION .= '_' gettype($param);
        }
        
        if (!
method_exists($this$FUNCTION))
            throw new 
MethodNotExistsException();
        
        return 
call_user_method($FUNCTION$this$params);
    }
    
    protected function 
_bar__string_string($params
    {
        return 
$params[0] . $params[1];
    }
    
    protected function 
_bar__string_integer($params)
    {
        
$ret "";
        for (
$i=1$i<= $params[1]; $i++)
        {
            
$ret .= $params[0];
        }
        return 
$ret;
    }
}

$F = new FOO();

echo 
$F->bar("Hallo ""Welt");
echo 
"
"
;
echo 
$F->bar("Hallo
"
3);
?>
HStev ist offline   Mit Zitat antworten
Alt 15.11.2005, 09:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ja ich geb zu, bei mir ist gestern auch der Knoten geplatzt und plötzlich gingen die "kompliziertesten" Aufrufe mit ein paar Instanzierungen und Methodenaufrufen. Sehr fein

Frage an euch noch, benutzt jemand den Debugger der in der ZDE4/5 eingebaut ist oder welchen benutzt ihr? Und wie kann man damit GET oder POST-Parameter mitübergeben?

Edit: LOL wie krass. Sieht voll unübersichtlich aus, aber ist nen Versuch wert, kannte ich nocht garniht ^^
Zergling-new 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
[Erledigt] Wann lohnt sich AJAX Mikay Kun Off-Topic Diskussionen 6 23.07.2008 17:55
Abfrage in Funktion auslagern - lohnt sich das? tayke Datenbanken 4 15.11.2007 23:36
PHP-Magazin: Lohnt es sich? snatch-ic Off-Topic Diskussionen 15 14.05.2007 16:00
Lohnt sich der Kauf ? robo47 Off-Topic Diskussionen 13 02.07.2005 12:17
Lohnt sich ein Datenbankumdesignen faux Datenbanken 3 30.05.2005 19:42
Lohnt sich Linux? Server, Hosting und Workstations 38 24.12.2004 15:10
novell systems - lohnt sich das für ein privates netzwerk? Off-Topic Diskussionen 3 30.10.2004 21:15

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
wann lohnt sich objektorientierte programmierung, ab wann lohnt sich objektorientierung, projektgröße klassen, webseiten objektorientiert php, php ab wann oop, php lohnt sich oop, wie schnell ist oop, ab wann projekt größe, wann lohnt sich oop mit php, php: geschwindigkeit oop vs prozedural, php framework projektgrösse, php website erstellen oop vs. prozedural, lohnt sich der einsatz von zend?, wann lohnt sich oop, einsatz oop, ab wann lohnt objektorientiert, wann objektorientiert programmieren, lohnt sich objektorientierte programmierung

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