【问题标题】:PHP - Does a class need to have the same name as the file?PHP - 一个类是否需要与文件同名?
【发布时间】:2011-06-21 02:51:41
【问题描述】:

一个类是否需要与它的文件同名。

例如。 class.mysql.php 和里面有 mysql 类(相同)

例如。 class.fish.php 和里面有类 mysql (diff)

类文件名的格式也可以是name.class.php还是必须是class.name.php?

谢谢

【问题讨论】:

  • class. 文件名前缀约定也不再是现代的了。

标签: php oop class


【解决方案1】:

文件名和类名之间没有联系,你可以为文件中的类命名任何你想要的,有多个类或根本没有类。但是,最好制定一个一致的约定来通过文件名指示文件包含的内容。

编辑:

由于其中一些约定发生了变化,请参阅下面 Jason McCreary 的回答。

【讨论】:

  • 你能再举一些例子吗?例如,我有一个名为:“win-a-prize.php”的页面,其中包含提交参与者联系人的表单。我不确定是否应该将类命名为:class WinaPrize extends Controller{},或者像 class WinApp extends Controller{}
  • 这个答案可能会让你失望。像 Laravel 这样的现代产品正在使用 PSR-4 约定,这非常重要。取自以下 Jason 的回答:文件名应与类名完全匹配(带有 .php 扩展名),路径应与类命名空间匹配。
  • 我已更新我的答案以参考 Jason 的答案。
【解决方案2】:

两个帐户都没有。这些只是 PHP 开发人员的常见约定。如果您想关注他们,这取决于您。

更新

虽然我最初的回答在技术上仍然是正确的,但在过去 5 年中,惯例发生了变化。值得注意的是 PHP Standards Recommendations 发布了 PSR-0,现在是 PSR-4。这些概述了 PHP 类的文件名以及它们的路径以及它们应该如何命名空间和自动加载。

您应该阅读规范以了解更多详细信息,但换句话说,文件名应与具有.php 扩展名的类名匹配,并且路径应与类namespace 匹配。

例如,具有命名空间Acme 的类Widget 将具有路径:base/path/Acme/Widget.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-17
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多