3 回答
TA贡献1847条经验 获得超7个赞
优点
1.容易上手,配置、部署方便
2.编译缓存机制有利于性能提升
3.内置了对REST的支持
MVC和OO啥的就不说了...
缺点
1.麻烦的URL路由
正常模式:
URL -> URL路由 -> 将从URL解析得到的参数和请求传递给入口函数
TP的实现(以正则路由为例):
正则 -> 入口文件 + 动态参数
如:'/^blog\/(\d+)$/' => 'Blog/read?id=:1'
简洁的实现:
'/^blog\/(\d+)$/' => read // function read($id) {...}
此实现便于检查路由规则与入口函数的匹配性并使用户更加方便的使用解析后的URL参数,同时,TP的入口文件设计本就是多此一举。
2.糟糕的模型设计
*1 需要手动建立模型与数据库的关联
缺点:需要进行一系列不必要的配置,与定义模型后自动生成数据库表的行为相悖。
*2 对数据库的抽象远远不够
操作模型时有很强烈的操作数据库感觉,同时由于 2*1 需要手动建立模型与数据库的关联 这一缺点,毫无必要的字段映射让人恼火。
3.垃圾的模板引擎
*1 不支持模板继承
重复写代码很累的亲!
*2 XML格式的模板标签
书写不便,同时容易与HTML标签混淆(最近几年出现的模板引擎已经很少有用XML标签的了...)
*3 不适合前端书写
模板 + 数据 -> 渲染输出
模板由前端书写,数据由后台提供,显然TP的模板对此支持并不好。
*4 不支持模板的部分缓存
缺点:假设页面P由A, B两部分组成,A的更新频率大于B,则页面P的更新频率与A相同。
- 3 回答
- 0 关注
- 733 浏览
添加回答
举报