我的PHP项目中的文件名管理存在问题。
如果我的项目中有大量的PHP文件并且我重命名了一个PHP文件,那么这将导致在我使用该文件的旧名称的任何地方更改文件名。
我已经采用了这种方法的解决方案,但不知道它是否足够有效(想知道是否有其他方法或解决方案可用?)。
方法如下:
创建一个php文件,它具有如下定义语句:
define("FILENAME_ADD", "addfeedback.php");
define("FILENAME_EDIT", "editfeedback.php");
define("FILENAME_DELETE", "deletefeedback.php");
将此php文件包含在您要访问文件名的每个其他文件中(通常在您创建的每个文件中)。
这种方法是否足够有效?
我正在开发的项目并没有在oops中完全开发,但它使用了一些像paginator和session这样的类,它们使用了oops概念。
请帮帮我。
由于
答案 0 :(得分:4)
我不确定这真的有帮助,为什么要重命名文件而不是用同名重命名常量?你应该采用命名方案并坚持下去。
答案 1 :(得分:3)
与其他地方一样,任何体面的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 pattern和MVC的完美用例。结合上述命名约定和自动加载,您将不必再费心包含文件名。
答案 2 :(得分:0)
任何好的IDE都能为您完成这项工作,如果您重命名文件,引用将会更新。
答案 3 :(得分:0)
好吧,另一种选择可能是拥有一个“inc.top.php”文件来完成你的所有包含。
如果你已经包含了一个包含所有常量的文件,那么为什么不将所有文件包含在该文件中,并将其包含在每个文件的顶部?
我建议坚持从一开始就遵循一个命名惯例,因为它会减少产生“奶酪泡芙时刻”的可能性,你花费数小时试图找到一个变成“哦......我忘了重命名我的文件!“
答案 4 :(得分:0)
为什么不选择命名约定然后只使用自动加载器来处理所有分辨率?甚至一些标准化的包括过程。成千上万的PHP应用程序 - 包括WordPress和Drupal以及1000名开发人员 - 只需极少的工作量和严格的约定。