Tharos / LeanMapper

Lean Mapper is a tiny ORM based on powerful Dibi database abstraction library for PHP.
MIT License
87 stars 35 forks source link

Improved Connection - added hasFilter function #26

Closed pmachan closed 10 years ago

pmachan commented 10 years ago

Pokud není možné registrovat filtr při vytváření connection z důvodu kruhové závislosti je potřeba filter registrovat až za běhu (třeba v repository) a je nutné mít možnost zkontrolovat jeho existenci.

Příklad: potřebujeme zaregistrovat překladové filtry, které využívají LanguageFacade (má za úkol držet seznam jazyků, který načteme při inicializaci a zněhož dále získáváme pro překlady požadovaný jazyk). LanguageFacade (LanguageRepository) má závislost na Connection (kruhová závislost Filter > Connection > Filter). Překladové filtry zaregistruji v Abstract TranslationRepository, který využíváme pro překladové repositáře. TranslationRepository se může použít za 1 request vícekrát a connection by vyhazoval při registerFilter - InvalidArgumentException. Pomocí této vyjímky by se to dalo ošetřit, ale registrace filtru tuto vyjímku vyhazuje při více scénářích.

Tharos commented 10 years ago

Dobrý postřeh. Díky!