为什么特征有时在 PHP 包中被分组为“关注点”?

Ben*_*ett 4 php package

在查看包源文件时,我经常看到一个名为“concerns”的文件夹,它似乎专门存放特征文件。举几个例子:

而其他包只有一个名为“traits”的文件夹来存放特征。前任:

这只是个人喜好,还是将文件夹命名为“Concerns”有什么含义?

ast*_*tax 7

我认为这只是社区选择的一个“足够好”的名字。事实上,特征不是“对象”、“工厂”或“存储库”——它们本身不做任何事情,但它们向使用它们的类添加属性和品质。而“关心”一词不仅意味着“让我担心的事情”,还意味着“关于某事”,这通常与特质的目的相匹配。

就我个人而言,我不认为“关注”这个词比“特质”更好或更能提供信息。特别是对于那些熟悉这个概念和 PHP 术语并且该文件夹确实只包含特征的人来说。但有时最好选择一个更通用的名称,以避免受到特定于语言的命名的束缚。

只是为了澄清这一点 - 您可以在项目“数据库”中调用文件夹/命名空间,但如果稍后您决定仅将数据存储在内存缓存中,那么拥有“内存缓存数据库”会显得意外且奇怪。但如果您选择了一个通用名称“存储”,那么任何数据库、内存缓存甚至远程服务的接口都适合放入其中。

UPD:我太好奇了,做了更多的研究。事实证明,这种情况下的“concern”一词来自 Ruby-on-rails 世界,它基本上与 PHP 中的 Trait 含义相同(另一个非常常见的词是“mixin”):

https://medium.com/@carlescliment/about-rails-concerns-a6b2f1776d7d

如何在 Rails 4 中使用关注点