Często przyłapuję się w PHP , że robię coś takiego:
- zrzucam jakieś tam dane do
plik.txt
- wywołuję bezpośrednio shella,np.
exec('cat plik.txt |egrep -Ev "^$"|egrep "*large*"|sort |uniq > plik2.txt');
, ładuję przetworzone dane do plik2.txt - plik2.txt np. ładuję linia po linii w PHP, np.
foreach(file('plik2.txt') as $line) { echo $line; }
czy tam np. do arrayów.
w bashu/linuxie wykorzystuję: egrep
, cat
, head
, tail
, sort
, uniq
, sed
, awk
, cut
(i w sumie tyle, ale te komendy mam opanowane i bardzo szybko mielę coś przy pomocy pipe |
)
wiem, że to zachowanie łamie wszelkie konwenanse, że uzależnia efekt od tego czy akurat na serwerze unixowym są komendy dostępne, że wychodzę poza ekosystem PHP, że debuger, że testerzy.... no ale tak po prostu niejednokrotnie jest mi szybciej.
- korzystacie z zewnętrznych procesów
exec()
,shell_exec()
w swoim PHP?
nie mówię cały czas, ale z lenistwa czasami... - jak takie zachowanie w ogóle jest odbierane? raczej ma być "czyste PHP" czy można trochę pomieszać z unixem?
u nas to przechodzi, ale na forach różne już rzeczy o tym wyczytałem i ludzie raczej są do tego negatywnie nastawieni