Hirdetés

Keresés

Új hozzászólás Aktív témák

  • PazsitZ

    addikt

    válasz Speeedfire #9712 üzenetére

    Persze
    A Yii-nél a model() egy static osztálypéldáyosítás.
    lásd pl. singleton pattern esetén. is static hívással pédányosítod az osztályt (persze ott a lényeg, hogy mindig csak egy objektum példány létezik).

    Lényegében ez egy shortcut. a példádban is első eset 2 sor második egy sor és rögtön fűzhető a query. sőt, mivel mindegyik query építő AR model fgv. az objektummal önmagával tér vissza így szépen fűzhetőek a hívások.
    Modelnev::model()
    ->with('masikTabla')
    -> ...
    ->findbypk(2);

    PHP 5.4-től viszont már lehet többek között majd ezt is:
    (new Modelnev)->findbypk(2);

    De végiggondolva a static fgv. hívás valahol jogosan megengedhető akár példánycontext felől is.

    $keresendo_elem = new Modelnev;
    $keresendo_elem->model();
    Modelnev::model();

    Mivel a static fgv nem függ az objektumtól miért ne lehetne hívni objektumból?
    Visszafele nem igaz, mert egy objektum állapotától adattagjaitól függő metódust meghívsz egy osztályra, ami nem példány, akkor ugye mit kezdjen a method a nem létező példánytagok nélkül?

Új hozzászólás Aktív témák