[Dbix-class] How to build a "good" object with deep nested prefetched rows from raw data?

Dmitry L. dim0xff at gmail.com
Thu May 2 09:39:24 GMT 2013


SGVsbG8hCgpPVkVSVklFVwpJbWFnaW5lIHRoYXQgd2UgaGF2ZSBzb21lIGRhdGEgaW4gREIsIHdo
aWNoIGNhbiBiZSByZXByZXNlbnRlZCBpbiBuZXN0ZWQKc3RydWN0dXJlIEVnLiBjYXRlZ29yaWVz
IHRyZWU6CkNSRUFURSBUQUJMRSBjYXRlZ29yaWVzICgKICAgIGlkIElOVCBOT1QgTlVMTCwKICAg
IHBhcmVudF9pZCBJTlQgTlVMTCAsCiAgICB0aXRsZSBURVhULAogICAgQ09OU1RSQUlOVCAic3Vi
Y2F0ZWdvcmllcyIgRk9SRUlHTiBLRVkoInBhcmVudF9pZCIpIFJFRkVSRU5DRVMKImNhdGVnb3Jp
ZXMiKCJpZCIpCik7CgpQUk9CTEVNCk5vdyB3ZSB3YW50IHRvIHJldHJpZXZlIGFsbCBzdWJjYXRl
Z29yaWVzIGZvciBjYXRlZ29yeShpZCA9ICRpZCkgd2l0aCAzcmQKbmVzdGVkIGxldmVsLiBGb3Ig
ZXhhbXBsZSB3ZSB3aWxsIHdhbnQgcmV0cmlldmUgdGhlIG5leHQgc3RydWN0dXJlOgpDYXRlZ29y
eShpZD0kaWQpCi0gQ2F0ZWdvcnkgMShpZD1pZDEsIHBhcmVudF9pZD0kaWQpCi0gLSBDYXRlZ29y
eSAxLTEoaWQ9aWQzLCBwYXJlbnRfaWQ9aWQxKQotIC0gQ2F0ZWdvcnkgMS0yKGlkPWlkNCwgcGFy
ZW50X2lkPWlkMSkKLSAtIENhdGVnb3J5IDEtMyhpZD1pZDUsIHBhcmVudF9pZD1pZDEpCi0gQ2F0
ZWdvcnkgMihpZD1pZDIsIHBhcmVudF9pZD0kaWQpCi0gLSBDYXRlZ29yeSAyLTEoaWQ9aWQ2LCBw
YXJlbnRfaWQ9aWQyKQoKSW4gb3VyIGNvZGUgd2UgY2FuIGRvIHRoaXMgdmllIERCSXg6OkNsYXNz
CiRycyA9ICRzY2hlbWEKICAgIC0+cmVzdWx0c2V0KCdDYXRlZ29yaWVzJykKICAgIC0+c2VhcmNo
KAogICAgICAgIHsKICAgICAgICAgICAgJ21lLmlkJyA9PiRpZAogICAgICAgIH0sCiAgICAgICAg
ewogICAgICAgICAgICBwcmVmZXRjaCA9PiB7J3N1YmNhdGVnb3JpZXMnID0+ICdzdWJjYXRlZ29y
aWVzJ30KICAgICAgICB9CiAgICApOwoKQW5kIG5vdyB3ZSBjYW4gY2FsbCBzb21ldGhpbmcgbGlr
ZQokcnMtPmZpcnN0LT5zdWJjYXRlZ29yaWVzLT5maXJzdC0+c3ViY2F0ZWdvcmllcy0+Zmlyc3Qt
Pi4uLi0+dGl0bGUKCkFuZCB3ZSB3aWxsIGdldCBxdWVyeSBsaWtlIC4uLiBMRUZUIEpPSU4gLi4u
IExFRlQgSk9JTiAuLi4KSWYgd2Ugd2FudCB0aGUgNHRoIG5lc3RlZCBsZXZlbCwgd2Ugd2lsbCBn
ZXQgKExFRlQgSk9JTikgeCAzLgpJZiB3ZSB3YW50IHRoZSBNdGggbmVzdGVkIGxldmVsLCB3ZSB3
ZWxsIGdldCAoTEVGVCBKT0lOKSB4IE0uCgpTT0xWRQpTbywgdG8gc29sdmUgdGhpcyBtdWx0aXBs
ZSBMRUZUIEpPSU4gd2UndmUgY3JlYXRlZCBzb21lIHN0b3JlZCBwcm9jZWR1cmUgaW4KREIsIHdo
aWNoIHJldHVybnMgdGhlIHNhbWUgZGF0YSBhcyBtdWx0aXBsZSBMRUZUIEpPSU4KKGNhdGVnb3J5
X2Rlc2NlbmRhbnRzKGlkKSkuIGJ1dCByZXR1cm5zIGl0IHZlcnkgZmFzdC4KClFVRVNUSU9OCkhv
dyBjYW4gSSBjb252ZXJ0IHJhdyBkYXRhLCB3aGljaCBjb3VsZCBiZSByZXR1cm5lZCBieSBjYWxs
aW5nCmNhdGVnb3J5X2Rlc2NlbmRhbnRzKCRpZCksIHRvIGEgImdvb2QiIERCSXg6OkNsYXNzIG9i
amVjdD8KSSB3YW50IHRvIGNhbGwgY2F0ZWdvcnlfZGVzY2VuZGFudHMoJGlkKSwgYW5kIHRoZW4g
SSB3YW50IHRvIHVzZSBzb21ldGhpbmcKbGlrZSB0aGlzOgokcnMtPmZpcnN0LT5zdWJjYXRlZ29y
aWVzLT5maXJzdC0+c3ViY2F0ZWdvcmllcy0+Zmlyc3QtPi4uLi0+dGl0bGUKClRoYW5rIHlvdSEK
Ci0tIAovL3diciwgRG1pdHJ5IEwuCi0tLS0tLS0tLS0tLS0tIG5leHQgcGFydCAtLS0tLS0tLS0t
LS0tLQpBbiBIVE1MIGF0dGFjaG1lbnQgd2FzIHNjcnViYmVkLi4uClVSTDogaHR0cDovL2xpc3Rz
LnNjc3lzLmNvLnVrL3BpcGVybWFpbC9kYml4LWNsYXNzL2F0dGFjaG1lbnRzLzIwMTMwNTAyLzgy
YzI5NWZhL2F0dGFjaG1lbnQuaHRtCg==


More information about the DBIx-Class mailing list