Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关于用PHP组织课程的最佳方式征求意见_Php_Code Organization - Fatal编程技术网

关于用PHP组织课程的最佳方式征求意见

关于用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

我非常喜欢使用Java包的命名约定

com.website.app.which

但我不确定在PHP中实现这一点的最佳方法

备选案文1: 创建目录结构

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');
}

然而,从长远来看,这只是一个混乱的局面,所以从两个弊病中挑出较小的一个去吧。

这不是一个寻求意见的地方。如果你问一个问题,它应该给出一个技术上正确的答案。就目前而言,“正确”的答案是你最满意的答案。因此,是的,我投票决定关闭这个网站。这不是一个征求意见的地方。如果你问一个问题,它应该给出一个技术上正确的答案。就目前而言,“正确”的答案是你最满意的答案。因此,是的,我投票决定结束这场选举。