首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从框架到非框架

从框架到非框架
EN

Stack Overflow用户
提问于 2010-09-07 09:09:16
回答 9查看 13.6K关注 0票数 89

作为一个爱好,我已经用PHP开发了大约8年。2009年,我开始学习codeigniter,从那时起,我再也没有开发过一个项目。

我发现,如果我是在纯PHP中工作,我就会知道,或者我可以快速找到一个用于的代码片段,但如果我试图找出如何修改它以达到我想要的方式,这会减慢我的速度。

我试过CodeIgniter,Kohana和Symfony。我喜欢它的易用性(我也开始使用doctrine作为ORM,这极大地加速了我的数据库工作),但我发现项目花费的时间是纯PHP的3-4倍。当我找不到一个我以前用纯PHP解决的问题的解决方案时,我会感到无聊和沮丧。

有没有人从使用框架回到无框架的方法。有没有类似于基本安全框架的东西(防止XSS,过滤发布的数据,提供用于数据库的清理功能)?我认为这样的东西会比一个完整的框架给我带来更多的好处。我认为学习使用框架教会了我很多东西,但我更喜欢使用自己的代码。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-09-07 09:43:07

当前版本的PHP5包含了您正在寻找的作为标准库一部分的大部分安全框架。

  • session.use_only_cookies (防止会话令牌泄漏到outside.
  • Access中)或
    • 属性httponly (防止脚本读取兼容的建议中的会话cookie和
      • 示例代码在Wikipedia.
      • You上,还可以对setcookie().

    使用httponly属性

  • 没有比基本模板和header-setting更花哨的新特性了:
    • header-setting(有助于防止WiFi HTTP (限制页面嵌入)。很好地对抗phishing.)
    • HTML5 IFrame Sandbox Attribute (沙盒第三方广告/徽章/视频。已经在WebKit中了。可能至少部分实现在火狐11.)
    • Content Security Policy (火狐4的新安全框架,对沙盒属性的补充。现在也正在实现in Chrome.)

如果您接受超文本标记语言作为输入,我建议获取HTML Purifier并在filter_input_array设置中通过FILTER_CALLBACK行调用它。它的基于白名单的输入安全性方法为XSS提供了强大的(且非常强大的)第一道防线。

据我所知,PHP没有提供防御cross-site request forgery的机制,但我相信Google可以帮助你做到这一点。如果您想实现自己保护,OWASP Security Cheatsheets会包含一个关于它的部分。

出于好奇,我决定也开始研究独立的组件,这是我到目前为止发现的:

模板:

  • PHP Template Inheritance +模板inheritance)
  • TWIG (Django/jjana2/Liquid-style语法,包括自动转义和沙箱。编译成用于speed.)
  • Dwoo的缓存PHP ( Smarty的后继者,速度更快,功能更丰富,PHP5-ish。包括与现有Smarty模板兼容的系统。)

我还没有好好研究过的东西:

  • 路由调度(到目前为止只找到RouteMapNet_URL_Mapper。谢谢,cweiske.)
  • ORM (以防你不喜欢裸体PDO )
票数 101
EN

Stack Overflow用户

发布于 2014-05-27 06:02:47

我不相信框架...我在其中的许多公司工作过。

讨厌MVC框架的原因:

1)代码膨胀,我购买有助于我开发的高级类。例如窗体类或SQL类。

2)我认为MVC框架不容易移植,特别是在使用依赖项管理器时。

3)我相信,与使用包含大量处理身份验证等有用类的样板相比,使用MVC框架可以编写更多的代码。

4)大多数框架本身也只支持一个或两个数据库。

我建议找一个具有身份验证和文本编辑器的表单框架&像madoo + email类这样的sql框架……

90%的应用程序始终是表单、sql和ajax类-其余的可以在需要时获取

我是一个极简主义者,在我的应用程序中有没有做任何事情的代码的想法让我苦苦挣扎。以防我需要它对我不起作用。

票数 10
EN

Stack Overflow用户

发布于 2010-09-07 09:15:41

有了这么多的经验,你必须有一套你自己喜欢的库,手工挑选它们,并提出你自己的简单框架。框架或没有框架(以及哪一个框架)取决于手头的项目类型,没有万能的手套。因此,我强烈建议,如果你觉得现有的框架正在拖慢你的速度,花点时间,想出一个根据你的需求工作的框架。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3655145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档