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

Vyžádování existence @property uvedené v rozhraní, které entita implementuje #76

Open
castamir opened this issue Oct 10, 2014 · 1 comment

Comments

@castamir
Copy link
Collaborator

V určitých situacích je potřeba zjistit, zda entita (obecně třída) implementuje nějaké rozhraní (obecně implementuje nějaké metody). Pokud chceme po nějaké entitě, aby vlastnila nějaké properties, můžeme sice změnit její abstraktní třídu, ovšem tohle řešení je špatné, protože při více takových požadavcích zaráz z více zdrojů narážíme na problém vícenásobné dědičnosti, která v PHP naštěstí ani není. Alternativou je definice těchto properties v rozhraní, ale to jednak současný LM neumí a jednak by to bylo proti principu rozhraní.

Navrhuji tedy, aby parser kontroloval, zda entita obsahuje všechny property anotace uvedené ve všech jejích rozhraních a kontroloval ideálně i datový typ.

příklady rozhraní, které bych ocenil kontrolovat pouze podle toho, zda je entita implementuje:

/**
 * @property BaseEntity $ancestor
 * @property BaseEntity $descendant
 * @property int $depth
 */
interface IClosureEntity {

}
@Tharos
Copy link
Owner

Tharos commented Oct 10, 2014

Já jsem určitě pro, přinese to zase užitečné nové možnosti.

Rozhodně jsem ale pro, aby rozhraní zůstalo rozhraním, a tedy aby se property nepřebírali přímo z něj, ale aby oproti němu byly property konkrétních tříd jen porovnávány.

@castamir castamir self-assigned this Feb 17, 2016
@castamir castamir removed their assignment Apr 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants