Ich kann normalerweise das Verhalten erreichen, das ich wünsche, indem ich nur zufällig verschiedene Permutationen dieser zwei Optionen versuche, aber ich kann noch nicht sagen, dass ich genau weiß, was sie tun. Gibt es ein konkretes Beispiel, das den Unterschied zeigt?Was ist der Unterschied zwischen: Args und: CaptureArgs in Catalyst?
10
A
Antwort
8
:CaptureArgs(N)
wenn mindestens N Args übrig sind. Es wird für nicht terminierte Chained-Handler verwendet.
:Args(N)
passt nur, wenn genau N Argumente übrig sind.
Zum Beispiel
sub catalog : Chained : CaptureArgs(1) {
my ($self, $c, $arg) = @_;
...
}
sub item : Chained('catalog') : Args(2) {
my ($self, $c, $arg1, $arg2) = @_;
...
}
Streichhölzer
/catalog/*/item/*/*
5
CaptureArgs
in Chained Methoden in Katalysator verwendet.
Args
markiert das Ende der verketteten Methode.
Für Ex:
sub base_method : Chained('/') :PathPart("account") :CaptureArgs(0)
{
}
sub after_base : Chained('base_method') :PathPart("org") :CaptureArgs(2)
{
}
sub base_end : Chained('after_base') :PathPart("edit") :Args(1)
{
}
Above gekettet Methoden entsprechen /account/org/*/*/edit/*
.
Hier base_end
ist die Endmethode der Kette. Um das Ende der Kettenaktion zu markieren, wird Args
verwendet. Wenn CaptureArgs
verwendet wird, bedeutet das, dass die Kette noch läuft.
Args
wird auch in anderen Methoden des Katalysators zur Angabe von Argumenten zur Methode verwendet.
Auch von cpan Catalyst::DispatchType::Chained:
The endpoint of the chain specifies how many arguments it
gets through the Args attribute. :Args(0) would be none at all,
:Args without an integer would be unlimited. The path parts that
aren't endpoints are using CaptureArgs to specify how many parameters
they expect to receive.
Verwandte Themen
- 1. Was ist der Unterschied zwischen (string [] args) und System.Environment.CommandLine?
- 2. Was ist der Unterschied zwischen result_of <F(Args...> und decltype <f(args...)>?
- 3. Was ist der Unterschied zwischen `==` und `ist`?
- 4. Was ist der Unterschied zwischen [] String und ... String in Golang?
- 5. Was ist der Unterschied zwischen/* ... */und/** ... */
- 6. Was ist der Unterschied zwischen + = und = +?
- 7. Was ist der Unterschied zwischen $ (()) und Ausdruck?
- 8. Was ist der Unterschied zwischen:.! und: r !?
- 9. Was ist der Unterschied zwischen Verilog! und ~?
- 10. Was ist der Unterschied zwischen Difftime und '-'?
- 11. Was ist der Unterschied zwischen $ und $$?
- 12. was ist der Unterschied zwischen [[], []] und [[]] * 2
- 13. Was ist der Unterschied zwischen `&` und `ref`?
- 14. Was ist der Unterschied zwischen $ (...) und `...`
- 15. Was ist der Unterschied zwischen .Equals und ==
- 16. Was ist der Unterschied zwischen "$^N" und "$ +"?
- 17. Was ist der Unterschied zwischen? und ? = Nil
- 18. Was ist der Unterschied zwischen:
- 19. Was ist der Unterschied zwischen __iter__ und __getitem__?
- 20. Was ist der Unterschied zwischen: und :: und ::: in Javascript Grammatik
- 21. Was ist der Unterschied zwischen add und [] in der Wörterbuchoperation
- 22. Was ist der Unterschied zwischen str.format_map (Mapping) und str.format
- 23. Was ist der Unterschied zwischen InputStream und StreamGobbler?
- 24. Was ist der Unterschied zwischen `-Contains` und` -In` in PowerShell?
- 25. Was ist der Unterschied zwischen ruby send und ruby public_send?
- 26. Was ist der Unterschied zwischen b und c?
- 27. Was ist "string [] args" in der Hauptklasse?
- 28. Was ist der Unterschied zwischen der JSP und der JSTL?
- 29. Was ist der Unterschied zwischen ist - (void) und + (void) Methoden
- 30. Was ist der Unterschied zwischen PS1 und PROMPT_COMMAND ist
dass es schön aufräumt, danke. – friedo