Jak vytvořit v PHP virtuální třídu?

Kit

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #15 kdy: 19. 01. 2018, 15:41:50 »
Tak preco si na zaciatku skriptu nevytorite "singleton" tej triedy?

K čemu singleton? Vždyť ten objekt vytvoří jen jednou a bude si ho předávat přes parametry.


phpman

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #16 kdy: 19. 01. 2018, 15:45:38 »
Jasně, budu zbytečně vláčet objekt který potřebuji v 99% všech tříd..

Kit

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #17 kdy: 19. 01. 2018, 15:57:21 »
Jasně, budu zbytečně vláčet objekt který potřebuji v 99% všech tříd..

Přesně tak se to má dělat.

Sten

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #18 kdy: 19. 01. 2018, 16:00:37 »
Čuchám, čuchám trolla.

https://ideone.com/o7RNJs

Kit

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #19 kdy: 19. 01. 2018, 16:23:59 »
...

Tyhle nechutnosti z Javy bych do PHP fakt netahal.


Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #20 kdy: 19. 01. 2018, 19:56:54 »
Dotaz mi připadá trochu zmatený, nicméně je asi sháňka po statické metodě, která by automaticky inicializovala statické třídní proměnné. V javě na to je static blok, v php to asi nejde. Udělat bych si místo toho singletona (https://stackoverflow.com/a/3312860) anebo si ve vlastním autoloaderu po nahrání třídy zavolat tu inicializaci:

Kód: (php) [Vybrat]
<?php
// index.php:

spl_autoload_register(function($class) {
    include 
$class '.php';
    
$class::__static();
});

print(
Constants::CONST_A);
print(
Constants::$constB);
print(
"\n");

?>

<?php

// Constants.php:

class Constants {

    const 
CONST_A 'A';
    public static 
$constB;

    public static function 
__static(){
        
self::$constB 'B';
    }

}

?>


Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #21 kdy: 19. 01. 2018, 19:58:37 »
Dotaz mi připadá trochu zmatený, nicméně (...)

Anebo bych si udělal instanci a tu všude vláčel, jak říká Kit.

phpman

Re:Jak vytvořit v PHP virtuální třídu?
« Odpověď #22 kdy: 19. 01. 2018, 22:27:04 »
Dotaz mi připadá trochu zmatený, nicméně je asi sháňka po statické metodě, která by automaticky inicializovala statické třídní proměnné. V javě na to je static blok, v php to asi nejde.
Tak jsem to vyřešil obyčejnou funkcí, dostupná je všude a ještě to bude kratší pro zápis.