php框架 - 构建自己的vs预制

chr*_*ann 11 php frameworks

我正在构建一个当前使用PHP的应用程序,我正在尝试决定是否使用预先存在的框架,如codeigniter或构建我自己的框架.应用程序需要真正可扩展,我想完全控制它,这让我觉得我应该建立自己的,但同时我不想重新发明轮子,如果我不需要.

任何建议都非常感谢.

谢谢

Man*_*kis 14

使用现有框架.

首先,从头开始创建框架代表了对时间和精力的巨大投入.这个过程涉及大量的试验和错误,因为你正在设计一些既简单又强大的东西.对于每个设计决策,您都必须问自己它将如何影响将构建在您的框架上的每个未来项目.

你认为你可以做出每个设计决定并按照你对任何其他软件项目的要求进行权衡,但事情是你不知道你的要求.你无法了解它们,因为一个框架应该能够在其域内做几乎任何事情(或者能够扩展以做几乎任何事情).未来的项目a需要能够做x.您的框架可以在不将其转换为意大利面条代码的情况下实现吗?如果项目b需要做什么呢?如果项目c需要做z怎么办?

你预测了一切吗?

现在对此的正常反应是,如果某些东西不起作用,你将来只会改变它.毕竟这是软件.然而,框架不像一个简单的应用程序.它应该有一个接口,一旦你将它暴露给将要使用它的软件,你就无法改变它.您可以扩展它,但不能更改它.所以现在你必须考虑弃用方法,api版本和版本兼容性.这是一套全新的问题,需要处理正常的框架维护和新的应用程序编写.

然后是文档.您需要API,教程和示例代码.一旦你构建了自己的框架,你也必须处理这个问题.你可以忽略它,但我向你保证,最终你自己需要找出你6个月前写的方法.它返回了什么?如果特殊情况x发生怎么办?您是否已将所有内容写下来,或者是否需要再次单步执行代码?而且我甚至没有提到新团队成员开始使用自定义框架是多么容易,该框架的文档完全或至少主要在您的脑海中.

您还必须承认,除非您正在与最优秀和最聪明的人合作(并且有预算要匹配),否则您将永远不会拥有现有框架所夸大的大量库.您能否比开源社区更快地分析,设计,编码,测试和调试?

最后你应该问问自己,你是否足够熟练地编写框架.您是否深入研究了现代OO PHP5框架的代码,以找出是什么让它成为现实?最重要的是,你知道为什么它以特定的方式做事吗?请记住,您在设计中犯的任何错误都可能会在几个月内爆炸,您可能会一次又一次地为它们付费.

总结一下,我建议你选择一个现有的框架; 然而,这并不意味着你必须选择一个喜欢它.花时间去开发一个新框架,并将其用于学习现有框架.然后您可以扩展它以满足您的需求.还要记住,有些东西你无法做到.但是我向你们保证,你们自己的框架也可能无法做到,所以这并不重要.框架强加了一些限制.这是您为能够更快地开发应用程序而付出的代价.