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 »
Citace od: Mufasa kdy 19. 01. 2018, 15:38:24
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 »
Citace od: phpman kdy 19. 01. 2018, 15:45:38
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 »
Citace od: Sten kdy 19. 01. 2018, 16:00:37
...

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 »
Citace od: Ondrej Nemecek kdy 19. 01. 2018, 19:56:54
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 »
Citace od: Ondrej Nemecek 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.
Tak jsem to vyřešil obyčejnou funkcí, dostupná je všude a ještě to bude kratší pro zápis.