Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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_File_Structure - Fatal编程技术网

档案及;面向对象PHP中的类结构

档案及;面向对象PHP中的类结构,php,file,structure,Php,File,Structure,我对OOP和PHP也相当陌生,我一直在阅读教程和书籍来掌握它的窍门。现在我正在做一个个人项目(没有教程或书本练习),我有一个关于如何组织我的课程和文件的问题 我有一个database.php文件,在其中我创建了与数据库的连接,并在类的_构造函数中调用它,如下所示: <?php include 'database.php'; class users { // Database Connection public function __construct() { $db = new

我对OOP和PHP也相当陌生,我一直在阅读教程和书籍来掌握它的窍门。现在我正在做一个个人项目(没有教程或书本练习),我有一个关于如何组织我的课程和文件的问题

我有一个database.php文件,在其中我创建了与数据库的连接,并在类的_构造函数中调用它,如下所示:

<?php

include 'database.php';

class users {

// Database Connection
public function __construct() {
  $db = new database();
}

// the rest of my functions

?>

我的问题是,在我做的教程和练习中,只有一节课。目前在我的项目中,我有3个类(users、movies和watchlist),它们都有一个.php文件(users.php、movies.php和watchlist.php)

在我的项目的某些页面上,我需要所有3个类的数据,所以我开始这些页面时是这样的:

<?php
session_start();

include 'include/users.php';
include 'include/movies.php';
include 'include/watchlists.php';
$user = new users();
$movie = new movies();
$watchlist = new watchlists();

// the rest of the file

如果只按照以下简单步骤操作,您将不会连续三次连接到数据库

替换

include 'database.php'

然后像这样编写连接代码

if(!$con) {
    $con = mysqli_connect(HOST, USER, PASS);
}

若只遵循以下简单步骤,您将不会连续三次连接到数据库

替换

include 'database.php'

然后像这样编写连接代码

if(!$con) {
    $con = mysqli_connect(HOST, USER, PASS);
}

在大多数PHP编码标准中,会说“类文件”应该包含的唯一内容是类定义。这意味着没有
include
s或
require
s。那么,如何允许一个类访问另一个类呢

!!阅读有关自动加载的内容,但简单的解释是,您在一个单独的文件中定义了一个自动加载程序(与您实际使用的类在同一个文件中)、您调用的任何类以及这些类所需的任何类,PHP都会自动执行并获取。自动加载非常好,这不仅是因为您不必费心键入
include
语句,还因为只有您实际使用的类才会被获取,所以它更高效


还有一点需要说明,通常最好将所有类保存在自己的文件夹中,然后实际使用该文件夹之外的中的类。同样,这只是一种约定,但它也使实现自动加载变得更容易。

在大多数PHP编码标准中,都会说“类文件”应该包含的唯一内容是类定义。这意味着没有
include
s或
require
s。那么,如何允许一个类访问另一个类呢

!!阅读有关自动加载的内容,但简单的解释是,您在一个单独的文件中定义了一个自动加载程序(与您实际使用的类在同一个文件中)、您调用的任何类以及这些类所需的任何类,PHP都会自动执行并获取。自动加载非常好,这不仅是因为您不必费心键入
include
语句,还因为只有您实际使用的类才会被获取,所以它更高效


还有一点需要说明,通常最好将所有类保存在自己的文件夹中,然后实际使用该文件夹之外的中的类。同样,这只是一种约定,但它也使实现自动加载变得更容易。

您想了解的是PSR-0标准


大多数现成的自动装弹机使用此标准最容易工作

您想了解的是PSR-0标准


大多数现成的自动装弹机使用此标准最容易工作

使用自动加载器以避免大量的包含(或者改为使用include_一次,并将数据库连接注入任何需要它的类自动加载时,您也可以使用一个确保只运行一个类实例的单例类,尽管自动加载可能更好您可能会找到相关的实例谢谢Mark建议autoloader。我已经查找了它,它看起来非常适合我们非常感谢使用自动加载器来避免大量的包含(或者改为使用include_一次,并将数据库连接注入任何需要它的类自动加载时,您也可以使用一个确保只运行一个类实例的单例类,尽管自动加载可能更好您可能会找到相关的实例谢谢Mark建议autoloader。我已经查找了它,它看起来非常适合我们谢谢谢谢你的信息,我在PHP中找到了autoloader,我现在正在使用它,谢谢。谢谢你的信息,我在PHP中找到了autoloader,我现在正在使用它,谢谢。