[TYPO3-50-general] Flow3 and DDD

Nino Martincevic don at zampano.com
Fri Jan 16 08:23:08 CET 2009


Hi folks!

I was excited to finally see a project in the PHP community that tries 
to include some (or most?) of the ideas of DDD.
First: I'm a very enthusiastic follower of this philosophy and never to 
want to switch back again to "conventional" style anymore, like so many 
who inhaled it. The main reason is that it forcefully leads to a pure 
style of OOP programming, following the real true ideas of it, foremost 
decoupling and encapsulation, not just of code but of mindsets.

Most concepts and documents to learn DDD you find came out of the Java 
and .NET world, so for a PHP programmer (still) like me it wasn't that 
easy to convert those ideas to PHP.
Btw: IMHO the most PHP applications and frameworks suffer from the 
"object-relational-impedance-mismatch-mental-illness", just using tools 
and frameworks without knowing how to build true complex OOP applications.

Perhaps it's not the right language for it? I don't want to believe it.
Because I think not the tools limit you but your knowledge and affort to 
change your mind [yes, we can! ;-)]

Currently I have to large projects I've already started with. Much lines 
are written and you won't see any dependency on DB, ORM or "framework" 
(whatever that may be) in it. It's all about the domain.

But here the problems start and that's the main reason for writing this 
long and boring mail: what the PHP community lacks to really develop 
applications DDD-like are these three things:
Hibernate (and I mean real Hibernate, not the many (few?) AR-ORM out 
there), DI/IoC containers, and, with some restrictions, such stuff like 
Qi4j (I must admit i don't like AOP that much, for me it's merely a 
technical way of solving problems. Why should the language alone not be 
enough? But it's another discussion and perhaps I'll switch my mind 
there too...)

So, finally, here are my questions: (Eurovision-like statement ;-)

- Is it possible to use Flow3 or the parts from it, especially the 
mentioned parts I see missing yet in PHP, and more especially the 
ORM/Hibernate part?

- Does Flow3 really follows "pure" DDD concepts, not polluting your 
domain with infrastructural or technical stuff?

- Are the other important concepts of DDD like value objects, domain 
services, bounded contexts etc. implemented or their usage intended?

Sorry for such a long post. But for me it's a very critical moment, if I 
cannnot solve most or many of the problems I have with using the 
language PHP I'm willing to switch, to Java. But I don't want, because 
time is money and I don't believe in technical dictates from technologies.

Thaks (for your patience) and Cheers!
Nino


More information about the TYPO3-project-5_0-general mailing list