A PHP előnye, hogy a standard library-je az egyik leggazdagabb funkciók tekintetében, kiegészítők letöltése nélkül lehet benne fejleszteni, jóval egyszerűbben, mint bash-ben vagy egyéb scriptnyelvekben.
Nem szabad elfelejtkezni a kezdőkről. Lehet, hogy számodra ez a blogmark nem hoz semmilyen újdonságot, de aki például most vág bele a szakmába, nem biztos, hogy neki ez annyira triviális.
A PHP kifejezetten webre lett kitalálva. Attól, hogy van benne lehetőség parancssoros használatra... ha valamiért nagyon muszáj, akkor esetleg.
Ha parancssor kell és nem elég a bash, még mindig van csh, zsh, ha ez is kevés, akkor awk, perl, python, ruby... millió eszköz, amiből legalább egyet mindenképp meg kell ismernie egy fejlesztőnek.
A website-ok 80%-án php fut, de legalábbis egy nagyon nagy részükben, így - az előfizetéstől függően - nagy valószínűséggel van rajtuk parancssor is.
A bash-sel nekem az a bajom, hogy nem igazán intuitív (kezdőknek!), például
if [ ! -x $INITCTL ] && [ -f /usr/share/sysvinit/update-rc.d ]; then
Ránézel, és lehet találgatni, hogy mi mit jelent. Például nem egyértelmű, hogy a szögletes zárójelnek tűnő karakterek igazából (kvázi) programok, nem zárójelek, mint máshol megszokhattuk, így utánuk kell szóköz.
Ugyanez PHP segítségével:
if (!(file_exists($initctl) and is_executable($initctl)) and (file_exists($update-rc.d) and is_file($update-rc.d))) {
Ha ismered, nem kell találgatni.
Viszont úgy nekiesni a "programozásnak", hogy nem ismered a shellt, amin dolgozol... (cmd.exe, bash stb.) Az azért elég gáz.
Normális körülmények közt a shell az első, amit meg kell tanulni legalább alap szinten.
Célszerű megismerni a shellt, de a másik oldalról feltehető a kérdés: miért áldozzon rá az ember az idejéből, ha ugyanazok a feladatok megoldhatóak egy olyan szépen kidolgozott nyelvben is, mint a php?
Én is jobban preferálom a PHP-t vagy a NodeJS-t.
Ugyanis néhány alap tool (mint amilyen a pl. sed is) nem portabilisek.
Olyan kapcsolóval is rendelkezik (-i) amit máshogyan kell paraméterezni Mac (OS X)-en mint Linuxon.
Ebben igazad van, viszont ez a cikk azt fogja nekik sugallni, hogy ezt így kell csinálni. Ma ez már nem igaz. Ez ma már csak egy sidenote szabad hogy legyen, régen így csinálták, legyél tisztában az alapokkal.
Aztán gyorsan rátérni a lényegre... symfony / laravel / egyéb console lib. Ma már ez az alap, kezdőknek is ezt kell tanítani.
Végigolvastam ismét a cikket, sehol sem sugallja, hogy így kell, hanem csak mint lehetőséget említi meg.
Te viszont azt mondod, hogy symfony / laravel / egyéb console libet kell használni. Ezt bővebb kifejtés nélkül nehezen fogadom el: nem látom, miért lenne szükség ekkora rutinkönyvtárakra olyan esetekben, amit egy bash scripttel is meg lehet oldani (ha nem lehet, mert alkalmazáslogika van benne, az nyilvánvaló, de az meg projektfüggő).
Azért egy getopt();-ot összerakni bash-ben agyhalál. Legalábbis nekem. Minden paraméternél szét kell választani a kulcsot meg az értéket. És ha még egyenlőség-jelet vagy aposztrófokat is használunk... jaj :D
De persze bőven benne van a pakliban, hogy a bash-tudásom nem túl alapos, és csak magamat szivattam, amikor ezzel próbálkoztam :P
Azt nem mondtam, hogy tökéletes.
De ugye ott tartottunk, hogy shell. Bash-t nem igazán illik sem FPS játékok, sem adatbányászati eszközök írására használni. ;)
Ugyanígy kitartok azon véleményem mellett, hogy a PHP maradjon csak a weben, ha egyéb szkriptelős feladat adódik, arra van perl, python, ruby...
Már leírtam: a PHP webre lett kitalálva, optimalizálva etc.
De mondok mást: PHP-t csak ott szokás telepíteni, ahol szükség is van rá. Linuxokon, unixokon nagyon ritka, ha python vagy perl nincs telepítve.
A PHP annyiban több a hasonló scriptnyelveknél, hogy a PHP tag-ek közti szövegeket (<?php ?>ezt<?php ?>) változtatás nélkül adja vissza.
A PHP önmagában annyit csinál, hogy egy bejövő .php kiterjesztésű dokumentumot egy kimenő dokumentumba transzformál. Nincs benne semmilyen optimalizáció, ne keverd össze az interface-ével, ami lehet Apache, FastCGI vagy parancssor és társaik.
De mondok mást: PHP-t csak ott szokás telepíteni, ahol szükség is van rá. Linuxokon, unixokon nagyon ritka, ha python vagy perl nincs telepítve.
Ez egy webfejlesztő fórum, a négyes hozzászólásban leírtam, hogy a weboldalak 80%-át, de legalábbis tekintélyes részét php szolgálja ki, és valószínűsíthető, hogy az olvasók hasonló arányban ezzel a nyelvvel dolgoznak, így releváns számukra ez a blogmark.
OPTIONS
-a, --alternative
Allow long options to start with a single '-'.
-h, --help
Display help text and exit. No other output is generated.
-l, --longoptions longopts
The long (multi-character) options to be recognized. More than one option name may be specified at once, by separating
the names with commas. This option may be given more than once, the longopts are cumulative. Each long option name in
longopts may be followed by one colon to indicate it has a required argument, and by two colons to indicate it has an
optional argument.
... mivel töredelmesen bevallom, nem vettem a fáradtságot, hogy nyissak egy konzolt, hogy megnézzem a man-t, viszont a google meg a fenti linkemet dobta a kérdésemre :((
Mindazonáltal én azt a szabályt használom:
- script (cron, worker, fixture stb), ami a PHP által kiszolgált oldal adatait használja / manipulálja: PHP script
- script, ami csak közvetve áll kapcsolatban a weboldallal, és nem igényel túlzott bűvészkedést (pl mysql dump, tmp cleanup, git post-commit hook stb): bash script
2016-ban azért bátorság kell
Miért?
Nem szabad elfelejtkezni a kezdőkről. Lehet, hogy számodra ez a blogmark nem hoz semmilyen újdonságot, de aki például most vág bele a szakmába, nem biztos, hogy neki ez annyira triviális.
A PHP kifejezetten webre lett
Ha parancssor kell és nem elég a bash, még mindig van csh, zsh, ha ez is kevés, akkor awk, perl, python, ruby... millió eszköz, amiből legalább egyet mindenképp meg kell ismernie egy fejlesztőnek.
A website-ok 80%-án php fut,
A bash-sel nekem az a bajom, hogy nem igazán intuitív (kezdőknek!), például
Ránézel, és lehet találgatni, hogy mi mit jelent. Például nem egyértelmű, hogy a szögletes zárójelnek tűnő karakterek igazából (kvázi) programok, nem zárójelek, mint máshol megszokhattuk, így utánuk kell szóköz.
Ugyanez PHP segítségével:
Ha ismered, nem kell
Viszont úgy nekiesni a "programozásnak", hogy nem ismered a shellt, amin dolgozol... (cmd.exe, bash stb.) Az azért elég gáz.
Normális körülmények közt a shell az első, amit meg kell tanulni legalább alap szinten.
Így van
Ökölszabályom: ha vezérlési
Bash
Ugyanis néhány alap tool (mint amilyen a pl. sed is) nem portabilisek.
Olyan kapcsolóval is rendelkezik (-i) amit máshogyan kell paraméterezni Mac (OS X)-en mint Linuxon.
Pont most linkeltem én is
Callback shell : )
Az aktuális kódban yield-el
Ebben igazad van, viszont ez
Aztán gyorsan rátérni a lényegre... symfony / laravel / egyéb console lib. Ma már ez az alap, kezdőknek is ezt kell tanítani.
Végigolvastam ismét a cikket,
Te viszont azt mondod, hogy symfony / laravel / egyéb console libet kell használni. Ezt bővebb kifejtés nélkül nehezen fogadom el: nem látom, miért lenne szükség ekkora rutinkönyvtárakra olyan esetekben, amit egy bash scripttel is meg lehet oldani (ha nem lehet, mert alkalmazáslogika van benne, az nyilvánvaló, de az meg projektfüggő).
getopt();
De persze bőven benne van a pakliban, hogy a bash-tudásom nem túl alapos, és csak magamat szivattam, amikor ezzel próbálkoztam :P
Passz, én nem értek hozzá.
Ö... izé... man getopt;
jééé
Bár...:
forrás
Azt nem mondtam, hogy
De ugye ott tartottunk, hogy shell. Bash-t nem igazán illik sem FPS játékok, sem adatbányászati eszközök írására használni. ;)
Ugyanígy kitartok azon véleményem mellett, hogy a PHP maradjon csak a weben, ha egyéb szkriptelős feladat adódik, arra van perl, python, ruby...
Mik az érveid?
Már leírtam: a PHP webre lett
De mondok mást: PHP-t csak ott szokás telepíteni, ahol szükség is van rá. Linuxokon, unixokon nagyon ritka, ha python vagy perl nincs telepítve.
PHP
A PHP önmagában annyit csinál, hogy egy bejövő .php kiterjesztésű dokumentumot egy kimenő dokumentumba transzformál. Nincs benne semmilyen optimalizáció, ne keverd össze az interface-ével, ami lehet Apache, FastCGI vagy parancssor és társaik.
... de lehet, hogy kissé elavult a forrásod ...
-a, --alternative
Allow long options to start with a single '-'.
-h, --help
Display help text and exit. No other output is generated.
-l, --longoptions longopts
The long (multi-character) options to be recognized. More than one option name may be specified at once, by separating
the names with commas. This option may be given more than once, the longopts are cumulative. Each long option name in
longopts may be followed by one colon to indicate it has a required argument, and by two colons to indicate it has an
optional argument.
Simán meglehet...
Mindazonáltal én azt a szabályt használom:
- script (cron, worker, fixture stb), ami a PHP által kiszolgált oldal adatait használja / manipulálja: PHP script
- script, ami csak közvetve áll kapcsolatban a weboldallal, és nem igényel túlzott bűvészkedést (pl mysql dump, tmp cleanup, git post-commit hook stb): bash script