Jak (ne)používáme v PHP exec
Posted 13. 09. 2015 / By Petr Soukup / Cloud

elephpantNa funkci exec v PHP se dívám podobně jako na eval. Určitě má svoje využití, ale pokud je to možné, raději se jí vyhnu. Obvykle totiž celý problém lze vzít z jiného konce s mnohem lepším výsledkem.

Co je exec()?

Pokud jste byli vždycky jen na sdíleném hostingu, tak exec možná ani neznáte, protože tam je prakticky vždy zablokovaný. Exec (a jemu podobné shellexec, system, passthru atd.) slouží k zavolání systémové příkazu a získání výstupu. Může to vypadat například takhle:

<?php
exec('convert /tmp/image.jpg -resize 500x500');
exec('rm -rf /'); // suicide!

První příkaz převede obrázek pomocí ImageMagick a druhý smaže všechny (co práva dovolí) soubory na disku. Už možná tušíte, co se mi na něm nelíbí.

Read More

Nevymýšlejte kolo
Posted 14. 06. 2015 / By Petr Soukup / Vývoj

Když jste chtěli před lety něco naprogramovat v PHP, tak to znamenalo nejdřív si napsat knihovnu pro práci s databází, se soubory a tak dále. Neexistovaly ještě (pořádné) frameworky ani jiné nástroje, takže většinu vývoje spolklo zdržování se s řešením problémů, které vlastně s výslednou aplikací nesouvisely.

Doba pokročila - máme frameworky, cloud, vychytané knihovny, balíčkovací systémy a vývoj díky tomu jde šíleně rychle. Pořád tu je ale překvapivě velká skupina vývojářů, která tohle ignoruje a stejný zpátečnický postup pak vnucuje i začátečníkům. A to je škoda.

rewheel

Read More

Jak se loví milisekundy (nejen v #nettefw)
Posted 06. 07. 2014 / By Petr Soukup / Vývoj

Jedna z věcí, kterou hodně řešíme, je rychlost načítání eshopů. Je to poměrně komplexní problém, který je nutné řešit na několika frontách. Jednou z nich je generování stránky v PHP a na té vám předvedu, jaké prkotiny se musí řešit.

Interně máme nastaveno, že generování jedné stránky nesmí trvat déle jak 100 ms. Některé stránky z toho mají vyjímku (například export celého katalogu) a u jiných se naopak čeká, že budou hodně pod touto hranicí (například hlavní strana eshopu). Na první pohled to možná nevypadá, ale 100 ms není moc času a tak se loví každá milisekunda. Jak takový lov probíhá vám předvedu na definování routování. Není to samozřejmě nic objevného, ale je to ideální příklad pro článek, protože je to dostatečně výstižné a zároveň jednoduché.

Read More

Překombinované počítadlo aneb přemýšlím nahlas
Posted 02. 12. 2012 / By Petr Soukup / Nezařazené

Na PHP je sympatické, že se ho i začátečník dokáže velmi rychle naučit a hned něco tvořit. Je to trochu jako současné hry, kdy nejdřív projdete tutorialem a máte pocit, jako by jste byli nejlepší hráči na světě - jenže obtížnost se postupně zvyšuje. U jiných jazyků (c#, java, ...) je to trochu jiné. Musíte tam už přesně vědět co děláte, než můžete vytvořit i úplně jednoduchou věc. Proto se na PHP programátory ostatní dívají trochu z vrchu - kazí jim image začátečníci, kteří už sice tvoří reálné projekty, ale spíš je patlají dohromady.

Nejlépe se rozdíl ukáže, pokud na takový web pošlete větší návštěvnost. Jak bude web fungovat při návštěvnosti 300 lidí denně nebo 50 000 je celkem zásadní rozdíl. Zkusím to předvést na úplně základním příkladu, který je na začátku každé učebnice - počítadlo na stránkách. Prkotina, která se dělá hned po Hello world a je to sranda na pár řádků. Nebo ne?

Read More

O blogu
Blog o provozování eshopů a technologickém zázemí.
Aktuálně řeším hlavně cloud, bezpečnost a optimalizaci rychlosti.

Rozjíždím službu pro propojení eshopů s dodavateli.