2016-09-21 1 views
0

J'utilise le SDK de PEAR Services_Facebook-0.2.14, et la première des lignes suivantes dans Facebook.php échoue:Pourquoi cela nécessite-t-il un échec?

require_once 'Common.php'; 
require_once 'Services/Facebook/Common.php'; 
require_once 'Services/Facebook/Exception.php'; 

avec le message du journal:

[21-Sep-2016 13:41:46 UTC] PHP Fatal error: require_once(): Failed opening required 'Common.php' (include_path='/home/thehanfw/php/Services') in /home/thehanfw/php/Services/Facebook.php on line 23

Dans mon client API Facebook, j'utilise les lignes suivantes pour accéder au SDK:

ini_set("include_path", "/home/thehanfw/php/Services"); 
require_once "Facebook.php"; 

J'ai mis le chemin explicitement inclure comme en désespoir de cause, befo re mon application trouverait même Facebook.php. Le fichier Common.php est présent, et je l'ai commenté le require_once 'Services/Facebook/Common.php'; parce Services est déjà include, et je recevais exactement la même erreur avec le code d'origine. Il est intéressant aussi que cette erreur soit enregistrée environ 20 fois très rapidement avant que j'obtienne une erreur HTTP ERR_TOO_MANY_REDIRECTS dans mon application client. C'est sur un hôte partagé, avec PHP 5.6.22.

RUPTURE: Je l'ai trouvé drôle que mon application client fonctionnait très bien sur ma machine dev bien, mais je réalise que je n'avais installé plus tard, le PEAR fustigé sur mon PC, et l'application travaillait contre un SDK directement téléchargé depuis Facebook, nommé php-graph-sdk-5.0.0. Je ne sais pas si la 5.0.0 la version FB par rapport à la 0.2.14 version PEAR, mais que je l'ai nettoyé la merde PEAR de mon hôte, et installé le SDK FB, il fonctionne sur l'hôte aussi bien.

+0

Je pense que PHP n'est pas pointé le bon emplacement du dossier. Votre include_path a l'air correct (comme Facebook.php réside là, il fait un bon répertoire de base, (ai-je raison?)). Donc, si vous supprimez la partie 'Services /' de 'require_once 'Services/Facebook/Common.php';' Je pense que ça va se résoudre. – Werner

+0

Je l'ai fait, et cela a fonctionné, puis j'ai trouvé le même problème dans 'Common.php'. C'est le code de PEAR, et pas le mien du tout, et je ne le connais pas très bien, alors je vais les informer, mais je ne vais pas essayer de résoudre le problème moi-même. – ProfK

Répondre

0

paquets PEAR fichiers de code ont require_once des déclarations qui ne fonctionnent que lorsque vous avez le répertoire de package racine dans votre include_path. Dans votre cas, le chemin d'inclusion doit inclure au moins /home/thehanfw/php/, puisque c'est là que vous avez (manuellement) extrait le paquet.

paquets PEAR Extraction manuellement is not recommended sauf si vous savez vraiment ce que vous faites:

We removed this section, because, today, manually installing a package requires a deeper understanding of the way how packages are organized and what happens during the installation process. You should read the section about the package.xml in the Developers Guide (package.xml and package.xml 2.0), if you really want install a package without the PEAR installer.

Vous ne apparemment pas, et il a échoué.


Le paquet PEAR a été publié en 2010, il y a 6 ans. Vous êtes mieux avec l'API officielle.