redbitcz / simpleshop-wp-plugin

SimpleShop Wordpress Plugin
https://www.simpleshop.cz/category/wordpress-plugin/
Other
2 stars 1 forks source link

Gutenberg support v2 #28

Closed jakubboucek closed 5 years ago

jakubboucek commented 5 years ago

Práce @vasikgreif rebasovaná na aktuální kód. Plně nahrazuje #27.

vaclavgreif commented 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 commented 5 years ago

@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.

vaclavgreif commented 5 years ago

@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...:-)