- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
经过一些研究,我无法找到解决我的问题的方法。我正在使用一个 API,它是我通过 composer 下载的命名空间。 API 具有依赖性,我允许 Composer 为我管理和自动加载。除此之外,我还有大约 10 个类,它们是我使用 php 的 spl_autoload_register
自动加载的。最近,我开始混合类(class)以完成项目的一部分,但整个事情都变得一团糟。我的自定义类不能使用 Composer 类,反之亦然。有没有一种方法可以用来自动加载位于两个单独的文件夹中并使用两个单独的外加载程序加载的类。
这是我目前使用的代码。 vender/autoload.php 与典型的 Composer 自动加载器没有什么不同。感谢您的帮助。
require 'vendor/autoload.php';
require 'functions/general.php';
require 'include/mailgun.php';
function my_autoloader($class) {
require 'classes/' . $class . '.php';
}
spl_autoload_register('my_autoloader');
最佳答案
嗯,实际上 composer 使用 spl_autoload_register
,所以答案是"is",他们可以。 autoloader stack 支持自动加载机制 - 基本上,如果在运行一个自动加载器后类没有出现在运行时,则使用下一个,直到堆栈用完自动加载器并且 PHP 报告有关错误它找不到的类(class)。每个 spl_autoload_register
调用基本上都会添加新的自动加载器,因此内存中可能有很多自动加载器。这个故事的要点是无法加载类的自动加载器什么都不做,自动加载代码块只是在没有采取任何操作的情况下结束,因此下一个自动加载器可能会负责加载类。你唯一需要实现的是检查你的自动加载器它可以处理当前的类加载(在需要它之前检查文件是否存在就足够了,尽管你应该考虑在命名空间的情况下可能的目录嵌套),并且一切都应该顺利进行 future :
function my_autoloader($class) {
$path = sprintf('classes/%s.php', $class);
if (file_exists($path)) {
require 'classes/' . $class . '.php';
}
}
关于php - php spl_autoload_register 和 composer autoloader 可以一起工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29226622/
我正在尝试利用 PHP 中的自动加载。我在不同的目录中有各种类,所以我引导自动加载如下: function autoload_services($class_name) { $file = '
我发现了几个与我类似的 SO 问题,但我正在努力寻找对我有帮助的答案,而且我真的很想知道自动加载命名空间中存在的类的最佳实践。 我的文件夹结构: root -- classes --- Users -
为什么会返回 fatal error :Class 'Mynamespace\String' not found in ...: set_include_path(get_include_path()
我有一个文件可以自动加载我的每个类。 这是它包含的内容: spl_autoload_register(function($class){ require_once 'classes/' . $
我正在尝试使用 spl_autoload_register 将实例化对象用作自动加载器。是否可以?我在几个地方看到人们使用类静态函数作为自动加载器,而不是对象。 例子: class loadFile{
我想关于 spl_autoload_register() 优于 autoload() 的优点,我想我缺少了一些东西。据我了解,spl_autoload_register() 的优点是它可以注册多次,然
我使用composer管理我的依赖项和类加载。该工具使用spl_autoload_register函数。 我想使用 PHP 扩展来提供一些与通过 Composer 定义的其他类相同的定义(名称、命名空
这段代码: 抛出这个错误: Fatal error: Uncaught exception 'LogicException' with message 'Function 'autoloader'
我让 spl_autoload_register 工作正常,但后来我决定添加一些命名空间以引入 PSR2 合规性,但似乎无法让它工作。 目录结构: -index.php -classes/ -Cl
我想在我正在开发的 wordpress 插件中通过 spl_autoload_register 使用类的动态加载,但问题是它不能干扰此功能的预先存在的实现。在我最初的尝试中: // register
我正在使用 spl_autoload_register为了加载类。 我有一个 index.php 文件,其中包含一个 init.php 文件。 spl_autoload_register函数在init
我在主目录中创建了 5 个文件夹,其中包含 5 个类(Ad_Class、Blocked_Class、Friend_Class、Image_Class、Profile_Class)。我还在提到的文件夹中
拥有多个spl_autoload_register的好处是什么 例子: spl_autoload_register('autoload_systems'); spl_autoload_register
class Manage { spl_autoload_register(function($class) { include $class . '.class.php'; }); } 假设我
这个问题在这里已经有了答案: 10年前关闭。 Possible Duplicate: unexpected T_FUNCTION with php 5.2.17 but fine on localho
use PHPMailer\PHPMailer\PHPMailer; require_once "PHPMailer/PHPMailer.php"; $mail = new PHPMailer(t
我的目录结构如下 > Root > -Admin // admin area > --index.php // admin landing page, it includes ../config.ph
我正在开发自定义框架。当我尝试动态化我的类(class)调用时遇到了一个问题。 这是我的文件的视觉效果: 所以我决定为每个文件夹(库、 Controller 和模型)创建一个不同的函数: functi
我一直在阅读关于 spl_autoload_register 函数作为 require、require_once、include 和 & 包含一次。尽管有很多关于如何实现这一点的讨论,但文档并不太详细
所以我之前已经在这里问过这个问题,但是提供的解决方案对我不起作用。这是我的设置: /mylib /Vendor/Module/MyClass.php /document_root in
我是一名优秀的程序员,十分优秀!