Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rex_type::cast: Explizite Angabe der möglichen Werte möglich #6031

Merged
merged 4 commits into from
Mar 12, 2024

Conversation

gharlan
Copy link
Member

@gharlan gharlan commented Mar 11, 2024

closes #5848

Bei rex_get(), rex_post() etc. ist es neu möglich, explizit die möglichen Werte anzugeben:

$value = rex_get('mykey', ['foo', 'bar', 'baz']);
  • $value ist danach definitiv einer der drei Werte.
  • Wenn mykey nicht gesetzt ist, oder einen anderen Wert enthält, dann wird $value den ersten Wert aus dem Array erhalten (also 'foo'). Das ist konsistent zu dem Verhalten bei anderen Cast-Typen.
  • Optional kann aber auch ein anderer Default-Wert angegeben werden (der nicht im Array sein muss), z.b. null:
    $value = rex_get('mykey', ['foo', 'bar', 'baz'], null);
  • Es können auch Int-Werte im Array sein:
    $value = rex_get('mykey', [10, 20, 50, 100]);

@gharlan gharlan added this to the REDAXO 5.17 milestone Mar 11, 2024
@gharlan gharlan requested a review from tbaddade March 11, 2024 23:58
@gharlan
Copy link
Member Author

gharlan commented Mar 12, 2024

Mir fällt noch ein, dass es auch mit Enums funktionieren sollte:

enum View: string {
    case Grid = 'grid';
    case List = 'list';
}

$view = rex_get('view', View::cases());

Hier sollte $view anschließend eines der Enum-"Objekte" sein. Passe den PR noch entsprechend an.

Edit: erledigt.

@gharlan
Copy link
Member Author

gharlan commented Mar 12, 2024

Man kann es übrigens auch verschachtelt in Array-Shapes nutzen:

$options = rex_post('options', [
    ['foo', 'int', 2],
    ['view', ['grid', 'list']],
]);

$options ist danach ein Array mit den beiden Keys foo (irgendein integer) und view (einer der beiden Werte).

@gharlan gharlan merged commit 1044331 into main Mar 12, 2024
15 checks passed
@gharlan gharlan deleted the values-cast branch March 12, 2024 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

Casten von Werte : erlaubt Werte mitgeben
3 participants