2012-10-08 3 views
8

Ich habe eine Datei script.js.php. Es enthält PHP und JavaScript Code (die js ist abhängig von der php). Und es soll in eine Seite als js-Datei aufgenommen werden.Markieren von js-code in PHP-Datei

<script type="text/javascript" src="script.js.php"></script> 

Beispiel script.js.php

<?php 
    require_once 'functions.php' 
?> 
var vars = { 
    var1: 'value1', 
    var2: 'value2', 
    var2: '<?php echo phpFunction(); ?>' 
} 

Weiß jemand, ist es möglich, ohne script -tag PhpStorm higlight JavaScript-Code innerhalb einer PHP-Datei zu machen?

Vielleicht gibt es eine Art von Pseudo-Tags, die die endgültige HTML/JS nicht beeinflussen würden, aber PhpStorm Hightlight Code "richtig", z.

<!-- <section language="javascript">--> 
    js goes here 
<!-- </section> --> 
+0

** Einstellungen | Template Data Languages ​​** - finde deine Datei (en)/Ordner und weise ihnen 'JavaScript' zu (anstelle von Standard-HTML). – LazyOne

+0

@LazyOne. Genial! Danke. Setzen Sie das in Antwort und ich werde es akzeptieren. –

Antwort

9

Einstellungen | Vorlage Datensprachen - finden Sie Ihre Datei (en) oder Ordner und weisen Sie ihnen JavaScript zu (anstelle von Standard-HTML).

Wenn Sie Ihre Sachen gut organisiert halten, dann werden Sie davon profitieren, alle *.js.php Dateien unter einem separaten Unterordner zu speichern - das erlaubt eine einzelne Zuweisung für einen ganzen Ordner (und alle darin enthaltenen Dateien) anstelle von Mehrfachzuweisungen für einzelne Dateien.

+0

Das funktioniert. Danke. –

+0

Beachten Sie, dass dies eine weitaus bessere Lösung ist als das Hinzufügen von * .js.php zu Dateitypen, da es aus irgendeinem Grund keine Bibliotheken einfügt. Es wird sagen, 'Fenster 'ist undefiniert und' jQuery' ist nicht definiert. Auf diese Weise erhalten Sie mit Template Data Languages ​​Code-Vervollständigung mit Bibliotheken wie jQuery oder sogar nur DOM wie das 'window' Objekt. – Brandon

5
  • Setzen Sie den Cursor auf dem JavaScript-Teil
  • Presse Alt + Enter
  • Select Inject Language
  • Select JavaScript

Zum Beispiel:

<?php 
echo "<script>/* CURSOR HERE*/ 
    alert('Hello World'); 
    </script>"; 
+0

Das ist anders - er hat einen anderen Ansatz - kein 'echo' wird verwendet, wie Sie sehen können, so gibt es keinen Platz für die manuelle Sprachinjektion – LazyOne

+0

thx, aber es ist verboten,'