Frage

Ich baue ein Symfony 1.4 -Projekt und versuche, Birnen zu benutzen Crypt_rsa Paket. Leider wurde das Paket seit einiger Zeit nicht mehr aktualisiert, also anstatt ein einfaches zu tun pear install Aus der Befehlszeile möchte ich es in meine einbeziehen lib/vendor Projektpfad, damit ich verschiedene Code -Teile für die Verwendung in PHP5 ändern kann. (Es führt derzeit einige Warnungen und strenge Fehler aus, und ich möchte keine strikte Fehlerprüfung deaktivieren).

Ich habe eine erstellt autoload.yml Datei in meinem config Pfad, der jetzt Folgendes enthält:

autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor/Crypt
        recursive: true

Ich versuche dann, die Klasse crypt_rsa_keypair zu verwenden (Quelle) auf folgende Art:

$keyPair = new Crypt_RSA_KeyPair(128);

Dies führt zu dem folgenden Fehler:

Warnung: Request_once (Crypt/RSA/ERRAGEHANDLER.PHP) [Funktion.Require-Once]: Stream nicht geöffnet: Keine solche Datei oder Verzeichnis in /app_patpat/lib/vendor/crypt/rsa/keypair.php online 28

Fataler Fehler: einmalig benötigt() [Funktion.RequireFrau /app_patpat/lib/vendor/crypt/rsa/keypair.php online 28

Betrachten Sie in die Datei crypt/rsa.php (Quelle), es hat fordert. Symfony, um alles automatisch zu automatisieren (dh nicht rekursiv Autoladung) - nur die RSA.PHP -Datei. Die Anforderungsaufrufe sind jedoch alle spezifisch für den Ordner, der den Krypta -Ordner enthält, was bedeutet, dass das Autoload sicherstellen muss, dass beim Laden rsa.php ihn vom richtigen Pfad lädt, sodass jede dieser Dateien korrekt geladen werden kann.

In diesem Sinne habe ich ein paar verschiedene Einstellungen ohne Glück ausprobiert:

autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor
        files:     [Crypt/RSA.php]
        recursive: false

und:

# moved "Crypt" folder into a subfolder named "pear"
autoload:
    Crypt_RSA:
        path:      %SF_LIB_DIR%/vendor/pear
        recursive: false

Jeder dieser neuen Versuche führte zu einem anderen Fehler, bei dem die Klasse Crypt_Rsa_keypair einfach nicht ganz gefunden wurde.

Fataler Fehler: Klasse 'crypt_rsa_keypair' nicht gefunden in /app_patpat/lib/model/doctrine/sfdoctrineGuardplugin/sfguarduser.class.php online 70

Ich habe versucht, die Dokumente zu durchsuchen, aber die meisten meiner Google -Suchanfragen verweisen auf Symfony -Dokumente für 1.0 und nicht auf 1.4, und alle Dokumente sind im Allgemeinen vage auf Autoloading -Anbieterdateien.

Ich nehme an, eine andere Option wäre es, die RSA.php -Datei, die ich brauche sollte auch sein).

War es hilfreich?

Lösung

Sie können versuchen, Ihren benutzerdefinierten Autoloader für das Paket von Crypt_RSA -Anbieter zu erstellen und ihn in der ProjectConfiguration zu registrieren, wie sie Präsentiert in der Dokumentation der Rookeet (Bei Verwendung von Zend Lucene).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top