LINUX.ORG.RU

Bash и полиморфизм

 , , , ,


0

4

ИМХО, в баше очень сильно не хватает полиморфизма. Вот, к примеру, чтобы обработать строку и файл, мы должны применять разный синтаксис

echo the_string | program foo
program foo theFile
А будь у нас полиморфизм и ООП, мы могли бы все записывать единообразно
the_srting program(foo)
the_file program(foo)
и пиша обертки над таким кодом, мы могли бы полностью абстрагироваться от входного типа.

Тут еще спасает то, что типов раз два и обчелся. А если бы их было много, мы бы вешались с этим не-ООП.

Вот такая печальная правда :(



Последнее исправление: callbackhell (всего исправлений: 3)
Ответ на: комментарий от contra_sperm_spero

Эка лихо Вы приравняли похапэшников ко всем веб-программерам.

Эка я лихо никого ни к кому не приравнивал, а просто из опыта знаю что многие (не все, но многие) WEB-программеры знают хоть немного php.

А так-то PHP для CLI хорош, только параметры ему передаются через жопу,

Ну ооооочень тяжело:

test.php:

print_r($argv);
Shell:

$ php -q test.php foo bar
Array
(
    [0] => test.php
    [1] => foo
    [2] => bar
)

(C) http://stackoverflow.com/questions/6763997/shell-run-execute-php-script-with-...

и для красивого вывода...

Вообще мимо.

P. S. Да, с Новым Годом.

Kroz ★★★★★
()
Последнее исправление: Kroz (всего исправлений: 1)
Ответ на: комментарий от Kroz

хоть немного

То есть если бэкендоопыт человека связан в основном с Python, Ruby, Node.JS, Java, Perl — Вы всё равно предлагаете ему писать на PHP?

test.php foo bar

Я про ключи.

Вообще мимо.

Ну покажите ncurses для PHP.

contra_sperm_spero
()
Ответ на: комментарий от contra_sperm_spero

То есть если бэкендоопыт человека связан в основном с Python, Ruby, Node.JS, Java, Perl — Вы всё равно предлагаете ему писать на PHP?

Специально ж написал....

(не все, но многие)


test.php foo bar

Я про ключи.

Приведи конкретный пример

Ну покажите ncurses для PHP.

Ты осознаешь область использования bash?

Kroz ★★★★★
()
Ответ на: комментарий от Kroz

Приведи конкретный пример

php -f enf.php -- --noxtr -c13 --folder test --name result

Из недавнего. Достигается наркоманией с getopt.

Ты осознаешь область использования bash?

А при чём тут Bash, если это другого уровня язык?

contra_sperm_spero
()
Ответ на: комментарий от Kroz

Притом, что посмотри на название темы

Так тут вся тема о том, что баш не для таких задач ващи.

Пример попробую на досуге.

Так без самого скрипта-то толку?

$FOLDER=getopt('', array('folder:'))['folder'];

...
if (!getopt('',array('noxtr'))) {
...
} else {
    $COUNT = getopt('c:')['c'];
}
...

if (!getopt('',array('nofilter'))) {
    $NAME=getopt('', array('name:'))['name'];
...

contra_sperm_spero
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.