Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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
OOP PHP项目中Includes和Classes文件夹的区别是什么?_Php_Oop_Class - Fatal编程技术网

OOP PHP项目中Includes和Classes文件夹的区别是什么?

OOP PHP项目中Includes和Classes文件夹的区别是什么?,php,oop,class,Php,Oop,Class,我正在尝试使用面向对象编程和smarty模板创建php站点 仅仅是通过书本,我应该如何构建结构 我见过一些人制作包含文件夹和类文件夹,一些人把类放在包含文件夹中,哪种方式正确? 面向对象编程中包含哪些文件夹?没有正确的方法,也没有教科书标准。PHP项目中的文件夹结构取决于您如何组织。不同的人有不同的习俗 也许有些人称它为包含,因为它包含通常包含在大多数其他主脚本中的文件,而有些人称它为类,因为它包含类文件。由于类文件是包含文件,因此它们可能将classes作为incliudes的子文件夹。但这一

我正在尝试使用面向对象编程和smarty模板创建php站点

仅仅是通过书本,我应该如何构建结构

我见过一些人制作包含文件夹和类文件夹,一些人把类放在包含文件夹中,哪种方式正确?
面向对象编程中包含哪些文件夹?

没有正确的方法,也没有教科书标准。PHP项目中的文件夹结构取决于您如何组织。不同的人有不同的习俗


也许有些人称它为
包含
,因为它包含通常包含在大多数其他主脚本中的文件,而有些人称它为
,因为它包含类文件。由于类文件是包含文件,因此它们可能将
classes
作为
incliudes
的子文件夹。但这一切完全是主观的和优先的;它决不是一个标准。

没有正确的方法,也没有教科书标准。PHP项目中的文件夹结构取决于您如何组织。不同的人有不同的习俗


也许有些人称它为
包含
,因为它包含通常包含在大多数其他主脚本中的文件,而有些人称它为
,因为它包含类文件。由于类文件是包含文件,因此它们可能将
classes
作为
incliudes
的子文件夹。但这一切完全是主观的和优先的;它决不是一个标准。

比如说,没有标准文件夹,但是
包含
是相当主流的,有些人可能会说它是一个事实上的标准。这真的取决于你。

比如说,没有标准的文件夹,但是
包含/
是相当主流的,有些人可能会说这是一个事实上的标准。这完全取决于您。

您应该使用加载类

此外,您的自动加载器应符合标准(由 PHP标准(工作组)

PSR-0兼容自动加载器的示例可以在

上找到,您应该使用它来加载类

此外,您的自动加载器应符合标准(由 PHP标准(工作组)


PSR-0兼容自动装弹机的示例可在

上找到。只有一条规则:它必须有意义。认真地代码必须可读且可维护。最顶层文件夹的名称与此无关。如何在该文件夹下组织类要重要得多。作为个人偏好,我会使用“类”或“模型”,因为这就是文件的内容。“包含”让我想起了程序编程时代

然而,应用程序应该遵循的更重要的原则是MVC(模型-视图-控制器)体系结构。我建议你仔细阅读这个话题。也有一些很好的框架,这样您就不需要编写样板代码了

框架的问题是,通常您在命名文件夹时几乎没有选择余地,因为它们已经对“正确”的操作方式有了坚定的信念。这也使得您提出的命名问题不那么重要


对于MVC应用程序,类的作用通常只是封装应用程序的数据模型。这就是为什么我经常使用“model”作为文件夹的名称,而不是classes或includes。

只有一条规则:它必须有意义。认真地代码必须可读且可维护。最顶层文件夹的名称与此无关。如何在该文件夹下组织类要重要得多。作为个人偏好,我会使用“类”或“模型”,因为这就是文件的内容。“包含”让我想起了程序编程时代

然而,应用程序应该遵循的更重要的原则是MVC(模型-视图-控制器)体系结构。我建议你仔细阅读这个话题。也有一些很好的框架,这样您就不需要编写样板代码了

框架的问题是,通常您在命名文件夹时几乎没有选择余地,因为它们已经对“正确”的操作方式有了坚定的信念。这也使得您提出的命名问题不那么重要


对于MVC应用程序,类的作用通常只是封装应用程序的数据模型。这就是为什么我经常使用“model”作为文件夹的名称,而不是类或include。

在为OO PHP构建include时,我会从Java中获得灵感。对于每个依赖于另一个类的类,请在文件顶部使用以下语句:

require_once 'classFolder/SomeClass.php'
此语句将检查文件是否已包含,如果已包含,则不再包含(要求)该文件。如果找不到所需的文件,尽管它将导致致命的E_COMPILE_错误级别错误。换句话说,它将停止脚本,而include_once()只会发出一个警告(E_warning),允许脚本继续

使用此结构意味着所有类文件都指定了所有必需的include,因此会有一些重复,例如,某些类可能需要一次相同的文件。然而,由于require_once的工作方式,这只会带来很少的开销,并使代码具有很强的更改弹性


希望这能有所帮助。

在构建面向对象PHP的Include时,我会从Java中汲取灵感。对于每个依赖于另一个类的类,请在文件顶部使用以下语句:

require_once 'classFolder/SomeClass.php'
此语句将检查文件是否已包含,如果已包含,则不再包含(要求)该文件。如果找不到所需的文件,尽管它将导致致命的E_COMPILE_错误级别错误。换句话说,它将停止脚本,而