Il linguaggio di programmazione PHP
 

riga di comando con opzioni obbligatorie

alex 26 Set 2016 13:07
Molti di voi conosceranno la libreria Console_CommandLine; ecco un
esempio di utilizzo

$parser = new Console_CommandLine(array(
'description' => 'zip given files using the php zip module.',
'version' => '1.0.0'
));

// add an option to make the program verbose
$parser->addOption('verbose', array(
'short_name' => '-v',
'long_name' => '--verbose',
'action' => 'StoreTrue',
'description' => 'turn on verbose output'
));

// add an option to delete original files after zipping
$parser->addOption('logs_dir', array(
'long_name' => '--logs-dir',
'action' => 'StoreString',
));

// add the files argument, the user can specify one or several files
$parser->addArgument('files', array(
'multiple' => true,
'description' => 'list of files to zip separated by spaces'
));

// add the zip ******* name argument
$parser->addArgument('zipfile', array('description' => 'zip ******* name'));

// run the parser
try {
$result = $parser->parse();
// write your program here...
print_r($result->options);
print_r($result->args);
} catch (Exception $exc) {
$parser->displayError($exc->getMessage());
}


Bene ok. Ma una domanda: Si può fare in modo che l'opzione 'logs_dir'
sia obbligatoria?
Cioè che se non specificata venga generato un apposito errore?
Leonardo Serni 26 Set 2016 14:49
On Mon, 26 Sep 2016 13:07:29 +0200, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:

>Molti di voi conosceranno la libreria Console_CommandLine; ecco un
>esempio di utilizzo

>// add an option to delete original files after zipping
>$parser->addOption('logs_dir', array(
> 'long_name' => '--logs-dir',
> 'action' => 'StoreString',
>));

>Bene ok. Ma una domanda: Si può fare in modo che l'opzione 'logs_dir'
>sia obbligatoria?

Dovrebbe esserlo già. Per default, argument_optional è false.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
alex 26 Set 2016 22:12
Il 26/09/2016 14:49, Leonardo Serni ha scritto:
> On Mon, 26 Sep 2016 13:07:29 +0200, alex
<1j9448a02@lnx159sneakemail.com.invalid> wrote:
>
>> Molti di voi conosceranno la libreria Console_CommandLine; ecco un
>> esempio di utilizzo
>
>> // add an option to delete original files after zipping
>> $parser->addOption('logs_dir', array(
>> 'long_name' => '--logs-dir',
>> 'action' => 'StoreString',
>> ));
>
>> Bene ok. Ma una domanda: Si può fare in modo che l'opzione 'logs_dir'
>> sia obbligatoria?
>
> Dovrebbe esserlo già. Per default, argument_optional è false.
>
> Leonardo
>

alla fine mi serviva un comando (addCommand()) non un'opzione, grazie
comunque
alex 27 Set 2016 08:25
Il 26/09/2016 22:12, alex ha scritto:
>
> alla fine mi serviva un comando (addCommand()) non un'opzione, grazie
> comunque

E gira e rigira sto constatando che l'opzione obbligatoria invece mi
serve anche.
Ecco l'esempio di riga di comando:

php mio_script_eseguibile.php copy /dir1 /dir2 --logs-dir=/logs

Come vedete c'è:
- il comando: copy
- i parametri: /dir1, /dir2
- l'opzione: --logs-dir, che però deve essere specificata obbligatoriamente.
Se non viene specificata vorrei che quindi venga generato un apposito
errore (cosa che non accade).
Come fare?

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.