你能告诉我是否可以将文件放在主 php 目录之外吗?
例如,我有一个包含类的文件,路径为 t2.php
<?php
class Test {
...
}
?>
在另一个文件 t1.php 中,我使用 use 语句来访问位于 t2.php 中的类。只要这两个文件都位于主目录中,一切都会正常运行,但我不知道如何正确删除该类的文件,以便一切正常运行。
我尝试dirname(__DIR__, 1)在使用中写它,但没有帮助=(
这个问题有什么解决办法吗?
你能告诉我是否可以将文件放在主 php 目录之外吗?
例如,我有一个包含类的文件,路径为 t2.php
<?php
class Test {
...
}
?>
在另一个文件 t1.php 中,我使用 use 语句来访问位于 t2.php 中的类。只要这两个文件都位于主目录中,一切都会正常运行,但我不知道如何正确删除该类的文件,以便一切正常运行。
我尝试dirname(__DIR__, 1)在使用中写它,但没有帮助=(
这个问题有什么解决办法吗?
use要在另一个类中使用一个类,它必须不是通过,而是通过require或 来连接include。那些。在文件的开头与类一起Test注册include一个文件。现在include您可以输入当前目录之外的路径,例如include __DIR__ . './../../SomeFile.php'然而,当处理许多类和 OOP 时,这种方法是无效的,因为你需要一百万个
include。要自动加载类,我建议您熟悉 PHP 中的自动加载类:spl_autoload_register。但是您必须在那里编写一些逻辑来加载它们。并且不要忘记使用命名空间,以结构正确的方式在文件中使用和放置类。也可用于自动下载文件
composer。我建议您熟悉它是什么,特别是composer-autoload(https://getcomposer.org/doc/04-schema.md#autoload)在其配置中,可以确定所有类将位于哪个文件夹中,例如如下所示:
现在,您只需要在开发时遵循正确的文件夹层次结构,并且不要忘记在类中指出这一点
namespace(https://www.php.net/manual/ru/language.namespaces.definition.php),然后use相应地使用它例如,如果一个类在 中
/src/user/hello.php,那么它将namespace是 examplenamespace app\user;,并将其连接到另一个类中就像use app\user;