关于用PHP组织课程的最佳方式征求意见
我非常喜欢使用Java包的命名约定 com.website.app.which 但我不确定在PHP中实现这一点的最佳方法 备选案文1: 创建目录结构关于用PHP组织课程的最佳方式征求意见,php,code-organization,Php,Code Organization,我非常喜欢使用Java包的命名约定 com.website.app.which 但我不确定在PHP中实现这一点的最佳方法 备选案文1: 创建目录结构 com/ mysite/ myapp/ encryption/ PublicKeyGenerator.class.php Cipher.class.php Xml
com/
mysite/
myapp/
encryption/
PublicKeyGenerator.class.php
Cipher.class.php
Xml/
XmlHelper.class.php
XmlResponse.class.php
Java就是这样做的,它使用文件夹来组织继承权。不过,这在PHP中有点笨拙,因为它没有本机支持,而且当您移动对象时,会破坏所有包含
选择2
在包中使用句点命名类,因此名称与Java中的名称类似,但可以全部位于同一目录中,从而轻松地自动加载
classes/
com.mysite.myapp.encription.PublicKeyGenerator.class.php
com.mysite.myapp.encription.Cipher.class.php
com.mysite.myapp.xml.XmlHelper.class.php
com.mysite.myapp.xml.XmlResponse.class.php
这里唯一真正的缺点是所有的类都在一个文件夹中,这可能会让大型项目感到困惑
征求意见,哪一个是最好的,还是有其他更好的选择?这不仅取决于你将有多少课程,还取决于你将有多少网站和应用程序。如果你有不止一个网站或应用程序,那么有文件夹就更符合逻辑,这样你就不会感到困惑。如果您只有几个类(比如少于20个),那么将它们全部保存在一个文件夹中可能更符合逻辑。基于上面的类的种类以及您希望的详细程度,我会继续使用目录,这样以后您就不会看到它并说“天哪,我希望我使用了目录”。然后你就会编写无用的程序,你只能使用一次,这样你就可以改变你的文件结构。这不仅取决于你将拥有多少类,还取决于你将拥有多少网站和应用程序。如果你有不止一个网站或应用程序,那么有文件夹就更符合逻辑,这样你就不会感到困惑。如果您只有几个类(比如少于20个),那么将它们全部保存在一个文件夹中可能更符合逻辑。基于上面的类的种类以及您希望的详细程度,我会继续使用目录,这样以后您就不会看到它并说“天哪,我希望我使用了目录”。然后你会编写无用的程序,你只会使用一次,这样你就可以改变你的文件结构。我建议选择1,因为在这种布局中,特别是代码的分离,这将成为一个易于管理和灵活的系统。我建议选择1,因为在这种布局中,特别是代码的分离,最终将成为一个易于管理和灵活的系统。您可以遵循Zend框架标准,如 带自动加载的选项1 新应用程序\u加密\u密码 在magic callback中,替换u到“/”,并进行进一步检查(文件名中是否存在垃圾,是否为seek?符号?) 不过,这在PHP中有点笨拙,因为它没有本机支持,当>>移动对象时,会破坏所有包含 取决于您如何规划/设计应用程序。不管怎样,在重构方面是没有出路的:)
我知道您已经习惯了java命名约定,但是如果您做一些类似(新的com_mysite_myapp_encryption_cypher)的事情,那么一直编写代码会有点痛苦您可以遵循Zend Framework标准,例如 带自动加载的选项1 新应用程序\u加密\u密码 在magic callback中,替换u到“/”,并进行进一步检查(文件名中是否存在垃圾,是否为seek?符号?) 不过,这在PHP中有点笨拙,因为它没有本机支持,当>>移动对象时,会破坏所有包含 取决于您如何规划/设计应用程序。不管怎样,在重构方面是没有出路的:)
我知道你已经习惯了java命名约定,但是如果你做一些像(新的com_mysite_myapp_encryption_cypher)这样的事情,那么一直写下去会有点痛苦我总是更喜欢带前缀的文件,文件夹更少,因此导航更少,但这只是我个人的偏好 如果您认为以后可能需要对其进行更改,可以创建一个中心包含脚本,如:
<?php do_include('encryption_cypher'); ?>
function do_include($file){
if($file== 'encryption_cypher')
include('class/app/someotherfolder/encryption/cypher.php');
}
函数do_include($file){
如果($file=='encryption\u cypher')
包括('class/app/someotherfolder/encryption/cypher.php');
}
然而,从长远来看,这只是一个混乱的问题,所以从两个缺点中挑出较小的一个就走吧。我一直喜欢文件夹较少的带前缀的文件,这样可以减少导航,但这只是我个人的偏好 如果您认为以后可能需要对其进行更改,可以创建一个中心包含脚本,如:
<?php do_include('encryption_cypher'); ?>
function do_include($file){
if($file== 'encryption_cypher')
include('class/app/someotherfolder/encryption/cypher.php');
}
函数do_include($file){
如果($file=='encryption\u cypher')
包括('class/app/someotherfolder/encryption/cypher.php');
}
然而,从长远来看,这只是一个混乱的局面,所以从两个弊病中挑出较小的一个去吧。这不是一个寻求意见的地方。如果你问一个问题,它应该给出一个技术上正确的答案。就目前而言,“正确”的答案是你最满意的答案。因此,是的,我投票决定关闭这个网站。这不是一个征求意见的地方。如果你问一个问题,它应该给出一个技术上正确的答案。就目前而言,“正确”的答案是你最满意的答案。因此,是的,我投票决定结束这场选举。