2017-03-04 3 views
1

Ich erzeuge dynamisch meine Benutzungsanweisungen und versuche, sie einzubeziehen.Wie kann man `Benutzungs`-Operatoranweisungen einbeziehen/erfordern?

use.php (Pfad: /App/Test/Use/use.php)

<?php 
    use App\Http\Utility\GeneralUtility; 
    use App\Models\Project; 
    use App\Http\Selenium; 
?> 

PlayController.php (Pfad: /App/Http/Controllers/PlayController.php)

Wenn ich jedoch versuche, eine enthaltene/erforderliche Klasse in meinem Controller zu verwenden, dann bekomme ich die Information, dass einige Klassen fehlen. Z.B.

FatalThrowableError in PlayController.php line 30: 
Class 'App\Http\Controllers\Selenium' not found 

Natürlich funktioniert es, wenn ich sie manuell in die Steuerung zu schreiben, ohne require mit:

<?php 
    namespace App\Http\Controllers; 

    use App\Http\Utility\GeneralUtility; 
    use App\Models\Project; 
    use App\Http\Selenium; 

    ... 

Warum funktioniert es nicht, wenn ich include/sie benötigen?

+0

Nein, es funktioniert, wenn ich die Use-Anweisungen manuell über die Klasse schreiben. Der Fehler muss also mit dem Include/Require in Zusammenhang stehen. – Black

+0

Geben alle diesen Fehler oder nur diesen? – Nytrix

+0

Es wird vielleicht ein dummer Kommentar sein, aber könnte sein, dass "verwenden" ist, PHP mit Klassen zu machen, und nur für die Aufnahme von ihnen enthalten. – Syncro

Antwort

2

Es ist nicht möglich, was Sie versuchen zu tun. Hier ist die Dokumentation aus dem PHP-Handbuch darauf:

Hinweis: Importieren von Regeln sind pro Datei-Basis, das heißt darin enthaltenen Dateien werden NICHT die Mutterdatei importieren Regeln erben.

Die Quelle stammt aus here und die vollständige Dokumentation Link ist here.

1

Die Verwendung erfolgt zur Kompilierzeit und zur Laufzeit, so dass es unmöglich macht. Aber Sie könnten etwas wie PHP-Parser verwenden, um die Includes zu ersetzen, bevor das Skript ausgeführt wird.

+0

Ja, das wäre möglich. Ist es sauber? * Nein * absolut nicht .... Es ist der einzige Weg, nehme ich an .. – Nytrix

+0

Ich hoffe, dass sie ein Feature in der Zukunft implementieren werden, so dass es möglich sein wird, Benutzungshinweise aufzunehmen, dies würde so viele neue Möglichkeiten bringen – Black