используя файл .config.inc.php в моей библиотеке Amazon API. Когда я работал с каталогом образцов, который находится в следующем месте..
/var/www/libraries/amazonfba/FBAOutboundServiceMWS/Samples
Он использовал текущую конфигурацию в файле (которая работала нормально).
/************************************************************************
* OPTIONAL ON SOME INSTALLATIONS
*
* Set include path to root of library, relative to Samples directory.
* Only needed when running library from local directory.
* If library is installed in PHP include path, this is not needed
***********************************************************************/
set_include_path(get_include_path() . PATH_SEPARATOR . '../../.');
/************************************************************************
* OPTIONAL ON SOME INSTALLATIONS
*
* Autoload function is reponsible for loading classes of the library on demand
*
* NOTE: Only one __autoload function is allowed by PHP per each PHP installation,
* and this function may need to be replaced with individual require_once statements
* in case where other framework that define an __autoload already loaded.
*
* However, since this library follow common naming convention for PHP classes it
* may be possible to simply re-use an autoload mechanism defined by other frameworks
* (provided library is installed in the PHP include path), and so classes may just
* be loaded even when this function is removed
***********************************************************************/
function __autoload($className){
$filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
$includePaths = explode(PATH_SEPARATOR, get_include_path());
foreach($includePaths as $includePath){
if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){
require_once $filePath;
return;
}
}
}
Теперь я не хотел хранить свой код в «образцах», думая, что это будет легко. Мой файл .config.inc.php теперь находится по адресу
/var/www/integrations
Я получаю ошибки о классах, потому что я предполагаю, что он пытается ссылаться на них в неправильном месте.
Я думаю, что это связано с этой строкой...
set_include_path(get_include_path() . PATH_SEPARATOR . '../../.');
Но как бы я ни изменил, что это не работает? Кто-нибудь укажет мне направление, чтобы правильно указать его на мой каталог или несколько указателей о том, как это работает? Я также заметил, что состояние комментирования будет игнорироваться на PHP, и в этом случае как я могу указать ему правильное направление?
Обновление: я попытался добавить каталог в массив следующим образом:
$includePaths[4] ='/var/www/libraries/amazonfba';
который на var_dump дает правильное местоположение, но затем дает мне это...
Warning: require_once(FBAOutboundServiceMWS/Client.php): failed to open stream: No such file or directory in /var/www/integrations/AmazonFBA/.config.inc.php on line 78
Это потому, что эти файлы, такие как client.php, я думаю, ссылаются на набор местоположений включения. Я не могу получить мою головную боль местоположение и просто не могу сделать это правильно! Любые указатели, поэтому мой файл php + файл конфигурации (в той же папке) могут быть в отдельной папке для библиотеки, это будет туз!