思路更像springside之于spring(自己对springside了解颇少,此语可能有误)
ThinkPHP(下文简称TP)已经解决了Php Web开发常遇到问题之1,2,3,4
以往用TP做过一些小东东,以偶的小小经验总结写下此文,愿能帮助Phper在Web开发中更方便的解决问题5,6,7,8——偶喜欢用些数字指代,请童鞋们自己看看相关文档和代码就好理解了。
具体切入点(基于TP的扩展方面——本身TP设计为Plugin的架构)
1. 常用的第三方方法和类库 —— 比如captcha,mail,chart,dbbackup-restore等;
2. 加入一些方便的全局变量和方法,比如专门做Memcache的save/get,把lite版本(TP1.5)中的Model重写为SModel只做简单的数据库sql操作,针对Tpl(TP的页面模板引擎)的常量设定;
3. 针对数据库应用的后台作业(数据维护)的自动化以减少重复性开发;
4. 重写了RBAC(建模类由一些关系字符串和方法取代);
5. 在MVC的Action(业务处理器?)层继承扩展了Action并加入了一些常用方法,比如Form Token Check,Authorization Filter等。类比下,就是Spring MVC中实现Controller接口的那些AbstractController之类;
6. 在视图层,对页面元素(css/js/image)等,尤其是其路径,做了大量的约定以便于开发保持一致,具体看Public目录,(偶比较喜欢JQuery);
7. 在开发支持方面,用Groovy AntBuilder写了一些脚本辅助一下。Xrails的create domain / controller之类,不过没细写;
8. 本打算用PHP仿照Fireflow实现一个工作流引擎,后来发现偶实在是有心无力(没这个本事),目前用Groovy在仿写,有了phprpc,多语言交互显得很容易了(貌似php client调用java server的效率很低?)。
白话了不少,估计自己写的代码质量不高,童鞋们看看,拍拍砖——虽然偶一直工作在Java一线,心里真切期望Php在Web开发上多发挥自身优势,汲取Java的A/B/C/D,day day up啊!
附上的代码都是基于TP1.5版本的。
再最后一句——editplus真是很强大啊!