I'm currently under the planning and research stage of a year long web application project that will be, eventually, implemented in php. Being a fourth year Software Engineering student I'm familiar with designing and architecting robust and reliable systems. Implementation wise I am epxerienced with J2EE technology in a struts approach and integrating mostly any Apache Group Project technology.
The project's main topic is that of data management, data retrieval from various sources, data cleasing/scrubbing, staging and sharing.
Now, initially I thought I'd work with J2EE and struts, something I know very well. But discussions with the project's clients, consultants and stakeholders have favoured php technology for various justifyable reasons which I will not get into. The Phrame php Framework follows the struts approach I'm familiar with but I rather favour something totally new. Sticking to one approach all the time isn't good for experience.
Anyhow, I've been researching php web application frameworks that offer the following "functionalities":
- Small Learning Curce (Overall, I'm not familar with php. I've only worked on it once and that was for a minor upgrade and maintenance issue)
- Loosely coupled MVC (i.e. Modularity)
- Object-Oriented
- Object-Record Mapper (ORM)
- Caching (very important)
- Validation
- AJAX (For this project, this is more of a business-level requirement than a technical one)
- Abstraction. This is very important. For instance, I want the coding to be done in terms of objects, methods and properties. Not of URLs and query parameters. Another example would be the use of custom tag librairies.
- Enables/Forces clean coding. Seperating view from logic. This has to do with abstraction and MVC. But I want to stress the importance of this.
- Excellent documentation.
- Active Support.
Based on my current research, I'm leaning towards the ZOOP framework: http://zoopframework.com/
It has excellent documentation, which is a must.
I've heard good things about Seagull, but am not impressed on how it is documented. Unless there's some documentation source I'm missing...
Also, I'm still looking for a php IDE. Since I'm used to eclipse I initially thought I'd just install a php development environment plugin but come to think of it, I rather work with a IDE fully dedicated to php. The IDE I'm looking for has to offer the following:
- Complete Debugger (Code breakpoints, Stack Trace View...)
- Integrated Version Control
- Code Documentation Tool
- Nested Code Completion
- Refactoring
- Overall nice look and feel with syntax highlighting and other features that increase readability
- Automated Packaging and Deployment.
- Plugin Support
Right now I'm looking at Zend Studio.
Any suggestions or discussion on frameworks and IDEs for this particular subject matter?
Cheers and thanks for you inputs.