Jaký byl DrupalCamp CS 2019: přednášky, atmosféra, ocenění Drupal CS Awards a můj úspěch

Po určité pauze se o víkendu opět konal už čtvrtý ročník setkání české a slovenské komunity okolo redakčního systému Drupal. Sešli jsme se na jihu Moravy, vyslechli si zajímavé přednášky. Novinkou bylo ocenění Drupal CS Awards. Potěšilo mě umístění projektu, na kterém jsem pracoval, a zisk třetího místa v kategorii freelancer.

Reklama

Když se tu poblíž konaly velké konference DrupalCon, tak jsem navštívil málokterou. Přišlo mi to jako příliš nákladná záležitost. Naopak na DrupalCampy se vydávám pravidelně. Velmi se mi líbil ten vídeňský v roce 2015. A nechyběl jsem na žádném z těch pořádaných českou a slovenskou komunitou.

Po pauze, kdy si pořadatelé potřebovali odpočnout a znovu se nadechnout, proběhl letos další ročník. A musím nyní říci, že v bezvadné kondici. Opustili jsme prostory univerzit a setkali se s ostatními Drupalisty v hotelovém prostředí v jihomoravských Hustopečích. Konkrétně v hotelu Amande.

Byla to určitě dobrá volba. Prostředí bylo méně formální a několik desítek účastníků jej skvěle zaplnilo. Rozhodně to nevypadalo jako při jednom minulém ročníku, kdy jsme pobíhali prázdnými prostory univerzity.

Kolegové se sešli už v pátek odpoledne. Jaká byla grilovačka bohužel nedovedu posoudit, tou dobou jsem se ještě vracel z Nizozemska, kde jsem strávil týden na kanálech. Nicméně v pátek jsem vrátil loď a hurá na Moravu. Setkání Drupalistů si přece nenechám ujít.

DrupalCamp CS 2019

Sobotní přednášky na DrupalCamp CS 2019

Už se stalo takovou tradicí, že si zde na blogu značím postřehy z akcí a přednášek, které navštěvuji. DrupalCamp CS 2019 samozřejmě nevynechám. Jdeme na to.

Úvodní přednáška byla společná, potom jsme se rozdělili do dvou sálů. Vesměs jsem se držel v tom větším, proto nepokrývám komplet vše, co na DrupalCampu zaznělo.

Keynote – Miro Michalička a Martin Klíma

Úvodní slovo si vzali zástupci slovenské a české Asociace (Asociácie) pro Drupal. Miro Michalička povídal o aktuálním stavu kódu v Drupalu. Jak probíhá jeho postupné vylepšování, verzování, plán vydávání každých šest měsíců a začleňování experimentálních modulů.

Kromě toho jsme si zopakovali, jak to přesně bude s Drupalem 9. Vězte tedy, že se objeví příští rok a ten následující budete mít čas přejít z osmičky a předchozích verzí. Devítka přinese vyčištění kódu jádra od deprecated funkcí, využije novou řadu Symfony a zaktualizuje také knihovny, na kterých Drupal stojí: Twig, jQuery, CKEditor a další.

Nebude to už tedy takový skok, na který jsme byli s každou novou řadou Drupalu zvyklí. Bude to v podstatě běžná aktualizace, která jen uklidí více než se děje nyní. Dokonce by v devítce bez úprav čísla verzí měly fungovat i osmičkové moduly.

Abyste se ujistili, že váš web půjde z Drupalu 8 na Drupal 9 aktualizovat bez problémů, projděte si kód svých modulů a témat vzhledu, zda se v něm nevyskytují zmíněné deprecated funkce. A pokud ano, přepište je. Ideální je pro tento úkol vývojové prostředí PhpStorm. Podobně vám pomůže Upgrade Status nebo Rector for Drupal 8. Pro projekty na Drupalu 7 je zajímavý Drupal Module Upgrader.

Po Mirovi si vzal slovo Martin Klíma. Snad se nebude zlobit, ale jeho promluva na mě působila jako výklad od faráře v kostele na nedělním kázání. Myslím to samozřejmě v dobrém. Martin povídal o tom, jak Drupal dělá z chudých programátorů bohaté. Jaká je to skvělá platforma, díky které může každý z nás růst. A většina také roste.

