0

我试图通过尝试更多的 OOP 方法来提高我的知识(尽管我还没有准备好使用完整的 OOP。目前我主要使用对象来保持整洁,便于编辑,所以我重复较少)。我已经阅读了 spl_autoload_register 并且有点理解它,但是我很难将它应用到我的应用程序中。(我正在构建的网站最终会非常大,所以我试图避免所有包含并不得不重复代码)

这是我的基本结构(这是基础并且会不断增长):

  • 入口页面(首先加载)(products.php) - 该页面主要由 HTML(设计和布局)组成,但引用了我的变量和对象。
  • 数据库类连接(functions/dbconn.php)
  • Products 类文件 (class/products.class.php) - 包含 products.php 所需的函数
  • 关税类文件 (class/tariffs.class.php) - 包含 products.php 和 class/products.class.php 中所需的函数

我想要什么(请随时纠正我的误解或以错误的方式计划!):

  1. 数据库文件可用于所有类文件,而无需将其注入函数
  2. 自动加载所需的类文件(可能包括来自“functions/dbconn.php”的数据库连接)
  3. 类函数可用于其他类文件

我希望我可以在 products.php 上使用单个包含文件,该文件将自动加载任何需要的类文件、数据库连接,并使它们对我启动的任何类都可用。或者,如果我希望彼此可用的类+数据库连接,我是否还需要向每个类文件添加代码。理想情况下,我只想要每个类的 1 个实例(对于这个例子)。

我无法理解的问题是:
如果我想在一个类文件中调用函数(存储在其他类文件中),我必须在我想在其中使用它的类中包含该文件并启动和实例. 然后这个实例对 products.php 不可用(所以我必须在 products.php 中包含并启动一个新实例,这当然是空的......)我还必须在每个类文件中加载数据库(所以我假设我正在建立多个连接,并且必须关闭多个连接。我确定我错了!)

我通常会做什么,但我试图从以下方面前进:
我通常需要数据库连接,所有(使用的)类文件并在“第一个加载的文件”(products.php)中启动实例,然后将数据库连接注入所有类/对象/函数(它是必需的)。但是,不同的类函数彼此不可用,所以我发现自己重复代码或将函数添加到严格意义上不存在的类或在类文件中包含并启动新实例......

如果这令人困惑,我很抱歉,我通过多年阅读其他代码自学成才,以及我从网上学到的东西......所以我的做法可能不是最好的(还......)

如果我没有意义,请让我知道在哪里,我会尽力解释得更好!

任何建议我都会非常感激!

4

0 回答 0