【问题标题】:how do I manage filenames in my php project如何在我的 php 项目中管理文件名
【发布时间】:2010-01-04 09:02:12
【问题描述】:

我的 PHP 项目中的文件名管理存在问题。

如果我的项目中有大量 PHP 文件并且我重命名了一个 PHP 文件,那么这将导致在我使用该文件的旧名称的任何地方更改文件名。

我已经针对这种方法调整了一个解决方案,但不知道它是否足够有效(想知道是否有其他方法或解决方案可用?)。

方法如下:

  1. 创建一个包含如下定义语句的 php 文件:

    define("FILENAME_ADD", "addfeedback.php");
    define("FILENAME_EDIT", "editfeedback.php");
    define("FILENAME_DELETE", "deletefeedback.php");

  2. 将此 php 文件包含在您要访问文件名的每个其他文件中(通常在您创建的每个文件中)。

这种方法是否足够有效?

我正在进行的项目并未完全使用 oops 开发,但它使用了一些类,如 paginator 和 session,它们很好地使用了 oops 概念。

请帮帮我。

谢谢

【问题讨论】:

  • 如果你有大量的文件,使用常量并不是一个好主意,但我相信这是唯一的方法。为什么还需要重命名文件?
  • 因为我想以这样一种方式构建这个项目,它需要最少的配置来创建另一个类似的项目。

标签: php project-management project-planning


【解决方案1】:

我不确定这是否真的有帮助,为什么你要重命名一个文件而不用相同的名称重命名常量?你应该采用一个命名方案并坚持下去。

【讨论】:

  • +1 正是我的想法。使用常量没有多大意义
【解决方案2】:

就像其他地方所说的那样,任何体面的 IDE 都会自动更新路径,如果可能的话,最好坚持使用 naming convention, like PEAR and use autoloading

使用define 方法的主要缺点是,您会到处乱扔常量,并有可能与供应商库甚至 PHP 定义的常量发生冲突。如果您真的想在单独的文件中定义所有文件名,请将它们放在一个数组中,例如

<?php // config.inc.php
return array(
    'addFeedback' => '/file/to/add-feedback.php',
    // ...
);

<?php // MyApp.php
    $config = require_once 'config.inc.php';

您的配置也可能驻留在 XML、YAML 或 INI 文件中,但是您必须拥有某种能够读取文件的 Config 类。您经常在当前框架(ZF、Symfony)中看到这种方法。

除此之外,为您的应用程序将向外界提供的操作提供文件名是FrontController patternMVC 的完美用例。结合前面提到的命名约定和自动加载,您根本不必再为包含文件名而烦恼。

【讨论】:

    【解决方案3】:

    任何好的 IDE 都会为您完成这项工作,如果您重命名文件,引用将会更新。

    【讨论】:

    • 但我想要一种方法,其中我可以将文件名定义在一个单独的文件中,以便可以轻松更改它们的名称,而无需任何“查找和替换”的麻烦
    • 想知道这是否是一个好方法?以及它是否有任何缺点。
    【解决方案4】:

    好吧,另一种选择可能是拥有一个“inc.top.php”文件来完成所有的包含。

    如果您已经包含一个包含所有常量的文件,为什么不直接将所有文件包含在该文件中并将其包含在每个文件的顶部?

    我建议从一开始就坚持一个命名约定,因为它会减少产生“奶酪泡芙时刻”的可能性,在这种情况下,您会花费数小时试图找出一个将变成“哦...我忘记重命名文件了!”

    【讨论】:

      【解决方案5】:

      为什么不选择命名约定,然后只使用自动加载器来处理所有分辨率?甚至一些标准化的包含过程。数以千计的 PHP 应用程序(包括 WordPress 和 Drupal 以及 1000 名开发人员)都可以做到这一点,只需极少的努力和严格的约定。

      【讨论】:

      • :) 感谢您的建议。如果您能提供一些有关如何使用自动加载和实现“标准化包含过程”的资源,您将非常高兴
      猜你喜欢
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      相关资源
      最近更新 更多