Apeloval na větší zapojení každého z nás do komunity. Drupal je zadarmo. Kdokoli si jej může vzít a postavit na něm úžasný projekt. Ale zadarmo není dřina jiných programátorů, kteří Drupal připravili a pravidelně jej dále rozvíjí. Zapojit se můžete podle Martina jakkoli. Kdo není programátor, může pomoci s dokumentací. S překlady. Se střihem videa z akcí. Jako pomocník s pořádáním akcí. Ostatně zaznělo, kolik času přepočteného na desítky a stovky tisíc korun věnovali dobrovolníci právě pro DrupalCamp CS 2019.

 Přiznávám, že já nejsem úplně vzorný komunitní typ. Tím, že je většina akcí spojených u nás s Drupalem v Praze, tak se objevuju spíše až na větších setkáních. Online bych se ale mohl zapojit více. Ale s čím se určitě ztotožňuju, je členství v asociaci. Ať už v mezinárodní Drupal Association nebo v české Asociaci pro Drupal, případně její slovenské obdobě. Vždyť je to pár korun, alespoň symbolických.

Mrkněte, kolik lidí z Česka je v Drupal Association. V době přípravy článku pouhých 12… I bez přípravy vyjmenuji více lidí, kteří tu z Drupalu těží.

Migrace z databází neznámých systémů – Martin Klíma

I první přednášku po keynote obstaral v klidném kostelním tempu Martin. A skoro bych řekl, že za mě byla toto nejsilnější přednáška dne. Prošli jsme migrace z různých zdrojů do Drupalu 8. Martin si připravil zdrojovou databázi se třemi tabulkami, ze kterých jsme postupně importovali autory, kategorie a články do drupalovských entit.

Šlo tedy o spojení přednášky a workshopu. Krásné a praktické téma, které se perfektně stihlo a mně osobně ukázalo konečně možnosti migračního API v praxi. Sice už jsem pár webů z Drupalu 6 a 7 na osmičku migroval, ale nikdy jsem s tím spokojen nebyl. Šlo o klasické překlopení všeho ze staré instalace.

Migrační API toho umí mnohem více. Bez složitého programování si především s pomocí konfiguračních souborů dopíšete, co se ze kterého zdroje má kam nakopírovat a vše spustíte následně jedním příkazem s možností rollbacku.

Já jsem znechucen kompletní migrací používal pro sosání cizích dat vždy vlastní modul s dávkou pro drush, která načetla zdroj a vytvořila programově nové entity. Taky to funguje, ale když jsem viděl v praxi použití migrací, přijde mi elegantnější. Hlavně, co se týče ladění. Při nejbližší příležitosti vyzkouším v reálu a moc děkuji za ukázku.

Podívejte se na modul Migrate Plus umožňující lepší využití částí migračních nástrojů. Pohrajte si při migracích na příkazovém řádku s nastavením přepínačů –limit a –update. Při napojování nových entit na již importované položky využijete plugin MigrationLookup.

Drupal 8 z vývoje do produkce profesionálně – Michal Seč a Karel Majzlík

Spousta vývojářů pracujících s Drupalem používá Docker a nástroj Lando. Michal Seč a Karel Majzlík si vzali slovo na přednášce, kde se skvěle doplňovali v povídání o svých zkušenostech s těmito nástroji a hlavně s překlápěním webu z vývoje do produkce.

Zmínili nástroj PHing, který jim s odstupem už nepřišel tak dobrý. Pro skriptování úloh spíše doporučují Robo, což je spouštěč úkolů pro PHP. Pro hosting využívají především AWS EC2.

Zmínili rovněž GitLab pro správu kódu, Mailhog pro ladění e-mailů a modul Reroute Email v Drupalu sloužící k témuž účelu.

Řekl bych, že povedená přednáška.

Web Českého rozhlasu, problémy a řešení – Jan Pospíšil

V Česku pravděpodobně nenajdete větší web postavený na Drupalu, než jsou stránky Českého rozhlasu. Honza Pospíšil nám umožnil nakouknout trochu pod pokličku. Jedná se o mamutí řešení na Drupalu 7, kdy jedna instance Drupalu řídí 1,2 milionu uzlů nad téměř 60 doménami s modulem Domain.

Takový moloch se samozřejmě potýká s výkonem a jsem rád, že se Honza podělil hned o celou řadu praktických tipů, jak to řešit. Hodí se to i nám s menšími projekty. Absolutní nezbytností jsou moduly Entity Cache a Views Content Cache. Ale ty určitě znáte, že jo?

