我在一个文件中定义了一个抽象超类,在另一个文件中定义了一个子类。我需要超级类文件和堆栈跟踪报告来找到一个包含它的文件。

但是,当它碰到“扩展”行时,它会返回一个错误:

Fatal error: Class 'HTMLBuilder' not found in View/Markup/HTML/HTML4.01/HTML4_01Builder.php on line 7

.

我曾经用过另一个类树,它使用工厂。我只是在工厂和消费者之间添加了构建层。工厂层在包含和依赖方面看起来几乎完全相同。

所以这让我觉得我一定做了一些愚蠢的事情,导致htmlbuilder.php文件不能被正确包含或解释。

这是完整的堆栈跟踪(路径略有更改):

# Time Memory Function Location

1 0.0001 53904 {main}( ) ../index.php:0

2 0.0002 67600 require_once( 'View/Page.php' ) ../index.php:3

3 0.0003 75444 require_once( 'View/Sections/SectionFactory.php' ) ../Page.php:4

4 0.0003 81152 require_once( 'View/Sections/HTML/HTMLSectionFactory.php' ) ../SectionFactory.php:3

5 0.0004 92108 require_once( 'View/Sections/HTML/HTMLTitlebarSection.php' ) ../HTMLSectionFactory.php:5

6 0.0005 99716 require_once( 'View/Markup/HTML/HTMLBuilder.php' ) ../HTMLTitlebarSection.php:3

7 0.0005 103580 require_once( 'View/Markup/MarkupBuilder.php' ) ../HTMLBuilder.php:3

8 0.0006 124120 require_once( 'View/Markup/HTML/HTML4.01/HTML4_01Builder.php' ) ../MarkupBuilder.php:3

下面是有问题的代码:

父类(view/markup/html/htmlbuilder.php):

require_once('View/Markup/MarkupBuilder.php');

abstract class HTMLBuilder extends MarkupBuilder {

public abstract function getLink($text, $href);

public abstract function getImage($src, $alt);

public abstract function getDivision($id, array $classes=NULL, array $children=NULL);

public abstract function getParagraph($text, array $classes=NULL, $id=NULL);

}

?>

子类(view/markup/html/html4.01/html4 builder.php):

require_once('HTML4_01Factory.php');

require_once('View/Markup/HTML/HTMLBuilder.php');

class HTML4_01Builder extends HTMLBuilder {

private $factory;

public function __construct() {

$this->factory = new HTML4_01Factory();

}

public function getLink($href, $text) {

$link = $this->factory->getA();

$link->addAttribute('href', $href);

$link->addChild($this->factory->getText($text));

return $link;

}

public function getImage($src, $alt) {

$image = $this->factory->getImg();

$image->addAttribute('src', $src);

$image->addAttribute('alt', $alt);

return $image;

}

public function getDivision($id, array $classes=NULL, array $children=NULL) {

$div = $this->factory->getDiv();

$div->setID($id);

if(!empty($classes)) {

$div->addClasses($classes);

}

if(!empty($children)) {

$div->addChildren($children);

}

return $div;

}

public function getParagraph($text, array $classes=NULL, $id=NULL) {

$p = $this->factory->getP();

$p->addChild($this->factory->getText($text));

if(!empty($classes)) {

$p->addClasses($classes);

}

if(!empty($id)) {

$p->setID($id);

}

return $p;

}

}

?>

