在我的应用程序中使用非常旧的TwitterOAuth库多年(工作正常)并决定升级。注意到新版本现在包含autoload.php,它从/ src目录自动加载许多文件(类)。按照说明完成所有操作,但自动加载器无法正常工作。在搜索互联网和调试应用程序3个多小时后,我发现只有将一切(自动加载器,功能等)组合到一个文件中时,TwitterOAuth才能正常工作。如果我将函数保存在functions.php,settings.php等设置中,则无效。
我如何解决它,所以我可以将TwitterOAuth与旧版本一起使用多个文件?为方便起见,我制作了一个测试文件,以便您可以看到问题 - http://www.lipskas.com/test.zip
只需在您的服务器/ localhost上下载/启动它。如果您打开index.php文件,您将获得' Class' TwitterOAuth'找不到'错误,因为所有代码都分为3个文件(index.php,settings.php,functions.php)。
现在打开works.php,您将看到一切正常,因为3个文件中的相同代码被完全复制到一个文件中。怎么了?
更新:这是来自works.php的代码,这个代码有效:
<?php
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
function do_something_with_twitter()
{
$connection = new TwitterOAuth("aaaa", "bbbb");
$content = $connection->get("account/verify_credentials");
print_r($content);
}
do_something_with_twitter();
?>
这里是来自3个单独文件的代码,它不起作用:
的index.php
<?php
require "settings.php";
do_something_with_twitter();
?>
的settings.php
<?php
require "functions.php";
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
?>
的functions.php
<?php
function do_something_with_twitter()
{
$connection = new TwitterOAuth("aaaa", "bbbb");
$content = $connection->get("account/verify_credentials");
print_r($content);
}
?>
答案 0 :(得分:0)
如果某人遇到同样的问题,您可以通过以下方式解决问题:
使用新版本的Twitteroauth库,您应该在每个需要调用Twitter库的文件中包含此行(如果您的应用有多个文件):
使用亚伯拉罕\ TwitterOAuth \ TwitterOAuth;