Honza zmínil, že Drupal se hodně orientuje na bezpečnost, ale už ne tolik na výkon při opravdu velkém nasazení. Dalším tipem, jak tedy zpracování na serveru zrychlit, je zapnutí volby Disable SQL Rewriting ve Views. Pokud máte dobře filtry ve Views, nepotřebujete totiž ještě kontrolu přístupu k uzlům, kterou toto nastavení řeší. A ušetříte spoustu času na renderování stránky.

Zkuste si na serveru zapnout slow log, tedy logování pomalých dotazů do databáze. Pro jeho analýzu vyzkoušejte nástroj pt-query-digest. Ořezávejte z adres UTM a FBCLID, nebude se tak tentýž obsah cacheovat několikrát.

Bohužel jsem úplně nepostřehl, proč bychom měli zvážit použití modulů XML Sitemap a Metatag. Chápu, že jsou to velké molochy, ale na druhou stranu mě nenapadá rozumná alternativa.

Při optimalizacích se orientujte na ty části webu, kterých je nejvíce. Tedy například na jednotlivé články místo jedné jediné homepage.

Nezdržujte se výrobou dokonalého UI v administraci pro věci, které použijete jen občas. Honza Pospíšil ukázal použití jednoho velkého textového pole pro zápis proměnných, který následně v PHP rozparsuje. Souhlasím. Používám to tak u některých eshopů pro nastavení pravidel výpočtu poštovného.

Radost mi udělala zmínka o nástroji Blackfire sloužícím k hledání slabých míst z hlediska výkonu ve vašem webu. Zjistil jsem totiž, že existuje i bezplatná varianta, takže jej plánuji začlenit do svých procesů.

Z dalších tipů a nástrojů, o kterých Honza povídal: GoAccess pro analýzu logu, cache pro redirekty, kniha High Performance Drupal. Bez Xdebugu ani ránu a zapomeňte na React a podobné věci. Doučte se raději pořádně SQL a profiling.

Analytika Drupal webu a checklist před spuštěním – Jan Nagy

Na další přednášku jsem se přesunul z velkého sálu do menšího. Honza Nagy tam měl povídat o analytice webu s Drupalem a postupech, které byste měli provést před jeho spuštěním. Avizoval seznam nástrojů pro SEO, zabezpečení, optimalizaci obrázků a další.

Bohužel z toho přehršle informací vznikl jen jakýsi seznam kvanta nástrojů a modulů, které je nereálné použít úplně všechny. Bylo by to ve výsledku kontraproduktivní. I sám Honza něco podobného na konci řekl.

Pro mě byla tato přednáška jediným zklamáním z celého dne. Bylo by lepší uvést méně modulů a zmínit konkrétní využití, proč se to v praxi vyplatí. Recitovat seznam věcí ze slajdu je prostě k ničemu. Navíc, když vám přednášející řekne, že něco z toho ještě ani neměl příležitost vyzkoušet. Jako třeba dvoufaktorové přihlašování v Drupalu.

Postupně jsem si přestal jednotlivé moduly a nástroje zapisovat. Za všechny jen jeden pěkný nástroj pro kontrolu bezpečnostních hlaviček na webu – securityheaders.com.

Lightning Talks – řada řečníků včetně Honzy Polzera

Chtěl jsem původně setrvat v menším sále a poslechnout si povídání Juraje Faláta o automatickém deploy na běžný hosting jen s FTP. To je věc, kterou bohužel musím řešit u většiny svých klientů. Chtěl jsem se nechat inspirovat.

Nicméně Martin Klíma a Radim Klaška mě ukecali na krátké vystoupení v rámci Lightning Talks na závěr přednášek. A nebylo to špatné na ně přijít. Honza Pospíšil přidal několik dalších krátkých tipů z praxe vývoje webu Českého rozhlasu. Honza Pobořil ukázal tipy pro zrychlení Dockeru ve Windows a na Macu. Krátkými vsuvkami přispěli další účastníci.

Jan Polzer povídá na DrupalCamp CS 2019

Já jsem nakonec přidal povídání Deset chyb a postřehů Drupalisty freelancera. Nenapadlo mě bez přípravy nic chytřejšího, ale snad to někoho z mála volnonožců v sále zaujalo. Bylo to takové povídání o tom, co jsem za roky na volné noze nejenom v souvislosti s Drupalem pohnojil a dnes bych udělal jinak.

