PHP:使用自动加载器时如何获取所有类

2023-11-27

我正在使用 Composer 生成自动加载器:

"autoload": {
  "psr-4": {
    "SomeNamespace\\": "src/SomeDir"
  }
}

我需要创建实现特定接口的所有类的实例。这相当容易但是,当不使用自动加载器时get_declared_classes()与自动加载器配合得不好。只有在使用自动加载器实例化一个类后,它才会列出该类。


你可以使用肮脏的黑客和require_once之前的所有课程get_declared_classes()函数调用。

  1. 首先,通过以下方式将所有类转储到类映射中composer dumpautoload --optimize
  2. 现在您可以获取 Composer 加载程序并需要所有文件
    $res = get_declared_classes();
    $autoloaderClassName = '';
    foreach ( $res as $className) {
        if (strpos($className, 'ComposerAutoloaderInit') === 0) {
            $autoloaderClassName = $className; // ComposerAutoloaderInit323a579f2019d15e328dd7fec58d8284 for me
            break;
        }
    }
    $classLoader = $autoloaderClassName::getLoader();
    foreach ($classLoader->getClassMap() as $path) {
        require_once $path;
    }
  1. 现在您可以轻松使用get_declared_classes()再次,返回作曲家已知的所有类

附:不要在生产中使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP:使用自动加载器时如何获取所有类 的相关文章

  • 无需 cron 在后台发送邮件

    我想知道是否有一种方法可以运行 PHP 循环 以便在后台向订阅者发送几百封电子邮件 我的目标是格式化新闻通讯 单击发送 然后关闭浏览器或更改页面 当然 发送电子邮件的实际过程将在后台运行 不会因浏览器关闭而中断 我知道这可以通过 cron
  • PHP strtotime() 未返回正确的月份

    由于当前月份 年份是 2012 年 1 月 为什么以下代码返回 2011 年 12 月而不是 2011 年 11 月 echo date F Y strtotime 2 months 如果有影响的话 这是在 PHP 5 3 0 上 要获得您
  • PHP 启动:无法加载动态库 php5.4.3/ext/php_ffmpeg.dll 不是有效的 Win32 应用程序

    再会 我尝试在 Windows 7 计算机上安装 dll 文件 php ffmpeg 但不断收到此错误 29 Jan 2013 11 37 00 UTC PHP Warning PHP Startup Unable to load dyna
  • 为什么我的浮点数大于 1 时在 MYSQL 中存储为 .9999?

    我将进程时间作为 float 4 4 存储在 MySQL 数据库中 start time microtime TRUE things happen in my script end time microtime TRUE process t
  • 在 PHP 中设置 HTTP 响应代码(在 Apache 下)

    给出以下两种在 PHP 中设置 HTTP 响应代码的方法 具体来说 在 Apache 下 方法一 http response code 404 方法二 header HTTP 1 0 404 Not Found 我的问题是 除了这个事实之外
  • node-mongodb-native的插入性能

    我正在使用 MongoDB 测试 Node js 的性能 我知道其中每一个都很好 彼此独立 但我正在尝试一些测试来感受它们 我遇到了这个问题 但无法确定来源 问题 我正在尝试在单个 Node js 程序中插入 1 000 000 条记录 它
  • 间歇性 PHP 抽象类错误

    我已经为此奋斗了一段时间 但无法弄清楚 也许其他人也有 或者 Slim PHP Apache 等这里有更深层次的问题 在正常工作几个小时后 我的 Slim 安装将开始给出所有路线均如此 致命错误 类 Slim Collection 包含 1
  • Composer 无法下载文件

    我正在尝试在命令行上使用作曲家 php composer phar update php composer phar install php composer phar self update php composer phar selfu
  • 当第二个参数包含运算符号时,为什么 ltrim 会删除一个字符? [复制]

    这个问题在这里已经有答案了 If I do ltrim 53 34567 53 ltrim 53 34567 53 ltrim 53 34567 53 I get 4567作为结果而不是34567 这种行为的解释是什么 ltrim 53 3
  • 通过composer安装yii2-braintree的问题

    我已经通过 Composer 成功安装了 Braintree 组件 现在我希望也使用 Composer 安装yii2 braintree https github com bryglen yii2 braintree 我插入了 就像推荐的那
  • 使用 php 脚本的电子邮件管道

    你好 我想将所有电子邮件 到达我的收件箱 转发到 php 脚本并检索电子邮件内容并将其保存在文件中 因此 我正确地添加了具有管道路径的电子邮件转发器 转发地址 电子邮件受保护 cdn cgi l email protection 管道到程序
  • 这是依赖注入吗?这是一种不好的做法吗?

    我有一个小框架 我是这样编码的 我不确定这是否称为依赖注入 我不知道它是否像设计模式 我也不知道并且想知道是否通过 this因为 param 是一种不好的做法 看看这个 不是一个有效的示例 只是将这些代码写入浏览器中以供解释 This is
  • Laravel:使用 Faker 播种多个独特的列

    介绍 怎么样 伙计们 我有一个关于模型工厂和多个独特列的问题 背景 我有一个名为 Image 的模型 该模型将语言支持存储在单独的模型中 图片文字 图片文字 has an image id栏 语言栏和文本栏 图片文字有一个约束MySQL那个
  • 如何使用 AJAX/jQuery 显示打印内容?

    所以我试图理解整个 AJAX jQuery 的事情 现在 当我单独运行这个 PHP 脚本时 我必须等待并观察轮子旋转 直到循环完成然后加载 while row mysql fetch array res postcode to storm
  • 使用 Mock 对 Laravel 5 Mail 进行单元测试

    有没有办法在 Laravel 5 中测试 Mail 尝试了我在互联网上看到的唯一合法的模拟示例 但它似乎只适用于 Laravel 4 下面的当前代码 mock Mockery mock Swift Mailer this gt app ma
  • 如何解决 注意:未定义索引:第 21 行 C:\xampp\htdocs\invmgt\manufactured_goods\change.php 中的 id [重复]

    这个问题在这里已经有答案了 我的 PHP 代码有一个问题 显示 注意 未定义的索引 我确信它非常简单 因为我是初学者 所以我不太清楚到底出了什么问题 所以请帮助我 这是代码
  • AFNetworking 上传图片

    我看过一些例子 但我认为我的问题可能出在 PHP 中 我正在尝试使用 AFNetworking 将图像从 iPhone 上传到服务器 这是我的 obj c 代码 IBAction uploadButtonClicked id sender
  • 如何在php中根据url从mysql获取数据?

    我在 mysql 数据库中有一个页表 其中包含 page name title content author 字段 我想用 php 来获取它http www domain com index php page page name http
  • 如何在之前的 Facebook 身份验证后自动安全地让用户登录?

    用户抱怨他们必须过于频繁地登录 如果身份验证完全基于 Facebook OAuth 那么用户如何在下次访问该页面时自动登录 用户流程示例 用户点击 使用 Facebook 登录 用户通过 Facebook 进行身份验证并被重定向回网站 用户
  • C++ php 和静态库

    我创建了一个library a 其中包含 cpp 和 h 文件 其中包含很多类 嵌套类和方法 我想在 php 示例中包含这个静态库并尝试使用它 我想提一下 我是 php 新手 我已经在 test cpp 文件中测试了我的 libray a

