【发布时间】:2023-03-14 02:15:01
【问题描述】:
我有以下代码:
文件:class.engine.php(网站主引擎)
<?php
namespace Core;
class Engine {
}
文件class.errors.php(发生错误时触发错误,自定义错误)
<?php
namespace Core\Errors;
class Errors {
public function TrigerError($e)
{
die($e);
}
}
文件class.mysqli.php(数据库连接器)
<?php
namespace Core\MySQLiDrv;
class MySQLiDrv {
public $db = null;
public function __construct($database) {
$connector = mysqli_connect($database[0], $database[1], $database[2], $database[3]);
if(!$connector)
{
return new TrigerError("1");
}
}
}
文件 index.php(一切运行的地方)
<?php
include("engine/class.engine.php");
include("engine/class.errors.php");
include("engine/class.mysqli.php");
$engine = new Engine();
$db = new MySQLiDrv(array("localhost", "user", "pass", "db"));
我想用许多多个文件扩展 Engine 类,并且我希望它们位于命名空间中,我该如何正确地做到这一点,因为在这种代码情况下我无法触发错误。
在这种代码情况下,使用定义为易于使用的命名空间是否重要?
【问题讨论】:
-
我敦促您先切换到作曲家和自动加载:getcomposer.org/doc/01-basic-usage.md#autoloading。这将需要一些时间,但它会消除您在第一步中会遇到的许多问题......如果该特定文档对您来说不容易阅读,请尝试通过关键字“composer”找到更好的东西,“自动加载”、“教程”。
-
您还应该查看异常而不是错误。然后你可以尝试捕捉你的错误等。
标签: php class namespaces extend