include_path не повторяется? - PullRequest
       25

include_path не повторяется?

2 голосов
/ 20 августа 2010

У меня есть несколько отдельных сайтов, которые живут в разных каталогах.Что касается включений, которые у них общие, то я живу в корневом каталоге, где живут остальные.

user@hostname:/var/www$ ls
website_1 website_2 website_3 common_files 

Я хочу включить пакет Zend, поэтому у меня есть мой путь включения

ini_set("include_path", get_include_path() . ":/var/www/common_files/Zend");
require_once("Mail.php");

Mail.php загружается нормально, но затем где-то есть эта строка

require_once 'Zend/Mail/Transport/Abstract.php';

, который выдает эту ошибку

Warning: require_once(Zend/Mail/Transport/Abstract.php): failed to open stream: No such file or directory in var/www/common_files/Zend/Mail.php on line 26

Так что php не рекурсивно спускается в структуру каталогов включаемых путей.Должен ли я переместить Zend в каждый каталог веб-сайта, указать путь к каждому включению или что?


Кстати, аннотация существует:

user@host:/var/www/common_files/Zend$ tree -d 
...
`-- Mail/Transport
    |-- Mail/Transport/Abstract.php
    |-- Mail/Transport/Exception.php
    |-- Mail/Transport/Sendmail.php
    `-- Mail/Transport/Smtp.php

9 directories, 32 files

Ответы [ 4 ]

5 голосов
/ 20 августа 2010

РЕДАКТИРОВАТЬ : Вы хотите изменить ваш include_path, чтобы включить /var/www/common_files

Что, если вообще что-то, сломалось после того, как ты это сделал?

1 голос
/ 20 августа 2010

Похоже, Zend является рабочим каталогом здесь, поэтому ваше утверждение ищет /Zend/Zend/Mail/Transport/Abstract.php.Попробуйте просто отключить Zend из утверждения, и оно должно работать нормально.

1 голос
/ 20 августа 2010

Глупый ответ: существует ли Abstract.php?

require_once 'Mail/Transport/Abstract.php';

Попробуйте, потому что Mail.php уже находится в папке Zend, я думаю, он ищет /Zend/Zend/.../Abstract.PHP

0 голосов
/ 20 августа 2010

вам нужно указать путь для включения пути к папке Zend.затем вы включаете файлы, такие как

require_once 'Zend/Mail.php'
...