首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP:个人框架

PHP:个人框架
EN

Stack Overflow用户
提问于 2010-01-31 17:06:26
回答 8查看 1.2K关注 0票数 5

我将用PHP为我的web项目编写一个框架。请不要告诉我是否考虑使用一些现有的框架(Cake、CodeIgniter、Symfony等)--我已经看过它们,并决定自己编写一个框架。

框架本身将主要由一个模块系统、一个数据库处理程序和一个模板解析器组成。(当然还有很多其他的事情)

对于模块系统,我的意思是每个模块都有一个PHP文件和一个或多个与它相关的模板。一个示例模块是modules/login.php,它在设计中使用了templates/login.tpl

这些天来,每个人(?)正在谈论MVC ()概念,而大多数现有的框架也使用它。

,所以我的问题如下:

对于个人framework?

  • Would来说,
  • 非常有效,使用模块系统是个坏主意吗?
  • ,您曾经为自己编写过框架吗?你的experiences?

是什么?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-01-31 17:13:56

对个人框架真的有效吗?

是的,可以的。虽然,这可能有点过分(如果你想学的话,这不一定是件坏事)

使用模块系统是个坏主意吗?

这从来就不是个坏主意。

你曾经为自己写过一个框架吗?你有什么经历?

当我还是实习生的时候,我为我的团队的PHP应用程序编写了一个通用的安全框架。我学到了很多,但作为一个整体,这个项目可能从预先构建的解决方案中受益更多。

当然,如果我只是安装了一个预先构建的解决方案,我就不会学到那么多。所以你总是要考虑到这一点,特别是在个人项目中。有时候,重新发明轮子是你学习的唯一方法。

票数 7
EN

Stack Overflow用户

发布于 2010-01-31 17:44:17

对个人框架真的有效吗?

MVC由于其模糊的解释而不再意味着业务逻辑、表示和输入处理。因此,除非您的目标是设计一个不涉及其中任何三个的应用程序,否则MVC在其模糊的意义上是非常合适的。

但是,通常情况下,它可能比您想要的更正式,因为它要求将想法物理地分离到不同的代码文件中。如果避免了手续的话,快速和肮脏的任务或快速原型可能会更快地建立起来。

从长远来看,MVC所要求的在维护、修改或添加方面有利于应用程序的可持续性。你不会想错过这个的。然而,并不是所有的框架都鼓励正确的实践。我并不惊讶于您发现您尝试过的各种实现都不够充分。我个人最喜欢的是阿加维。对我和其他人来说,在一个PHP框架并不合适的世界里,Agavi出现了去做正确的事情。阿加维值得一试。

使用模块系统是个坏主意吗?

MVC要求您分离业务逻辑、表示和输入处理的组件,但它没有建议如何布局文件。我想这就是你在模块系统中所面临的挑战。要回答您的问题:模块与子目录相同。如果条目很少,那么即使文件逻辑上可以分离到子目录中,子目录的麻烦也可能更大。当项目的数量越来越多,现在它的麻烦,找到他们的所有和子目录成为一个更好的选择。

框架将调整功能,允许您将模块作为自己的可配置实体来处理。同样的功能也可以在没有模块的情况下存在,也许在一个更麻烦的地方。尽管如此,不要将模块主要视为一个系统。系统是如此的模糊,以至于你可以让它们适应任何你认为合适的设置。

你曾经为自己写过一个框架吗?你有什么经历?

是的,我已经写了几个框架,用不同的方法来解决web应用程序的问题。我写的每一个这样的框架都变成了一条至关重要的学习曲线。在我制定的每一个框架中,我发现了越来越多的构建软件的问题。在没有创造任何有趣的东西之后,我仍然收获了,因为当我被要求制作一个程序时,我完全可以公正地做到这一点。

如果这是你想要的学习经验,我建议你继续下去。否则,给阿加维一次机会。如果这也失败了,请确保您有一个明确和详细的规范,您的框架将做什么。最简单的方法,进入软件制造,真正努力工作,什么也没有完成,是不决定之前,你的软件到底要做什么。每次我遇到编写代码的时候,我脑子里唯一想到的就是我会把它做好。发生了不同的事情:哦,我需要建立一个看起来合乎逻辑的路由系统;嗯,好吧,现在我需要一个很好的模板系统;好的,现在是数据库抽象的时间了;但是哎呀,很多想法;我应该从XXY软件中寻找灵感。这是呼吁首先使用现有软件的普遍呼声。

我认为我能做对的原因并不是因为框架的所有细节和螺栓都觉得不对。事实上,我根本不知道他们是对是错,因为我从来没有和他们共事过。我和它一起工作的是搪瓷,感觉很不稳定。得到你自己的框架最快的方法是从另一个人那里偷取螺母和螺栓,并设计你自己的搪瓷。这就是构建应用程序时所看到的,坦率地说,这是唯一重要的部分。其他的一切都是浪费你的时间在样板。然而,为了学习如何构建软件,这并不是浪费时间。

如果你还有其他问题,请问。我很高兴用我自己的经验来回答。

票数 2
EN

Stack Overflow用户

发布于 2010-01-31 17:15:48

实际上,我也在和我的一个朋友一起编写一个php框架。我绝对能理解你在做什么。

我想你所做的是接近mvc的。模板作为视图。并以模块作为控制器。所以我觉得这没什么。你唯一需要的就是模特。那将是某种活跃的记录。

在我的框架中,除了目前我们正在编写自己的活动记录引擎之外,还有一些模拟概念。我觉得你做的还不错。但很难说没有看到代码。

我只看到一个你必须解决的问题。一个框架应该完美地结合起来。在编写应用程序时,让您的模块看起来很好的集成总是很复杂的,而不必总是考虑模块。

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

https://stackoverflow.com/questions/2172538

复制
相关文章

相似问题

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