背景/ IDEA
我目前正在研究一个小框架,以提高我的PHP知识。该框架应该非常简单(最小化开销)并且在以后的扩展方面具有灵活性。
不同的含义
阅读更高级的教程,严肃的PHP开发人员,不同的类结构(单身人士,单身人士,依赖注入,JIT,...),oop,mvc,路由,缓存...以及更多我发现的结果很难过滤“正确的方法”(如果有的话),因为在我看来每个人都说不同的东西。
许多人称赞那里的“最好”,并说从那里开始的一切都是邪恶的。在我看来,没有正确或错误。只有几种方法可以实现一个目标。
我发的是什么
我知道这是非常基本的,到目前为止我没那么多,但我想先创建一个坚实的平台。
问题
在我想进一步完成项目之前,我很想听听你对下面列出的事情的看法。
我不想听到的内容
非常感谢我之前收到的所有回复。
答案 0 :(得分:2)
我目前正在研究一个小框架,以提高我的PHP知识。该框架应该非常简单(最小化开销)并且在以后的扩展方面具有灵活性。
去吧。
阅读更高级的教程,严肃的php开发人员,不同的类结构(单身人士,单身人士,依赖注入,JIT,...),oop,mvc,路由,缓存......等等。我觉得很难过滤“正确的方法”(如果有的话),因为在我看来每个人都说不同的东西。
那是因为有些人不理解为什么某些东西应该以某种方式解决,或者为什么某些东西是可怕的做法,但是他们在一些框架上看到了什么,他们认为这是切片面包以来最好的东西。
虽然意见可能会有所不同,但如果您追求的是这样,那么您就无法与干净的代码和适当的OOP争论。在适当的OOP单身人士和static
s没有地方。另外大多数人称之为MVC实际上是对模式的一些错误观点(主要是因为他们再次看到某些框架以某种方式做到了)。这并不总是坏事,但不是 MVC。
许多人称赞那里的“最好”,并说从那里开始的一切都是邪恶的。在我看来,没有正确或错误。只有几种方法可以实现一个目标。
在我看来,并非所有不是最好的东西都是可怕的。但有些东西只是不好的做法。并且某些模式的定义方式使您的应用程序更易于维护,调试和测试。如果你打算实现一些对我来说都很好的其他模式,但是你会失去其他模式带来的好处。
一般来说,我在进行OOP编程时使用的第一个经验法则是遵循SOLID principles。
静态类:htmlManager,fileHandler,databaseManager,...
这些没有适当的OOP。其中因为将紧密耦合类。这使得可维护性,可读性和可测试性变得很痛苦。
单身人士:无
很好,因为它们只是一种幻想global
。
您如何组织/组织小型甚至更大的项目?
将两个代码中的关注点分离为结构。其中一个模式可以帮助您:MVC,MVP,[MVVM](模型视图ViewModel)。就我个人而言,我最喜欢MVC模式,因为它对其他模式有一些很好的好处。
您在简化,逻辑,性能,可读性,可扩展性和代码可重用性方面有哪些经验?
可读性和可测性是最重要的。 紧接着那个SOLID(也由第一个点(重叠)处理)
忘记框架或php 不要这样做,不要在没有命名原因的情况下这样做
正如我之前所说:只是去吧。做它并搞砸了!最好的学习方法实际上是做到这一点并犯下可怕的错误。我认为我1年前制作的框架(虽然imho仍然比那里的90%好)是一个合适的废话™。
答案 1 :(得分:0)
您如何组织/组织小型甚至更大的项目?
许多PHP框架都使用MVC结构。
您在简单性,逻辑性,性能方面的经验是什么? 可读性,可扩展性和代码的可重用性?
除了严格遵循MVC之外,我还建议遵循KISS和DRY等原则。我不认为性能是一个高优先级的主题。您可以稍后熟悉缓存策略和优秀算法(一般主题,而不是PHP)。
是否真的有一种“正确的编码方式”或者只是这样 解释
有些内容可以被视为最佳做法,您会在Zend或symfony等热门框架上找到许多提示。
有什么不应该使用的,因为它已经过时了吗?
你必须自己找出答案。您可以跳过编写数据库处理并使用ORML库,如doctrine或propel。您可以为视图表示选择特殊的模板引擎,如twig或smarty。
不要这样做,不要在没有说出原因
的情况下这样做
我认为所有长期的PHP程序员都至少启动过一次自己的框架,没有任何反对意见,尤其是如果你想提高自己的知识。