类可用性和spl_autoload_register

时间:2014-09-27 17:42:37

标签: php class oop spl-autoload-register spl-autoloader

我试图通过尝试更多的OOP方法来提升我的知识(虽然我还没准备好完整的OOP。目前我主要使用对象来保持整洁,易于编辑,所以我重复一遍)。 我已经阅读了有关spl_autoload_register的内容,并对此有所了解,但我正在努力将其应用到我的应用程序中。 (我正在建设的网站最终会非常大,所以我试图避免所有包含并且不得不重复代码)

这是我的基本结构(这是基础知识并将会增长):

  • 条目页面(首先加载)(products.php) - 此页面主要由HTML(设计 和布局)但引用我的变量和对象。
  • 数据库类连接(functions / dbconn.php)
  • 产品类文件(class / products.class.php) - 包含products.php所需的函数
  • Tariffs类文件(class / tariffs.class.php) - 包含products.php和class / products.class.php中所需的函数

我想要什么(随意纠正我误解或错误计划的地方!):

  1. 数据库文件可供所有类文件使用,无需将其注入函数
  2. 自动加载所需的类文件(可能包括来自" functions / dbconn.php&#34的数据库连接;)
  3. 类函数可用于其他类文件
  4. 我希望我可以在products.php上使用一个包含文件,该文件将自动加载任何所需的类文件,数据库连接,并使它们对我启动的任何类都可用。 或者如果我希望彼此可用的类+数据库连接,我还需要为每个类文件添加代码。理想情况下,我只需要每个类的一个实例(对于此示例)。

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

    我通常做的事情,但我正试图从中前进:
    我通常要求_once数据库连接,所有(使用过的)类文件并启动"第一个加载的文件" (products.php)然后将数据库连接注入所有类/对象/函数(它是必需的)。 然而,不同的类函数彼此不可用,所以我发现自己重复代码或将函数添加到那些并非严格意义的类或包含并在类文件中启动新实例的类....

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

    如果我没有意义,请告诉我在哪里,我会尝试更好地解释!

    任何建议都非常感谢!

0 个答案:

没有答案