developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#408 closed enhancement (fixed)

cmdline.php "Error: two many parameter"

Reported by: hugues Owned by: laurentj
Priority: normal Milestone: Jelix 1.0.3
Component: jelix:core response Version: 1.0RC2
Severity: minor Keywords: cmdline
Cc: Blocked By:
Blocking: Documentation needed:
Hosting Provider: Php version: PHP 5.2.3 (cli)

Description

class defaultCtrl extends jControllerCmdLine {

    protected $allowed_options = array(
		'index' => array(),
		'testage' => array()
	);

    protected $allowed_parameters = array(
		'index' => array(),
		'testage' => array('plouf' => true)
	);

	public $help = array(
	    'index' => 'tu sors',
	    'testage' => 'on test ?'
	);

    /**
    *
    */
    function index() {
        $rep = $this->getResponse('text');
        $rep->content = 'bye';
        return $rep;
    }

    /**
    *
    */
    function testage() {
        $rep = $this->getResponse('text');
        $rep->content = 'plouf = '.$this->param('plouf');
        return $rep;
    }
}

php cmdline.php "cron~default:test" help php cmdline.php "cron~default:test" 3

dans les 2 cas, j'ai l'erreur "Error: two many parameters"

Si ca peux aider, voila des infos d'un print_r de _SERVER

    [argv] => Array
        (
            [0] => cmdline.php
            [1] => cron~default:test
            [2] => 3
        )

    [argc] => 3

Quand je renomme le controlleur en test, j'ai toujours l'erreur sur index, mais

php cmdline.php "cron~test:test" help
php cmdline.php "cron~test:test" 3

renvoie tout les

plouf = help
plouf = 3

Change History (4)

comment:1 Changed 13 years ago by laurentj

  • Component changed from jelix to jelix:core response
  • Keywords cmdline added
  • Owner set to laurentj
php cmdline.php "cron~default:test" help
php cmdline.php "cron~default:test" 3

dans les 2 cas, j'ai l'erreur "Error: two many parameters"

ça c'est normal :

  • l'action default:test n'existe pas
  • et aucun paramètre n'est permis pour cette action d'aprés ce que tu as mis dans ton controleur.

De plus, pour afficher l'aide, la doc était erronée. Il faut taper :

php cmdline.php jelix~help:index "cron~default:test"

Bref, le bug est invalide pour moi.

comment:2 Changed 13 years ago by hugues

après quelques test chez moi, c'était un problème de minuscule/majuscule

si j'ai une fonction Testage dans mon controlleur, et que je l'appelle en ligne de commande via testage ( sans le T majuscule ) il trouve bien la fonction, mais du coup ne trouve pas ses options et paramètres.

Si on lui passe des arguments du coup, comme il ne trouve pas d'option, logiquement, il me renvoie l'erreur "Error: two many parameters"

En espérant avoir été a peu près clair. Ce n'est donc en effet pas réellement un bug...

comment:3 Changed 13 years ago by laurentj

  • Milestone set to Jelix 1.0.3
  • Resolution set to fixed
  • Status changed from new to closed

J'ai amélioré la prise en charge des erreurs dans les clis :

  • maintenant il y a une erreur explicite quand il ne trouve pas la commande (case sensitive donc)
  • messages d'erreurs localisés
  • commentaires additionnels dans le template du controleur cli dans jelix-scripts

Fait dans le trunk et branches 1.0.x. svn 778.

comment:4 Changed 13 years ago by laurentj

  • Severity changed from normal to minor
  • Type changed from bug to enhancement
Note: See TracTickets for help on using tickets.