秘橘子微苦 我不喜欢现有的封装过于复杂的框架,其实PHP自己就是一个Web框架,自己实现MVC分离界面和逻辑就好了.我也不喜欢用前端控制器,我推荐页面控制器,这样耦合会小得多. PHP本身就是一个Web框架,看看PHP设计的那些超全局变量就知道了. 合理规划前缀,全部函数都写到functions.php里统一管理,控制器和视图里都可以调用. 把模型分离到/include/functions.php, 把视图分离到/content/themes/default/post.php, 把公共操作统一到/include/common.php,比如用于加载functions.php和验证cookies. 页面控制器/post.php执行common.php,用超全局变量获取参数,调用业务(调用函数,返回数组),渲染视图(输出数组到HTML).一气呵成,一目了然,大道至简,实用至上. 安全方面,用预处理参数化查询防御SQL注入,用htmlspecialchars/HTMLPurifier防御XSS注入,注意前端JS比如jQuery用$("#xss").html()等渲染HTML视图时也要用htmlspecialchars类似函数进行过滤. 比如3个人(分别为A,B,C)共同开发一个PHP项目. 统一由负责人A在common.php中包含functions.php,functions_B.php,functions_C.php. 其他开发者开发时只编辑自己的函数文件,同时规划好前缀,避免命名冲突. 视图里的样式表也是如此,由负责人统一在header.php里引入style.css,style_B.css,style_C.css. 每个页面的容器快,用一个特有的class来区分,比如文章页.cat-post .title {},登录页.cat-login .title {}. 有了这些"前缀",就可以避免不同页面.title样式的互相影响. |
|