Closed jakubboucek closed 5 years ago
@jakubboucek Vypadá to fajn, ještě bych se zamyslel nad tím $this->pluginDirUrl = plugin_dir_url($pluginMainFile);
, máme to tam teď na několika místech, nebylo by lepší předávat rovnou to místo $pluginMainFile
?
@jakubboucek nebylo by lepší předávat rovnou to místo
$pluginMainFile
?
Nesouhlsím. Všechny vestavěné funkce WP
podle dokumentace v základu počítají se vstupní informací $mainFile
, ale nenašel jse, že by poskytovaly reverzní funkci.
Proto mi dává v rámci vnějšího interface jednotlivých služeb předávat univerzální informaci, kterou lze snadno transformovat a každá služba si ji pak už přeloží po svém. I proto si služby ve svém konstruktoru hodnotu přeloží na tu, kterou ke své práci potřebují. Pokud by se to dalším vývojem v budoucnu změnilo, tak se bude měnit jen interní rozhraní služby, ale vnější rozhraní služby zůstává neměnné.
Hlavním důvodem je, že nevíme, jak moc to lidi hackují a používají různé objekty samostatně. I když je to principielně nesprávný přístup, snažím se, aby zpětná kompatibilita byla slouhodobě co největší a tedy snažím se i rouhraní mezi jednotlivými službami udržovat s ohledem na dlouhodobou udržitelnost.
A už současná změna, kdy se Loader
přejmenoval na Plugin
může způsobit nekompatibilitu. Udělal jsem proto náhradní Loader, který pomůže, aby se po updatu lidem úplně nerozbil web s pluginem i když to trochu hackovali.
@jakubboucek Rozumím, dává smysl.
Nemyslím si ale, že by to lidi měli hackovat, a ani je v tom nechci podporovat..:-) Když se to rozbije, protože to nějaký rádoby programátor bůhvíjak upravil, tak to podle mě není náš problém. Pokud někdo dělal new Loader()
, tak se mu to rozbilo tak jako tak, protože máme hooky v konstruktorech metod.
Kažopádně, approved...:-)
Práce @vasikgreif rebasovaná na aktuální kód. Plně nahrazuje #27.