怎么从php文件中查找代码,php类在文件中查找类文件,但不查找类相关推荐

  1. 用Handler的post()方法来传递线程中的代码段到主线程中执行

    自定义的线程中是不能更新UI的,但是如果遇到更新UI的事情,我们可以用handler的post()方法来将更新UI的方法体,直接传送到主线程中,这样就能直接更新UI了.Handler的post()方法 ...

  2. markdown中引用代码_如何在Markdown中引用您JavaScript源代码

    markdown中引用代码 您是否撰写有关Javascript和Typescript的技术文章? (Do you write technical articles about Javascript a ...

  3. 【idea 2021.2】如何将idea中的代码推到git仓库中(最新详细版)

    一.准备好要推到git上的本地代码 如果我们的代码只在本地运行并没有连接远程git仓库,那idea的菜单栏是有所不同的 没有连接远程仓库的idea菜单栏: 连接了远程仓库的idea菜单栏: 可以看出是 ...

  4. 弹出 文件 选择 html代码,HTML+CSS点击按钮弹出文件选择框的最佳方案

    网页设计中,对于文件选择框(HTML的file标签),出于美观或者体验等等的原因,我们对他的默认外观并不满意,我们可能希望点击一个按钮直接弹出文件选择框,这个很多人认为很简单,但是由于浏览器兼容的原因 ...

  5. 【开发环境】PyCharm 配置 GitHub ( 从 GitHub 中 Clone 代码到 PyCharm 开发环境中 )

    文章目录 一.PyCharm 配置 GitHub 账号 二.PyCharm 中 Clone GitHub 代码 三.PyCharm 为工程配置 Python 编译器 一.PyCharm 配置 GitH ...

  6. 在java中柱状图代码_我在java中编写了个柱状图,可运行了,我想让柱状图在JSP页面中显示,请问有什么方法么?谢谢。...

    h1,h2 代表了柱形图的高度 你可以这样试一试 function createImgItem(count){ var div=document.createElement("") ...

  7. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  8. matlab中P代码即P文件加密与逆向工程探讨

    P代码机制介绍 p意思是预解析(preparsed version).即将.m文件里的代码预解析一遍,生成p文件.当再次调用时,实际上调用的就是.p文件.当MATLAB将某文件转换为p代码文件时,该文 ...

  9. 【Android 安全】DEX 加密 ( Java 工具开发 | 解压 apk 文件 | 加密生成 dex 文件 | 打包未签名 apk 文件 | 文件解压缩相关代码 )

    文章目录 一.解压 apk 文件 二.加密生成 dex 文件 三.打包未签名 apk 文件 四.完整代码示例 五.文件解压缩相关代码 六.执行结果 参考博客 : [Android 安全]DEX 加密 ...

  10. 对PE文件进行十六进制代码(机器码)提取并保存到外部文件

    前言与声明 秉持开源和共享的理念,博主在这里分享自己的代码. 博客中的代码可以将PE文件的十六进制代码(机器码)提取出来,这些机器码可用于机器学习.软件分析等. 声明: 转载请标明来处,创作不易! 代 ...

最新文章

  1. UE卡通风格游戏场景制作视频教程
  2. 《Effective C#中文版:改善C#程序的50种方法》读书笔记
  3. 指针的本质是:内存(地址)+ 类型 装包解包
  4. javascript写打地鼠
  5. 关于Unity中场景的导入与导出(专题九)
  6. python数据框新建一个列并赋值_pandas.DataFrame 根据条件新建列并赋值的方法
  7. Laravel表单提交419页面过期
  8. unsigned short占几个字节_ARM中,字、半字、字节分别是多少位?
  9. 数据结构 - 栈(链表实现栈的入栈出栈)
  10. 远程服务器 上传公钥,SecureCRT+Ubuntu SSH服务器的远程公钥登陆
  11. MRI骨水肿是早期未分化关节炎演变为RA的独立预测预测因素
  12. 让WEB FORM更像WINDOWS FORM: 控制窗体事件
  13. java获取焦点_[Java教程]dialog获取焦点
  14. Zephyr调整Main栈大小
  15. springmvc实现多图片上传
  16. 《老路用得上的商学课》16-20学习笔记
  17. python cv2 利用掩膜将图片透明背景
  18. 计算机管理能看到移动硬盘,无法识别移动硬盘并且不显示磁盘图标.
  19. 《稻盛和夫经营学》读后感心得体会3180字范文
  20. 实用工具推荐【待更新】

热门文章

  1. 【题解】Luogu P5294 [HNOI2019]序列
  2. HihoCoder 1511: 树的方差(prufer序)
  3. python 快速排序的实现
  4. tomcat配置方法
  5. css整理-03 文本
  6. java poi 只能创建?,Java POI使用SS模型创建新的工作簿?
  7. Oracle相同的一个SQL执行计划截然不同的解决方法
  8. String类源码阅读
  9. Git基本操作(学习笔记)
  10. 多线程之使用读写锁ReentrantReadWriteLock实现缓存系统