2012-10-08 16 views
8

Mam plik script.js.php. Zawiera kod PHP i JavaScript (js zależy od php). I ma być dołączony do strony jako plik js.Podświetlanie kodu JS w pliku php

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

Przykład script.js.php

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

Czy ktoś wie, czy jest możliwe, aby PhpStorm higlight kodu JavaScript w pliku PHP bez użycia script -tag?

Być może jest jakiś rodzaj pseudo-tagów, które nie wpłyną na ostateczny html/js, ale sprawią, że PhpStorm hightlight code "prawidłowo", np.

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

** Ustawienia | Języki danych szablonów ** - znajdź swoje pliki/foldery i przypisz do nich 'JavaScript' (zamiast domyślnego HTML). – LazyOne

+0

@LazyOne. Niesamowite! Dzięki. Połóż to w odpowiedzi, a ja to zaakceptuję. –

Odpowiedz

9

Ustawienia | Języki danych szablonów - znajdź plik (i) lub folder (y) i przypisz do nich JavaScript (zamiast domyślnego HTML).

Jeśli dobrze się zorganizujesz, skorzystasz z możliwości przechowywania wszystkich plików *.js.php w osobnym podfolderze - umożliwia to przypisanie pojedynczego folderu (i wszystkich plików wewnątrz) zamiast wielu przypisań do poszczególnych plików.

+0

To działa. Dziękuję Ci. –

+0

Należy zauważyć, że jest to o wiele lepsze rozwiązanie niż dodanie, powiedzmy, * .js.php do typów plików, ponieważ z jakiegoś powodu nie wstrzykuje bibliotek. Mówi "okno" jest niezdefiniowane, a 'jQuery' jest niezdefiniowane. W ten sposób, za pomocą Template Data Languages, nadal dostajesz kodowanie z bibliotekami takimi jak jQuery lub nawet DOM jak obiekt 'window'. – Brandon

5
  • Umieść kursor na część JavaScript
  • Prasa Alt + Enter
  • Wybierz Inject Language
  • Wybierz JavaScript

Na przykład:

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

To jest inne - ma inne podejście - nie ma "echo", jak widać, więc nie ma miejsca na ręczne wstrzykiwanie języka – LazyOne

+0

thx, ale zabronione jest używanie '