如何要求通过 Composer 安装包
How to require a package installed via Composer
我通过 composer
安装了 emanueleminotto/simple-html-dom
。
如何使用包中的 类 而不会出现错误?
注意:我使用XAMPP到运行PHP脚本。
错误信息:
PHP Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3
Stack trace:
0 {main}
thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3
Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3
Stack trace:
0 {main}
thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3
显然 emanueleminotto/simple-html-dom
不使用命名空间,因此默认情况下使用全局命名空间。干净的解决方案是包括 vendor/autoload.php
(作曲家 created/generated/updated)并通过在 \
前面加上 classes/functions 来指示全局名称空间......除非你在自己的全局命名空间,在这种情况下,您不必预先考虑。
你应该可以直接使用它们。如果我没看错,整个包实际上只有一个文件,由 composer 自动加载。
如果您在 PHP 脚本中包含 vendor/autoload.php
文件,您应该可以使用包中的 类。
运行
之后
$ 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。
我通过 composer
安装了 emanueleminotto/simple-html-dom
。
如何使用包中的 类 而不会出现错误?
注意:我使用XAMPP到运行PHP脚本。
错误信息:
PHP Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3 Stack trace:
0 {main}
thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3
Fatal error: Uncaught Error: Class 'simple_html_dom' not found in C:\xampp\htdocs\Practice\PHP\scrape_1.php:3 Stack trace:
0 {main}
thrown in C:\xampp\htdocs\Practice\PHP\scrape_1.php on line 3
显然 emanueleminotto/simple-html-dom
不使用命名空间,因此默认情况下使用全局命名空间。干净的解决方案是包括 vendor/autoload.php
(作曲家 created/generated/updated)并通过在 \
前面加上 classes/functions 来指示全局名称空间......除非你在自己的全局命名空间,在这种情况下,您不必预先考虑。
你应该可以直接使用它们。如果我没看错,整个包实际上只有一个文件,由 composer 自动加载。
如果您在 PHP 脚本中包含 vendor/autoload.php
文件,您应该可以使用包中的 类。
运行
之后$ 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。