fastix®: OOP: Aufteilung der Aufgaben innerhalb einer Anwendung

Beitrag lesen

Moin!

Aber genau das ist doch der Grund, warum ich OOP auf einem Interpretersystem für Nonsense halte.

Bitte nicht, das ist zu allgemein. Es gibt in vielen Skriptsprachen eine ganze Reihe von "natürlichen" Objekten haben (z.B. VBA und JS) und einige Objekte, die ich mir gerne - gut dokumentiert - für jede Programmiersprache wünschen würde.

Allein, wenn ich mir JS anschaue, da ist der Objektansatz viel ausgeprägter und er macht absolut Sinn, denn document, window selbst strings und arrays sind "native Objekte" und deren Eigenschaften will man ändern oder deren Methoden nutzen. Der ständige Wechsel zwischen der Verwendung nativer Objekte und Funktionen ist da schon sehr anstrengend und führt zu einen hohen Zuckerverbrauch. Wie oft habe ich in PHP schon $int=$array.count() notiert?

Mich ärgert z.B. immer wieder, dass es in PHP eine ganze Menge Funktionen nur für Arrays oder Strings gibt. Warum sind die nicht als Methoden angelegt? z.B. count(). Warum macht man so ein iniSet/iniGet- Geschwuchtel, statt $PHP kurzerhand als wunderbares Objekt zu behandeln in dem auch so Sachen wie ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush(), ob_gzhandler(), ob_iconv_handler(),  mb_output_handler() und ob_tidyhandler() als Methode oder Eigenschaft angelegt sind?

Dito Datenbanken. Da gibt es "Quasi-Handler", "Result-Sets" (also: $DB=mysql_pc_connect(); $result=mysql_query($DB, $sql); ), etliche nur darauf bezogene Funktionen die nicht mal ein Argument brauchen (und so definitiv zur Schlampigkeit verführen)  - aber warum kein Objekt mit dem man etwa wie folgt umgehen kann oder, noch besser, muss:

$objDB = new Database;  
$objDB->type             = 'mysql';  
$objDB->host             = 'foo';  
$objDB->port             = 3306;  
$objDB->user             = 'bar';  
$objDB->passwd           = 'foobar';  
$objDB->shema            = 'barfoo';  
$objDB->PersitentConnect = true;         # false  
$objDB->connectType      = CONNECT_COMPRESSED; # CONNECT_SSL, CONNECT_COMPRESSED_SSL, RAW  
$objDB->connect();  
  
[code lang=php]$objResult=$objDB->execQuery($sql);

(Und ab hier hat man wieder das Theater mit den Arrays/Hashes.)

Wäre es an dem, dass PHP konsequenter wäre, dann würde wahrscheinlich vielen der objektorientierte Ansatz auch besser gefallen. Aber so ist PHP zumindest anfangs offensichtlich als prozedurale Sprache entwickelt worden - und daran, inklusive der resultierenden Macken, hält man gerne fest.

fastix

1 60

OOP: Aufteilung der Aufgaben innerhalb einer Anwendung

Der-Dennis
  • programmiertechnik
  1. 0
    Sven Rautenberg
    1. 0
      Der-Dennis
      1. 5
        Sven Rautenberg
        1. 0
          Der-Dennis
        2. 0
          fastix®
  2. 2
    fastix®
    1. 0
      Der-Dennis
      1. 0
        fastix®
        1. 0
          Der-Dennis
      2. 0
        Sven Rautenberg
        1. 0
          Der-Dennis
        2. 0
          fastix®
          1. 0
            Tom
            1. 1
              fastix®
              1. 0
                dedlfix
                1. 0
                  fastix®
              2. 0
                Sven Rautenberg
  3. 1
    Tom
    1. 0
      Der-Dennis
      1. 0
        Tom
        1. 2
          Der-Dennis
          1. 0
            Tom
            1. 0
              Der-Dennis
              1. 0
                Tom
                1. 0
                  Der-Dennis
                  1. 0
                    fastix®
                    1. 0
                      flowh
                      1. 0
                        Tom
                        1. 0
                          fastix®
                    2. 0
                      Der-Dennis
        2. 0
          Christian Seiler
          1. 0
            Tom
    2. 3
      Blaubart
      1. 0
        Tom
        1. 5
          Blaubart
  4. 1
    dedlfix
    1. 0
      Der-Dennis
      1. 0
        Der-Dennis
        1. 0
          fastix®
          1. 0
            Der-Dennis
            1. 0
              dedlfix
              1. 0
                Der-Dennis
                1. 0
                  fastix®
                  1. 0
                    Der-Dennis
                    1. 0
                      fastix®
                      1. 0
                        Der-Dennis
                        1. 0
                          fastix®
                          1. 0
                            Der-Dennis
  5. 0
    hotti
    1. 0
      Der-Dennis
      1. 0
        hotti
        1. 0
          Der-Dennis
          1. 1
            hotti
            1. 0
              Der-Dennis
        2. 0
          fastix®
          1. 0
            Tom
            1. 0
              fastix®
    2. 0
      dedlfix
  6. 0

    Danke für Eure Meinungen!

    Der-Dennis