Tüm oluşturulan Doktrini sınıflar Doktrini app dizini olması gerekmektedir

1 Cevap php

Ben bizim sunucuya yüklemek tek bir Doktrini kullanmak istiyorsanız ve birden çok web sitesi hizmet vermektedir. Doğal modelleri web siteleri 'models klasöründe muhafaza edilmelidir.

Öyle gibi her şeyi (ve çalışan değil) var:

Doktrin @

/CustomFramework/Doctrine

Web siteleri @

/var/www/vhosts/custom1.com/
/var/www/vhosts/custom2.com/

Yaratma tüm modeller doğru web sitesi için /application_folder/models ve /application_folder/models/generated teslim edilir, gayet iyi çalışıyor.

Her web sitesi için önyükleme dosyasında Doktrin :: loadModels ('path_to_models') eklenmiş ve aynı zamanda özdevinimli tescil ettik.

Ama ....

Bu autoloader kodu:

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;
 }

Ben aptal ya autoloader gerçekten bu yapıyor Am:

$class = self::getPath() . DIRECTORY_SEPARATOR . str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';

veya, diğer bir deyişle: bu Doktrin app dizini içindeki tüm benim oluşturulan doktrin dersleri olması beni gerektirir mi? Veya başka bir deyişle, ben her web sitesi için tek Doktrin yüklemesi gerekiyor?

I'm getting an error that the BaseXXX class cannot be found. So the autoloading doesn't function correctly. I really hope i'm doing something wrong.. anyone?

1 Cevap

Doktrin 1.2 'den başlayarak, modeller autoloading başka autoloader tarafından dağıtılır, Doctrine_Core::modelsAutoload. Bu, (Eğer kütüphane sınıfları yüklenmesi için diğer bazı autoloader kullanmak istiyorsanız) size kütüphane yükleme ve modelleri yükleme ayrı sağlar.