Require_once 跨不同文件,全局范围

Require_once across different files, global scope

我已经学习 PHP 几天了,我遇到了一个奇怪的问题。我有两个文件:

login.php 存储数据库访问数据(用户、密码、主机、数据库)
security.php 具有操纵 strings/queries 以防止 sql/xss 注入的功能,并且还存储用于密码散列的盐前缀和后缀。

然后我有我的 index.phpregister.phpsignin.php。我的问题是:当我将 require_once '../login.php'; 放入 register.php 时,我通常可以调用变量或函数,如 $var。另一方面,signin.php 中完全相同的模式不起作用,PHP 表示未声明变量。我尝试这样做:global $var,它正在工作,但我觉得它完全不安全。

1) 解决这个问题的正确方法是什么?
2) 与应用架构有关吗?
3)所有使用数据库连接的函数(等等)是否应该写在一个文件中?

第 1 步 - 创建一个 php 文件,将所有数据库连接写入其中(示例 - db.php)
第 2 步 - 包括此 php (db.php) 任何与数据库相关的操作。

require 'db.php';  //add your database php file here..


这将很容易组织,并在您将应用程序从一台服务器迁移到另一台服务器时最大限度地减少错误 在 php 中有 require 和 include。 require 很好,因为如果文件不可用,它将停止执行代码。

此外,这很容易组织,并最大限度地减少了从一台服务器迁移到另一台服务器时造成的错误

  1. 安装composer
  2. 将所有代码放入 classes 中的函数中,并使用 namespace(如果必须的话,作为静态函数)。
  3. psr4 中指定的那样在 lib 目录中保存 classes。
  4. 按照 composer 网站上的指定创建 composer.json 文件,并将您的 lib 目录作为自动加载包含在 composer 文档中。
  5. require_once projectroot/vendor/autoload.php 在你的文件中。

调用您的 class 方法(带有命名空间)而不是函数。偷懒。避免 require/include 地狱。