Вопрос о включении файлов с require_once - PullRequest
1 голос
/ 16 мая 2011

Я скачал этот API .

Если вы зайдете в lib / Paypal / Profile / Handler / Array.php, вы найдете эту строку:

require_once 'PayPal.php';

Так как файл PayPal.php находится в папке lib /, я ожидал что-то вроде этого:

require_once '../../../../PayPal.php'

Итак ... где находится «корневая» папка API?

ПРИМЕЧАНИЕ: у моего вопроса есть причина: я пытаюсь узнать, почему у меня появляется такая ошибка:

Предупреждение: require_once (PayPal.php): не удалось открыть поток: нет такого файла или каталога в /home/me/app1/plugins/mbpPlatformFrontendPlugin/lib/paypal/PayPal/Profile/Handler/Array.php в строке 9

С уважением

Хави

Ответы [ 4 ]

2 голосов
/ 16 мая 2011

Когда вы запускаете встроенный установщик (/install.php), он добавляет код для установки include_path здесь:

install.php[130-135]

$code = "<?php\n" .
    "//*******************************************\n" .
    "// AUTO-GENERATED include for PayPal PHP SDK\n" .
    "// Created by install.php on $stamp\n" .
    "//*******************************************\n\n" .
    "set_include_path('$sdk_dir' . DIRECTORY_SEPARATOR . '" . $libdir . "' . PATH_SEPARATOR . get_include_path());\n";

Именно поэтому файл README.html говорит вам запуститьвключенный установщик для использования образцов.

1 голос
/ 16 мая 2011

Попробуйте найти это:

Установить Включить путь

0 голосов
/ 16 мая 2011

Я предполагаю, что файл Array.php сам по себе включен в другой файл, запущенный откуда-то еще (вероятно, из корня).

Когда вы включаете (или запрашиваете) другой php-файл, он будет выполняться с тем же путем, что и скрипт, который его включил (который может быть включен, и, таким образом, выполнен в пути другого сценария).

0 голосов
/ 16 мая 2011

PHP имеет то, что называется include_path , которое указывает, где по умолчанию он ищет файлы, чтобы включить / требовать.Вы можете установить его в своем php.ini или в своем коде, используя set_include_path () .

...