我通过emanueleminotto/simple-html-dom
安装了composer
。
如何在不收到错误的情况下使用包中的类?
注意:我使用XAMPP来运行PHP脚本。
错误讯息:
PHP致命错误:未捕获错误:在C:\ xampp \ htdocs \ Practice \ PHP \ scrape_1.php中找不到类'simple_html_dom':3 堆栈跟踪:
0 {main}
在第3行的C:\ xampp \ htdocs \ Practice \ PHP \ scrape_1.php中抛出
致命错误:未捕获错误:在C:\ xampp \ htdocs \ Practice \ PHP \ scrape_1.php中找不到类'simple_html_dom':3 堆栈跟踪:
0 {main}
在第3行的C:\ xampp \ htdocs \ Practice \ PHP \ scrape_1.php中抛出
答案 0 :(得分:2)
运行后
$ composer install
要求在脚本文件顶部的vendor/autoload.php
中生成自动加载器(或者,对于Web应用程序,在前端控制器中)。
然后您将在脚本中使用所有自动加载的类。
<?php
require_once __DIR__ . '/vendor/autoload.php';
$htmlDom = new simple_html_dom_node();
供参考,请参阅https://getcomposer.org/doc/01-basic-usage.md#autoloading。
答案 1 :(得分:1)
显然emanueleminotto/simple-html-dom
不使用命名空间,因此默认情况下使用全局命名空间。干净的解决方案是包含vendor/autoload.php
(由作曲家创建/生成/更新)并通过前置\
使用类/函数来指示全局命名空间...除非你在全局工作自己命名空间,在这种情况下你不必预先添加。
答案 2 :(得分:1)
你应该可以使用它们。如果我看到了这一点,那么整个软件包实际上只是一个由作曲家自动加载的文件。
如果在PHP脚本中包含vendor/autoload.php
文件,那么最好使用包中的类。