随机推荐

  • 将 RDD[org.apache.spark.sql.Row] 转换为 RDD[org.apache.spark.mllib.linalg.Vector]

    我对 Spark 和 Scala 比较陌生 我从以下数据框开始 由密集的双精度向量组成的单列 scala gt val scaledDataOnly pruned scaledDataOnly select features scaledD
  • 为什么我们需要 IEEE 754 余数?

    我刚刚读过这个话题 尤其是最后的评论 然后我想知道 为什么我们真正需要这个是为了给剩下的 但似乎之前没有多少人 在谷歌上 对此感兴趣 如果您正在寻找想要它的原因 其中之一就是所谓的 范围缩小 假设你想要sind用于计算参数正弦值 以度为单位
  • Azure 上的 Django 应用程序未获取静态文件

    在 Azure Web 应用程序上获取了我的 Django 项目 但是当我在 SSH 终端上调用时 Python 管理 py 收集静态 它说复制了 252 个文件 但我的静态文件在我的模板上不可见 并且 wwwroot 中的静态文件夹是空的
  • 删除所有文件和文件夹但排除子文件夹

    我有一个文件夹 需要删除除一小部分文件和文件夹之外的所有文件和文件夹 我已经可以排除文件列表 但没有找到排除文件夹及其内容的方法 这是文件夹结构 C temp C temp somefile txt C temp someotherfile
  • 在字符串内包含引号?

    我正在尝试将引号包含在字符串中以添加到文本框 我正在使用此代码 t AppendText Dim Choice count As String Your New Name is pt1 pt2 vbNewLine 但它不起作用 我希望它像这
  • 从大型数据集中随机采样

    我从一个大型数据库中提取了研究人群 为了进行比较 我想选择一个具有相似特征的对照组 我想要匹配的两个标准是年龄和性别 为我提供用于匹配目的的数字的查询是 select sex age 10 as decades COUNT as count
  • URL/子域重写 (htaccess)

    假设我有以下文件 http www example com images folder image jpg 我想把它放在 http s1 example com folder image jpg 我如何进行 htaccess 重写以将其指向
  • GAE交易失败和幂等性

    Google App Engine 文档包含以下段落 注意 如果您的应用程序在提交时收到异常 交易失败并不总是意味着交易失败 你 可以接收DatastoreTimeoutException ConcurrentModificationExc
  • Linq2SQL 处理具有唯一约束的表上的插入/删除

    我有一个如下所示的表 TABLE Foo Guid Id PK int A FK int B FK int C FK 以及对 A B 和 C 的唯一约束 现在举例来说 您插入带有新 PK 的行 其中 A 1 B 1 C 1 SubmitCh
  • 在单个谱系中变基多个分支的最简单方法

    我有两个分支位于上游 主控之上 一个分支以另一个为祖先 因此它们形成一条线 U1 upstream master A B fixes C D features 随后 upstream master 继续前进 U1 U2 upstream m
  • 使用 Flex 编写可重入词法分析器

    我是弯曲的新手 我正在尝试使用 Flex 编写一个简单的可重入词法分析器 扫描器 词法分析器定义如下 我遇到编译错误 如下所示 yyg 问题 可重入 l Definitions digit 0 9 letter a zA Z alphanu
  • 没有打印语句就不会执行代码[重复]

    这个问题在这里已经有答案了 我一直在制作一个倒计时程序 我想出了这个 package main import java awt FlowLayout import java awt event ActionEvent import java
  • 无法在 Azure DevOps 管道中激活 conda

    在 conda 构建的 python 项目上测试 azure devops 管道 jobs job pre build setup displayName Pre Build Setup pool vmImage ubuntu 18 04
  • 析构函数有符合标准的名称吗?

    根据标准 类析构函数是否有迂腐意义上的名称 回想一下 构造函数明确没有名称 12 1 1 构造函数没有名字 A 使用特殊声明符语法 可选序列 后面是函数说明符 7 1 2 通过构造函数的类名 随后使用参数列表 声明或定义构造函数 在这样的声
  • 如何拦截粘贴到 NSTextView 中以删除不支持的格式?

    我正在尝试创建一个简单的基于 NSTextView 的窗口 以进行简单的所见即所得编辑 但是 我只想允许某些类型的格式 例如粗体 斜体 下划线和单个标题类型 但没有颜色或不同的字体 问题是 如果我只是使用 NSTextView 有人可以在另
  • iOS 推送通知 - 更新徽章而不发出警报?

    有没有办法在不显示警报或打开应用程序的情况下更新徽章中的数字 我正在编写一个应用程序 它应该始终在图标徽章中显示当前未读消息的数量 但我想这样做而不向用户显示任何警报 我正在为 iOS 5 0 进行开发 编辑 为了更清楚 我正在询问一种方法
  • Java String.replaceAll 正则表达式

    使用 java 删除输入字符串 如 MY CORP My Name 的 MY CORP 部分的正则表达式是什么String replaceAll方法 这样我只能获取 My Name 部分 I tried public static Stri
  • OpenCV:如何从以太网摄像头捕获帧

    我之前对 USB 网络摄像头进行了编程 其唯一目的是从摄像头获取实时帧并显示在窗口中 我使用 cvCaptureFromCAM 来实现此目的 它对于 USB 摄像头效果很好 请参见下面的代码 我想知道如何从千兆以太网摄像头捕获帧 我想我需要
  • C++ 中的重写删除应如何表现?

    我遇到的问题是 据我所知 删除运算符应该是静态函数 但有时编译器 VC 似乎将其视为动态函数 Given class Base public void operator new size t size allocate from custo
  • PHP:使用自动加载器时如何获取所有类

    我正在使用 Composer 生成自动加载器 autoload psr 4 SomeNamespace src SomeDir 我需要创建实现特定接口的所有类的实例 这相当容易但是 当不使用自动加载器时get declared classe