关于抽象类和接口的 PHP 命名约定

2022-08-30 20:21:59

抽象类是否应始终以前缀和后缀(当它是接口时)?是否有任何标准的命名约定,类似于PSR-0的文件夹结构/命名空间,但对于类?AbstractInterface

这似乎是多余的,因为该语言具有用于此目的的文字关键字。

abstract class AbstractFoo {}

interface InterfaceFoo {}

trait TraitFoo {}

答案 1

虽然没有任何约定,但我认为对各自的组件使用前缀和后缀是一种很好的做法。它有助于一目了然地更好地理解代码,IMO。AbstractInterface


答案 2

PHP-FIG项目确实通过PSR命名约定“ByLaw”提出了命名约定 https://www.php-fig.org/bylaws/psr-naming-conventions/

它指出:

  • 接口必须以接口为后缀:例如Psr\Foo\BarInterface

  • 抽象类必须以抽象为前缀:例如Psr\Foo\AbstractBar

  • 性状必须以性状为后缀:例如Psr\Foo\BarTrait

这些约定通常在包中遵循


推荐