2016-06-09 7 views
0

Ich habe eine Reihe von Dateien in PhpStorm, die eine Warnung in ihnen haben, und ich ging dieser grünen Tick! Sie alle benutzen BLOB, was natürlich Sinn macht, da load() keine Funktion in meinem Projekt ist. Es ist eine Basis-PHP-Funktion von OCI-Lob.PhpStorm - Unterdrücken Sie eine 'Methode nicht in der Klasse' für BLOB

Codezeile ist:

$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load()); 

Ich habe versucht, das Hinzufügen @var und @method comments (vielleicht nicht richtig) in verschiedenen Kombinationen wie:

/** @var $result['FILE_BLOB'] load */ 

Ich will nicht diese Überprüfung deaktivieren Projekt breit natürlich wie es überall sonst sehr nützlich ist. Ich möchte es nur für diese Zeile unterdrücken oder es irgendwie besser in die richtige Richtung lenken. Es ist ärgerlich, statt Zecken viele gelbe Blöcke zu haben. Vielleicht bin ich nur pingelig, da das Programm offensichtlich nicht davon betroffen ist. Kennt jemand irgendeine Lösung oder Workaround?

Antwort

2

Sie das Blob in einer separaten Variable verweisen könnten und dann auf dieser Variable einen Hinweis setzen:

/** @var OCI_Lob $fileBlob */ 
$fileBlob = $result['FILE_BLOB']; 
$zip->addFromString($result['FILE_NAME'], $fileBlob->load()); 

Seit $ result [ ‚FILE_BLOB‘] ist ein Objekt, um es durch Bezugnahme zugewiesen werden, so sollte dies verursacht keine signifikante Erhöhung der Speicherbelegung Ihres Skripts.

Eine andere Option wäre, das gesamte Ergebnis-Array als ein Array von OCI_Lob-Objekten anzudeuten. Nicht schön, aber es wird wahrscheinlich Ihre Code-Inspektion Probleme lösen als auch:

/** @var OCI_Lob[] $result */ 
$zip->addFromString($result['FILE_NAME'], $result['FILE_BLOB']->load()); 

Soweit ich weiß, dass es nicht möglich ist (noch) bestimmte Array-Schlüssel in PHPDoc Kommentare anzudeuten, so ist dies das Beste, was ich kommen kann im Moment mit.

+0

Hey vielen Dank für die Antwort. Ich probierte beide aus, aber es sagt nur 'undefinierte Klasse OCI_Lob' und dann offensichtlich immer noch sagt Methode nicht in der Klasse gefunden. Brauchen Sie vielleicht eine direkte Verbindung zum Standort von OCI-Lobs? Auch habe ich versucht, OCI-Lob als Php-Handbuch sagt, dass, anstatt mit einem Unterstrich. Ich denke, dass die Referenzierung als Variable für eine andere meiner Warnungen funktioniert. So danke. :) –

+0

Wenn Sie in einem Namespace arbeiten, müssen Sie möglicherweise \ OCI_Lob verwenden (mit dem umgekehrten Schrägstrich vor dem Verweis auf den Root-Namespace). PHPStorm sollte die Klasse standardmäßig erkennen können (zumindest für mich). – chocochaos

+0

Boom, der für beide Varianten ein Vergnügen war! Ich bevorzuge die zweite als nur eine Zeile und ist nur ein Kommentar, so berührt den Code überhaupt nicht. Vielen Dank! –