-
Notifications
You must be signed in to change notification settings - Fork 8
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
Nepovinný parametr #4
Comments
Teď, ať koukám jak koukám, to neuděláš. Každopádně dobrý point. Pro /**
* @property-read OtherData|null $otherData
*/
class Data extends Entry
{
protected static $associations = [
'otherData' => new NullableAssociation(OtherData::class),
];
} S tím že by sis mohl nadefinovat svoje podobné požadavky (se stejným interface), aby se jako prázdné vyhodnotilo i prázdné pole (za mě výchozí |
Pravděpodobně by se pak upravovalo vytváření nových objektů. Možná by se tak nechaly inicializovat i kolekce? Něco jako /**
* @property-read OtherData[] $otherData
*/
class Data extends Entry
{
protected static $associations = [
'otherData' => new ListAssociation(OtherData::class),
];
} A případně to kombinovat (pořadí důležité, jinak by mohly být nullable prvky té kolekce) /**
* @property-read OtherData[]|null $otherData
*/
class Data extends Entry
{
protected static $associations = [
'otherData' => new NullableAssociation(new ListAssociation(OtherData::class)),
];
} |
Po nějakém testování pokud přijde jako hodnota Zároveň do statického pole nevytvoříme novou instanci, jak uvažuji výše. Navrhl bych tedy do syntaxe názvu asociace přidat /**
* @property-read OtherData|null $otherData
*/
class Data extends Entry
{
protected static $associations = [
'?otherData' => OtherData::class,
];
} Což trochu kopíruje syntaxy nullable hodnot v rámci PHP 7.1 :-) |
Uvažuju :), jenom chci věc doplnit i do docky. Prosím jen o malinké strpení… |
Přemýšlím ještě o dalších testech na doplnění a případné úpravy, jak to funguje.
$book = new Book([
'id' => 12,
'title' => 'PHP: The Bad Parts',
'tag_name' => 'bestseller',
'customer_id' => 20,
'a_firstname' => null,
'a_surname' => null,
]); povede na to, že |
To s tím Hezké by asi bylo, aby se vždy vrátila instance Co myslíš? U embedded záznamů je trochu prekérka tohle: https://github.com/Tharos/Schematic/blob/develop/src/Schematic/Entry.php#L152 Nenapadl mě žádný jiný způsob, jak to principiálně lépe vyřešit… Proteď bych možná šel cestou |
Jestli můžu ... Pokud se bavíme o případu, kdy je Jestli ne/rozšiřovat na další falsey hodnoty je otázka. 🤔 |
Rozšířil jsem testy, udělal rebase a zdá se, že vše funguje tak jak bych očekával. Mrkněte na to :) |
Ahoj,
řeším problém s nepovinným parametrem a zjištěním jeho stavu.
Mějme např. následující strukturu, kde
otherData
může být pole hodnot, ale může být inull
nebo prázdné pole.Jak v tomto případě zjistím stav "prázdnosti", resp. že
otherData
nemá žádné property, na které by se dalo přistupovat?Pokud totiž entitu nadefinuji následovně, tak typ property
otherData
bude vždyOtherData
, nehledě na vstup.The text was updated successfully, but these errors were encountered: