Hlavní navigace

PHP Jet VS Symfony

5. 2. 2023 16:53 Mirek Marek

K minulému článku o formulářích ihned padl dotaz na porovnání s jinými frameworky. Proto jsem udělal další srovnávací video, ve kterém PHP Jet tentokrát porovnám s jedním z nestorů na poli PHP frameworků a to s frameworkem Symfony. Připomínám, že nedávno to byl framework Laravel a toto porovnání je pojato obdobně.

Tedy vzal jsem opět video od jednoho kolegy a to samé co vytvořil kolega na Symfony jsem vytvořil na PHP Jet. Jedná se registrační formulář – registraci uživatele např. pro mailing.

Jak sami uvidíte, tak stejná věc se dá na Jetu udělat mnohem rychleji, intuitivněji a v rámci daného časového rámce i kvalitněji. Pokud bude vývojář postupovat správně, tak bude výsledná aplikace i výkonnější. 

A jako malý bonus bude v PHP Jet vytvořeno mnohem víc funkcionalit. Za podobný čas nebude vytvořen „pouhý“ registrační formulář, ale daleko víc.

Bohužel tentokrát zklamu ty z vás, kteří raději čtou než koukají na videa. Lituji, ale tohle se jinak než videem efektivně ukázat nedá. Dík za pochopení.

Tak pokud máte čas, jdeme na to. Nejprve video od kolegy a Symfony v akci:

A teď PHP Jet:

Jak vidíte, tak s PHP Jetem se pracuje mnohem efektivněji. To není subjektivní věc, ale čistě objektivní a měřitelná věc. PHP Jet klade na vývojáře nižší nároky a poskytuje mu víc možností, větší flexibilitu a pracovní efektivitu, ale zároveň předpokládá, že vývojář nejlépe ví co dělá a proč.

Je to dáno odlišnou filozofií a architekturou PHP Jet. Řada jiných frameworků, myslím těch co jsou tak říkajíc v hlavním proudu, dělá řadu věcí více-méně podobně jako třeba Symfony. PHP Jet je tak trochu rebel. A není to tím, že bych byl i já rebel.

Je to tím, že jsem nehledal cestu jak udělat další framework co má routy a to všechno. Hledal jsem cestu, jak si opravdu zefektivnit práci v reálné praxi. A k efektívní práci vedou nové pohledy a nové cesty. Cesty dlážděné znalostmi získanými od ostatních, ale i vlastními zkušenostmi ať pozitivními, či negativními.

To co teď napíšu nemyslím zle, i když to tak určitě vyzní. Mám úctu k práci ostatních kolegů. Ale nelze stále opakovat totéž. A řada frameworků je jako dinosauři. Jsou velké a ohromující – bezesporu. Často jsem fascinován jak jednoduchá věc může být obří a bohužel tak „trochu“ překombinovaná. Ty frameworky jsou určitě úctyhodné a třeba i opravdu fascinující. Ale nejsou efektivní. V evoluci vyhrává to, co je efektivní. Ne to co je zbytečně velké a překombinované. Takový stegosaurus musel být opravdu ohromující tvor. Ale gravitaci Země pokořil jeden lehký, hbitý a hlavně důvtipný savec, který posléze vytvořil i internet. 

Naštval jsem vás? Snad ne. To jsem nechtěl. Ale chci vám ukázat, že jsou jednodušší cesty jak věci řešit. A že nejjednodušší řešení bývá z pravidla to správné, protože je prostě efektivní a efektivita je hlavní metrika. A to platí i v technice, nebo by se možná dalo říct hlavně v technice – tedy i ve vývoji SW.

Někdy příště se koukneme například na to, jak a proč PHP Jet (ne)používá koncept dependency injection a tak dále (tento konkrétní článek mám již nachystaný).

Děkuji za váš čas a těším se na příště.

Pokud máte jakékoliv dotazy a připomínky, či nápady, tak je prosím směřujte již primárně na diskuzi na GitHub. Tam vám velice rád a co nejrychleji odpovím. Do teď pro mne byl primární komunikační kanál e-mail, ale rád bych veškeré diskuze přesměroval na GitHub. Díky za pochopení.

Mějte se fajn!

Co nového ve světě PHP Jet

