views:

78

answers:

2

I'm planning to reinvent the wheel by writing a PHP MVC/ORM framework in the near future.

I have already watched several conference presentations on InfoQ, came across numerous slides, which have great impact on my knowledge.

I'm still particularly interested in the best practices of:

  • Framework design
  • TDD (PhpUnit, Selenium)
  • Domain Driven Development
  • Continuous integration (Xinc)
  • Subversion source control

If you have a couple of useful bookmarks or similar that are hard to find with Google, please drop in. :) I'll happily study Anything Driven Development, if that particular Anything really drives your development. :)

+1  A: 

This may help you define the vision. Practical API Design This will help define object relational mapping, the one and only classic Patterns of Enterprise Application Architecture. Specifically chapters 3,4,5.

Also worth studying how other folk have done it. Stand on the shoulders of giants so to speak. Doctorine ORM and Doctorine

Also for the ORM side, read the ORM bible. Information Modeling and Relational Databases:From Conceptual Analysis to Logical Design

scope_creep
+1 thanks for the suggestions. Maybe could you direct me to non-books as well? I find conference presentations to be more useful.
pestaa
A: 

You should get working with Google and enumerate all the existing PHP frameworks, including the less popular ones, those that have been abandoned or faded out of popular use.

Write a summary for each one giving its weaknesses, strengths, and reason for not being more popular. For this last point, try to contact the last known maintainers or users of the less popular frameworks.

Once you have done this, you will have a better idea of where the gaps exist, and what you will need to compete against. This kind of knowledge generally helps strengthen a design so that you waste less time on a learning curve repeating the mistakes of others.

Michael Dillon
I studied many of them already, or at least, partially. I've seen how they accomplish certain tasks, so I can reuse good ideas and think of new ones depending on my needs. Which framework do you consider well-designed?
pestaa