<berry__> Vraagje: ik heb een activerecordfinder class, die active records kan zoeken en terug pleuren evt in een collectie. Nu heb ik de volgende constructor:
<berry__> __construct ( DatabaseConnection $connection );
<berry__> probleem daar aan is dat ik ook een aantal statische methoden heb, zoals static public function getById (). Als __construct niet is aangeroepen, heeft hij dus ook geen $connection, waardoor hij geen statement kan bouwen. Hoe zouden jullie dit oplossen>
<berry__> Ik heb al zitten denken aan een servicelocator (lees: een veredelde registry), maar dat is ook niet echt mooi. Toen dacht ik aan een static public function setConnection, maar dan zou ik dat ook bij mijn activerecords apart moeten doen.
<rvarkelen> waarom is getById static dan? Want je zou verwachten dat dit op een bestaand object wordt uitgevoerd?
<rvarkelen> blijkbaar is $connection belangrijk
<berry__> rvarkelen, nee, dat werkt helaas niet zo. $connection is erg belangerijk, want daar worden queries op uitgevoerd.
<berry__> Maar: het is mijn bedoeling dat je uiteindelijk kan zeggen: ActiveRecordFinder::findById ( 'user', 1 );
<berry__> probleem is dat die dan nog geen $connect heeft, maar om deze mee te geven tijdens het vinden is ook niet een wenselijke oplossing.