Я хочу использовать одну установку Doctrine на нашем сервере и обслуживать несколько веб-сайтов. Естественно, модели должны храниться в папке models
веб-сайтов.
У меня все (и не работает) вот так:
Доктрина @
/CustomFramework/Doctrine
Веб-сайты @
/var/www/vhosts/custom1.com/
/var/www/vhosts/custom2.com/
Генерация работает нормально, все модели поставляются в /application_folder/models
и /application_folder/models/generated
для правильного веб-сайта.
Я добавил Doctrine :: loadModels ('path_to_models') в файл начальной загрузки для каждого веб-сайта, а также зарегистрировал автозагрузку.
Но ....
Это код автозагрузчика:
public static function autoload($className)
{
if (strpos($className, 'sfYaml') === 0) {
require dirname(__FILE__) . '/Parser/sfYaml/' . $className . '.php';
return true;
}
if (0 !== stripos($className, 'Doctrine_') || class_exists($className, false) || interface_exists($className, false)) {
return false;
}
$class = self::getPath() . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
if (file_exists($class)) {
require $class;
return true;
}
return false;
}
Я тупой, или автозагрузчик действительно делает это:
$class = self::getPath() . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
или, другими словами: требуется ли от меня, чтобы ВСЕ мои сгенерированные классы доктрин были в каталоге приложения Doctrine? Или, другими словами, мне нужна отдельная установка Doctrine для каждого веб-сайта?
Я получаю сообщение об ошибке, что класс BaseXXX не может быть найден. Таким образом, автозагрузка не работает правильно. Я действительно надеюсь, что я делаю что-то не так .. кто-нибудь?