A samozřejmě nesmí chybět již tradiční stručný souhrn novinek ze světa PHP Jet za poslední cca dva týdny.

  • Bylo trochu vylepšeno UI instalátoru a instalátor byl doplněn o kroky vytvoření testovacího návštěvníka a REST klienta.
  • Byl upraven spoutěč „hřiště“.
  • Bylo přepracováno UI dokumentace na webu.
  • Byla zahájena práce na překladu webu a dokumentace do angličtiny.
  • Easy Deployer již má definitivně podporu SCP/SFTP a směřuje k finální verzi.

Sdílet

  • 7. 2. 2023 19:06

    Jan Judas

    Díky za další článek!
    Zatím jsem se prokousal videem Symfony a půlkou videa Jetu.
    Myslím, že už začínám chápat, proč Vám hlavně Symfony nevyhovuje. Zdá se mi totiž, že Jet je navržený tak, aby co nejvíc urychlil a usnadnil vytvoření nové aplikace, zatímco na jednoduchost případných úprav, rozšiřování a údržby už se tolik ohled nebere. Je to tak? A je pravda, že na takovéhle použití Symfony optimalizovaný není.

    Na další díl o nepoužití dependency injection se těším - to je totiž podle mě věc, která se obhájit nedá, tak jsem zvědavý na argumenty :-)

  • 10. 2. 2023 8:33

    Mirek Marek

    Právě že je to přesně na opak. Na Jetu jsou postavené věci fungující velice dlouho a sám jsem vytvářel aplikace, u kterých se sám divím, že po tak dlouhé době fungují (pochopitelně ještě i bez Jetu)
    Jet je postaven tak, aby se daleko efektivněji dala vytvořit aplikace (celý rozsáhlý projekt - malých věcí jsem nikdy moc nedělal), která bude dlouhodobě daleko lépe udržitelný a lépe dále rozvýjet.
    V Jet není efektivní jen vývoj, ale i další rozvoj. A troufám si říct, že to ještě mnohem víc.
    Právě že v té druhé polovině videa je další rozvoj aplikace do něčeho reálného.
    A v neposlední řadě v Jet je vše mnohem méně zadrátované a mnohem více přizpůsobitelné, než v jiných frameworcích.
    Neexistuje nic co není možné. Vše se dá přizpůsobit. Absolutně vše.
    I střeva samotného frameworku můžete díky architektuře, která mimo jiné právě dependency injection ovlivnit.
    Pouze je ten rozdíl, že s Jetem se k vám dostane něco daleko vyzrálejšího a přes to daleko menšího a flexibilnějšího.
    Jet Dependency Injection naopak používá. Ale používá jej tak jak má být tento koncept použit. Používá jej správně a na správných místech. Ne absolutně bezhlavě a bez rozmyslu i tam , kde je to i značně kontraproduktivní.
    V tomto ohledu si vezmu na paškál Nette.

  • 12. 2. 2023 5:33

    BoneFlute

    Děkuji za další díl.
    Mé postřehy:
    1/ Tvrzení, že je php-jet malinkej a composer sebou táhne množství závislostí na mě neudělalo dojem. Podobně jako opakování fráze, jak jste v php-jet efektivní. Já vám to přeji, a určitě i věřím, ale představoval bych si víc tvrdá data.

    Zatím koukám, jak máte vymazlené webové IDE, kterým dokážete spousta věcí nastavit +1. Že změny zapisujete do kódu, to mi přijde taky sympatické +1 - tím se to zásadně liší od srovnatelných nástrojů jako je Drupal, nebo Wordpress.

    2/ Je možné vytvořit aplikaci přes více databází? Jakým způsobem se vytváří logika, kdy se má část uložit do databáze, část na disk, a ještě poslat mail?

    3/ To, jak máte vymazlené to webové IDE je opravdu pěkné. Připomíná mi to trochu VS, ten ty formuláře dělá stejně.

    4/ Je možné vytvořit závislej selectbox. Je možné nějak vytvářet vztahy mezi položkama formuláře?

    5/ Je možné nějak vytvořit šablonu formuláře, který následně doplním?

    6/ Jak vytvořit fakovej input, který nemá oporu v datech? Například potvrzovací password.

    Obecně:
    Já chápu, že jste ze svého projektu nadšený a snažíte se ho předvést co nejlépe. Zkuste ale prosím místo povšechného tvrzení "takto je to dobře", "je to zbytečné" uvádět lépe své důvody a motivace.