1

背景/想法
我目前正在开发一个小型框架,只是为了提高我的 php 知识。这个框架应该非常简单(最小化开销)并且在后期扩展方面很灵活。

不同的含义
由于阅读了更高级的教程、认真的 php 开发人员的笔记、不同的类结构(单例、单例、依赖注入、JIT ......)、oop、mvc、路由、缓存......等等我发现很难过滤“正确的方式”(如果有的话),因为在我看来每个人都说不同的话。

许多人称赞那里的观点是“最好的”,并说与之相关的一切都是邪恶的。在我看来,没有对错之分。只有几种方法可以实现一个人的目标。

到目前为止我做了什么

  • index:ini设置,定义常量,调用bootstrap(不是oop)
  • 引导:自动加载器类、命名空间(按需包含文件)
  • 静态类:htmlManager,fileHandler,databaseManager,...
  • 单身人士:无
  • 非静态类:控制器、模型、视图、路由……

我知道这是非常基础的,到目前为止我没有做太多,但我想首先创建一个可靠的平台。

问题
在我想进一步了解我的项目之前,我很想听听您对下面列出的事情的看法。

  • 您如何组织/构建小型甚至更大的项目?
  • 您在代码的简单性、逻辑性、性能、可读性、可扩展性和可重用性方面有何经验?
  • 真的有一种“正确的编码方式”还是这只是解释?
  • 有什么东西因为已经过时而不能使用吗?

我不想听到的

  • 忘记框架或 php
  • 不要这样做,不要在没有说明原因的情况下这样做

非常感谢我收到的每一个回复。

4

2 回答 2

2

我目前正在开发一个小型框架,只是为了提高我的 php 知识。这个框架应该非常简单(最小化开销)并且在后期扩展方面很灵活。

去吧。

由于阅读了更高级的教程、认真的 php 开发人员的笔记、不同的类结构(单例、单例、依赖注入、JIT ......)、oop、mvc、路由、缓存......以及更多我发现过滤“正确的方式”(如果有的话)非常困难,因为在我看来,每个人都说不同的话。

那是因为有些人不理解为什么应该以某种方式解决某事,或者为什么某事是糟糕的做法,但他们在某个框架上看到了一些东西,他们认为这是自切片面包以来最好的东西。

尽管意见可能不同,但如果您追求的是干净的代码和正确的 OOP,您就不能争论。在适当的 OOP 中,单例和statics 没有位置。此外,大多数人所说的 MVC 实际上是对模式的一些错误看法(主要是因为他们再次看到一些框架以某种方式做到了这一点)。这并不总是坏事,但它不是MVC。

许多人称赞那里的观点是“最好的”,并说与之相关的一切都是邪恶的。在我看来,没有对错之分。只有几种方法可以实现一个人的目标。

在我看来,并不是所有不是最好的都是可怕的。但有些东西只是不好的做法。并且某些模式的定义方式使您的应用程序更易于维护、调试和测试。如果您要实现其他模式,我觉得这一切都很好,但是您将失去其他模式的好处。

一般来说,我在进行 OOP 编程时使用的第一条经验法则是遵循SOLID 原则

静态类:htmlManager,fileHandler,databaseManager,...

这些在适当的 OOP 中没有位置。除其他外,因为这将紧密耦合类。这使得可维护性、可读性和可测试性成为一种痛苦。

单身人士:无

很好,因为它们只是一种幻想global

您如何组织/构建小型甚至更大的项目?

将两个代码中的关注点分离为结构。其中一种模式可以帮助您:MVCMVP、[MVVM](Model View ViewModel)。就我个人而言,我最喜欢 MVC 模式,因为它与其他模式相比有一些很好的好处。

您在代码的简单性、逻辑性、性能、可读性、可扩展性和可重用性方面有何经验?

可读性和可测试性是最重要的。就在那个 SOLID 之后(这也由第一个点(重叠)处理)

  1. 真的有一种“正确的编码方式”还是这只是解释?
  2. 有什么东西因为已经过时而不能使用吗?
  3. 表现

忘记框架或 php 不要这样做,不要在没有说明原因的情况下这样做

正如我之前所说:去吧。做它并搞砸!最好的学习方法是实际去做并犯下可怕的错误。我认为我 1 年前制作的框架(尽管恕我直言仍然比现有框架的 90% 好)是一个适当的废话™。

于 2013-01-25T13:30:34.040 回答
0

您如何组织/构建小型甚至更大的项目?

许多 PHP 框架使用 MVC 结构。

您在代码的简单性、逻辑性、性能、可读性、可扩展性和可重用性方面有何经验?

除了严格遵循 MVC 之外,我建议遵循 KISS 和 DRY 等原则。我不会将性能视为高优先级主题。稍后您可以熟悉缓存策略和好的算法(一般主题,而不是 PHP)。

真的有一种“正确的编码方式”还是这只是解释?

有些事情可以被认为是最佳实践,您会在Zendsymfony等流行框架上找到许多提示。

有什么东西因为已经过时而不能使用吗?

你必须自己找出答案。您可以跳过编写数据库处理并使用 ORM 库,如教义或推进。您可以为您的视图表示选择一个特殊的模板引擎,如 twig 或 smarty。

不要这样做,不要在没有说明原因的情况下这样做

我认为所有长期使用 PHP 的程序员都至少启动过一次自己的框架,没有人反对它,尤其是如果你想提高自己的知识。

于 2013-01-25T12:51:58.243 回答