我还没有完全在PHP中的名称空间周围。我也不使用作曲家或自动加载器。我了解它们,但通常很难将它们包括在我自己的项目中。
所以我想在我正在开发的WordPress插件中包含一个软件包,特别是此https://github.com/elliotboney/thinkific-php
i可以包含主文件确定,但是在该文件中调用函数时,请在下面获取错误。我不确定它是否与它使用名称空间有关的事实,还是仅仅是因为它试图将文件包含在API子文件夹中,一旦我将主文件包含在我自己的代码中,就不会成为正确的路径。
有人知道我如何包含此包在我自己的项目中使用它吗?
require_once('Thinkific/Thinkific.php');
$think = new ThinkificThinkific([
'apikey' => 'xxxxxxxxx',
'subdomain' => 'yyyyyyyyy',
'debug' => true
]);
$users = $think->users();
$users = $users->getAll();
这是错误,它表明类文件和API子文件夹中的类别未加载。
Fatal error: Uncaught Error: Class 'ThinkificApiUsers' not found in Fatal error: Uncaught Error: Class 'ThinkificApiUsers' not found in /mysite/public_html/wp-content/plugins/thinkific/Thinkific/Thinkific.php:51 Stack trace: #0 /mysite/public_html/wp-content/plugins/thinkific/Thinkific/Thinkific.php(36): ThinkificThinkific->getApi('\Thinkific\Api\...') #1 /mysite/public_html/wp-content/plugins/thinkific/thinkific.php(50): ThinkificThinkific->__call('users', Array) #2 /mysite/public_html/wp-content/plugins/thinkific/thinkific.php(29): Thinkific::thinkific_get_users() #3 /mysite/public_html/wp-includes/class-wp-hook.php(298): thinkific_woocommerce_order_status_completed(Object(WP)) #4 /mysite/public_html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters('', Array) #5 /mysite/public_html/wp-includes/plugin.php(515): WP_Hook->do_action(Array) #6 /mysite/public_html/wp-includes/class-wp.php(746): do_action_ref_array('wp in /mysite/public_html/wp-content/plugins/thinkific/Thinkific/Thinkific.php on line 51
尝试这样的东西:
lib.php:
<?php
// Application library 1
namespace AppLib1;
const MYCONST = 'Hello,';
// Application library 1
namespace AppLib2;
const MYCONST = 'How are you?';
function MyFunction() {
return __FUNCTION__;
}
class MyClass {
static function WhoAmI() {
return __METHOD__;
}
}
?>
myApp.php:
<?php
require_once('lib.php');
echo AppLib1MYCONST . "n";
echo AppLib2MYCONST . "nn";
echo AppLib2MyFunction() . "n";
echo AppLib2MyClass::WhoAmI() . "n";
?>
您正在使用的库取决于composer
,即您进行composer install
的位置,它将生成vendor/autoload.php
,您只需要生成vendor/autoload.php
,在这里,此文件将照顾您的自动加载课程。
require_once 'vendor/autoload.php';
$think = new ThinkificThinkific([
'apikey' => 'xxxxxxxxx',
'subdomain' => 'yyyyyyyyy',
'debug' => true
]);
$users = $think->users();
$users = $users->getAll();