Ocenění nejlepších webů s Drupalem, Drupal CS Awards 2019

Po večeři nastal slavnostní okamžik. V průběhu celého dne jsme měli možnost hlasovat pro projekty přihlášené do prvního ročníku cen Drupal CS Awards 2019. Podobně jako u větší zahraniční soutěže jsme chtěli vybrat ty nejlepší weby, které na Drupalu v Česku a Slovensku za poslední tři roky vznikly.

Úvod k předání cen Drupal CS Awards 2019

Zde je seznam přihlášených projektů. Přiznávám, že mě nejprve napadlo hlasovat pro některý z projektů, který jsem do soutěže sám přidal. Ale pak mi to přišlo trapné, takže moje hlasy dostaly Dachdecker v kategorii freelancerů a Leforestier Immobilier v kategorii firemních řešení. Ani jeden z nich se neumístil na prvních čtyřech příčkách.

Ono je třeba říct, že žádný z přihlášených webů nebyl špatný. Já se rozhodoval podle toho, jak mi který seděl na telefonu. Tam mi přišel u spousty projektů velký prostor pro zlepšení. Nicméně soudě dle nominovaných (první čtyři) a oceněných (první tři) projektů bych řekl, že většina hlasujících se řídila spíše nějakou tou myšlenkou, příběhem stojícím za daným projektem. Ne jeho technickým zpracováním.

Drupal CS Awards 2019 – ceny

Z více jak tří desítek projektů tedy nakonec ocenění získaly následující.

Kategorie Firmy

1. místo – Paměť národa (databáze výpovědí pamětníků komunistické a nacistické minulosti, Drupal 8), realizace: Made It Digital s.r.o. Web získal také 1. cenu v mezinárodní soutěži Drupal Global Splash Awards 2019 v kategorii „Non-profit“.

2. místo – CN Jobs - (karierní stránky firmy CN Group, Drupal 8, ReactJS), realizace: CN Group CZ s.r.o.

3. místo – COLOSEUM RESTAURANTS s.r.o. (webový portál sítě restaurací Coloseum, Drupal 8), realizace: Freely Agency s.r.o.

Kategorie Freelanceři

1. místo – iRozhlas.cz (zpravodajský web Českého rozhlasu, Drupal 7), realizace: Jan Pospíšil, Marek Vantuch, frontend: Superkoders

2. místo – CZGOV – zdrupalizujme úřady (základ volně stažitelné distribuce CMS Drupal pro státní správu a místní samosprávy), realizace: Petr Illek

3. místo – zČech.cz (eshop zaměřený na podporu a propagaci zajímavých a kvalitních výrobců z ČR, Drupal 8), realizace: Jan Polzer

Výsledky Drupal CS Awards najdete i na webu Drupal.cz. Doplňuje je zajímavé video a galerie z výroby ocenění, která jsme získali. Jedná se o ručně vyráběné sklo ve tvaru ikonky Drupalu, přičemž vítězové kategorií získali variantu obsahující navíc 24karátové zlato.

Musím při té příležitosti poděkovat majitelům webu zČech.cz, že mohu pracovat na tak zajímavém projektu.

Drupal CS Awards 2019 – vítězové

Uvidíme se dalším DrupalCampu CS

Shrnuto a podtrženo, letošní DrupalCamp CS byl takový restart po poněkud unaveném posledním ročníku a následující pauze. Restart to byl povedený a v plné palbě. Na jedničku bylo prostředí i přednášející, ocenění jsou navíc zajímavou motivací, proč bychom se měli snažit vytvářet co nejzajímavější projekty.

Ze šuškandy vím, že další ročník by se měl opět konat na podobném atraktivním a neformálním místě. Držím palce, ať se vše povede a těším se se všemi na brzkou shledanou.

Zdroj foto a kompletní fotogalerie z akce: photos.app.goo.gl/jrCmbkhsgbwh7Hdb8

Reklama

Komentáře

Ahoj Honzo,
"Bohužel jsem úplně nepostřehl, proč bychom měli zvážit použití modulů XML Sitemap a Metatag. Chápu, že jsou to velké molochy, ale na druhou stranu mě nenapadá rozumná alternativa."

...bohužel až během přednášky jsem zjistil, že toho chci asi říct víc, než kolik se toho do časového slotu vejde, čili jsem některé body nestihl dovysvětlit tak jak jsem původně plánoval. Takže využji alespoň zdeješího komentáře:

