Nimmt man __construct() nur aus Faulheitsgründen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Nimmt man __construct() nur aus Faulheitsgründen?

    Hallo,

    wozu brauch man eigentlich __construct() ?

    PHP-Code:
    function __construct($name,$land)
    {
    $this->name $name;
    $this->land $land;
    }
     
    $test = new Objekt("Hans","Deutschland"); 
    Ich meine das hier tut doch das gleiche:

    PHP-Code:
    $test = new Objekt();
    $test->name="Hans";
    $test->land="Deutschland"
    Ich sehe nämlich beim $test = new Objekt("Hans","Deutschland"); das Problem, dass per Parameter einfach Werte übergeben werden und man nur in der Klasse dann sieht was eigentlich was ist.

    Ist da nicht eine direkte und eindeutige Zuordnung $test->land="Deutschland"; besser?

  • #2
    PHP-Code:
    class Foo {
        private 
    $bar;
    }

    $foo = new Foo();
    $foo->bar 1;
    // Fatal error: Cannot access private property Foo::$bar on line 8 

    Kommentar


    • #3
      Ist da nicht eine direkte und eindeutige Zuordnung $test->land="Deutschland"; besser?
      Es liegt daran, was man erreichen will/muss!

      Die Constuctor Injection wird für Parameter verwendet, welche für die Nutzung des Objektes zwingend notwendig sind.
      Die Setter Injektion für optionale Parameter,
      Und was du meinst, da kann man ja noch nicht mal eine Type Festlegung treffen....
      Kann man für sinnvoll halten, deutet für mich aber mehr auf Faulheit, wenn ich das vorfinde.



      Tipp, füttere Google mal mit: "Dependency Injection Design Pattern"
      Wir werden alle sterben

      Kommentar


      • #4
        Sollte man eigentlich auch immer __construct() anstatt einer Methode mit identischen Klassennamen verwenden?

        Gibt's da auch irgendwelche Vor- und Nachteile?
        Zuletzt geändert von Truncate; 07.07.2014, 16:02.

        Kommentar


        • #5
          PHP: Constructors and Destructors - Manual:
          For backwards compatibility, if PHP 5 cannot find a __construct() function for a given class, and the class did not inherit one from a parent class, it will search for the old-style constructor function, by the name of the class.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar

          Lädt...
          X