Souhlasím s tím, že k modulům Metatag a XMLsitemap žádná rozumná contrib varianta neexistuje. Já je však zmiňoval právě kvuli tomu, že jde o univerzální "molochy" (a to teď nemyslím nijak hanlivě), které jsou schopné pokrýt téměř libovolné potřeby libovolného webu. A univerzální řešení bude vždy "pomalejší" než řešení konkrétního usecase.

Např. když člověk chce dát ke každému článku do metagatů titlek a hlavní obrázek (třeba s nějakým fallbackem a lá "když není obrázek článku, vzít obrázek jeho rubriky, když není ani ten, tak pak univerzální obrázek pro celý web), tak z toho může být custom modul na pár řádků.

Příklad se sitemap - když se rozhodneš, že chceš mít v XML sitemape prostě všechny nody, tak přegenerovat v cronu celé XMLko je opět na pár desítek řádků. Díky tomu, že si člověk může napsat vlastní dotaz, tak má prostor pro optimalizaci dle jeho potřeb.

(ten počet řádků v obou případech je samozřejmě myšlen bez jakéhokoliv "nastavovacího UI", ale to u custom modulů není vždy potřeba - někdy je naopak dobře, že měnit nastavení můžou jen programátoři skrze kód, protože taková změna může mít nezanedbatelné dopady na výkon)

Ahoj, aha děkuju za vysvětlení. Já to tak v případě Metatag modulu měl kdysi na začátku s Drupalem 7. Modul ještě nebyl překlopen ze šestkové varianty na něco fungujícího, takže jsem na některých webech metatagy udělal prostě ručně s výpisem potřebných dat v šabloně.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Ty metatagy jsem na některých mých webech řešil naprosto stejně :)

"Honza zmínil, že Drupal se hodně orientuje na bezpečnost, ale už ne tolik na výkon při opravdu velkém nasazení" -
I zde se musím omluvit, že to tak vyznělo. Drupal výkon řeší a nabízí hodně nástrojů pro jeho "tunění" (viz zmíněné cache moduly, nebo ta knížka). Já chtěl říct, že rozdíl mezi "bezpečností" a "výkonem" je v tom, že "bezpečnost" se dá svým způsobem dělat "univerzálně" - máme seznam známých typů útoků na různé části/komponenty webové aplikace a jak jádro, tak contriby na ně můžou reagovat. Když se objeví útok nový, dojde k security releasu a (po aktualizaci) je zase chráněný i ten nejmenší web.

"Výkon" lze (a teď přichází sekce "imho") univerálně řešit u menších webů - cache i souvisejicí moduly fungují dobře a třeba v D8 je navíc přidána tagovatelná cache. Problém je, že u velkých objemů dat se často stane úzkým hrdlem databáze. Jeden dobře umístěný index může zlepšit výkon víc, než stovky mikrooptimalizací v PHP. To se netýká jen Drupalu, ale všech CMSek a aplikací obecně.
Příčemž samozřejme čím přesnější datový model, tím lépe a proto bude Drupal na úrovni DB vždy pomalejší než (dobře napsaná) appka s konkrétně navrženým (a oindexovaným) datovým modelem.
Ale to bych nebral jako nevýhodu Drupalu, jen jsem to chtěl během přednášky srovna s tou bezpečností. Naopak jsem chtěl ukázat, že i v Drupalu se dá takové řešení nakonec postavit.

Rovněž díky za upřesnění. Možná mě napadlo - neřešili jste, jak zcela odpárat revize? Pokud se na daném webu nepoužívají, zbytečně zabírají v databázi místo, protože vždy alespoň jeden duplicitní záznam vzniká i do tabulek revizí pro jednotlivá pole s obsahem článků.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Ano, modul https://www.drupal.org/project/field_sql_norevisions používáme (bez problémů) asi 3/4 roku, zde byl hlavní cíl redukce velkosti databáze, protože když si tu produkční chce člověk tu a tam importovat na lokal, tak se zmenšení téměř na polovinu hodilo (momentální velikost 12GB data a 8.4GB indexy - opsáno z produkčního adminera, takže to nemusí být úplně přesné). Na samotném vykonu se to zase tak neprojevilo, jen ubudou desítky insertů/updatů při ukládání nodů.

Ja teda nebyl na te prednasce (kazdopadne zkouknu hned jak bude video venku), ale pro me je na vykon Views celkem univerzalni reseni search_api_solr (elastic se mi nepodarilo uspokojive zprovoznit kdyz jsem s D8 zacinal a ted nechci rozsirovat stack). Na vetsich systemech ( = aspon stovky tisic zaznamu) uz to pouzivam vzdy.

Search_api_solr používáme na přehledy obsahu v administraci, předělání (resp. pokus o) frontend views je v plánu, ale máme tam občas docela složité kombinace custom filtrů, které bude potřeba nějak předělat na solr api. Plus máme bohužel omezené vývojářské kapacity, abychom se na tohle mohli vrhnout s úsilím, které by si to vyžadovalo, kor když současné řešení funguje relativně dobře.

...ale když to tu píšu, tak je pravda, že minimálně u nějakých nejnáročnějších views abychom to mohli zkusit ASAP :) Čili díky za pošťouchnutí :)

Díky za zpětnou vazbu. Byla to pro mě první přednáška (i když ne před velkým publikem), tak se určitě pro příště bude hodit. Původní osnova byla podrobněji zaměřená na ty nástroje, co používáme nonstop (Security Kit, Image Optimize, SVG Sanitizer) a jejich nastavení, ale pak jsem si pořád říkal "když tohle by se jim také mohlo hodit znát" a trochu to narostlo do počtu modulů.

PS: K SecurityHeaders doporučuji i GTmetrix a https://webspeedtest.cloudinary.com/

PPS: Gratulace k ceně za zČech.cz a díky za hlas pro Leforestier Immobilier. Ať se daří!
H.

Díky.

Fajn, každá další je vždy lepší. To půjde. Snad jsem Tě neodradil.

Díky za tip na testovátko od Cloudinary. Už dlouho uvažuju jak o WebP, tak právě o Cloudinary.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Priznam se, ze me prekvapilo, ze si tady Honza vsiml Phingu a Robo. Tak jen mozna k nasi ceste drobne vysvetleni.
Jsem na volne noze a potrebuju nejak setrit praci, koukam na devops prednasky z DrupalConu... Nachazim Gulp a Grunt, ale javascriptu rozumim jeste mene nez esperantu. Tak nejak si obcas napisu skript jako import.sh kde je wget, gunzip, mysql import, drush cc all, drush fra... Neni to idealni, ale da se s tim zit, na volne noze neni zase tolik casu na zlepsovani tehle veci. Pak je zacatek roku 2017 a ja nastupuju do CN group na vetsi projekt. Avsak bude provozovan na zakaznikove infrastrukture - Docker a Jenkins hraji ustredni roli. Proto se nam nezda jako idealni reseni Acquia BLT nicmene se v nem inspirujeme, v te dobe je postaveno prave na Phingu a na stejnem nastroji je postavena distribuce od Evropske komise (a delal jsem si rešerši na dalsi velke distra a byl to vzdy jeden z trojice phing, gulp, grunt). Na tom projektu ten setup funguje dodnes a neni duvod ho menit (spousti to napr Behat a PHP code sniffer).
Uplyne zhruba rok a pul a ja rozjizdim novy projekt, Docker uz je v nasem "Drupal koutku" naprosta samozrejmost. Ja se jdu do BLT zase inspirovat, ale XML definice jsou pryc! Patram a prichazim na to, ze presli na Robo (tusim, ze to bylo v ramci BLT 7 -> 8). Robo jsem si rychle oblibil protoze napsat 2x zanoreny if-else v XML pro Phing je proste ***. Na tom novem projektu je i frontend a ja uz v tu dobu byl zvykly na sass/compass a boostrap. Patram jak to udelat bez nodejs/ruby. A prave Robo to umi. Umi v PHP zkompilovat CSS a taky umi sledovat adresar na zmeny. Ten novy projekt je navic multisite a Drush 9 uz nepodporuje @sites (nebo jak to presne bylo, aby to vzal pres vsechny sites). A me se tuze nechce psat nejaky shell script jak jsem vygooglil jedine rozumne reseni). Jak to napsat ve phingovem XML bych asi vubec netusil, ale v PHP je to jednoduchy foreach. Zkratka Robo mi setri hodne prace a oproti Phingu ma lidský zápis tech tasku.

Díky moc za shrnutí. Já to mám podobně, proto jsem si toho všiml. Nakonec jsem vždycky totiž skončil u shellových skriptů :) Mrknu na Robo podrobněji.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Přidat komentář