Vscode: [php] html intellisense ์ œ๊ณต

์— ๋งŒ๋“  2015๋…„ 11์›” 25์ผ  ยท  234์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: microsoft/vscode

PHP ํŒŒ์ผ์—๋Š” html ํƒœ๊ทธ ์ž๋™ ์™„์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.


2018 ๋…„ 9 ์›” 13 ์ผ ์ˆ˜์ • @egamma : VS Code๋Š” PHP์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์› ๋งŒ ์ œ๊ณตํ•˜์ง€๋งŒ ์‹œ์žฅ์—๋Š” ๊ฐ•๋ ฅํ•œ PHP ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ ์ด๋Ÿฌํ•œ ํ™•์žฅ์—์„œ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค (Intelephence๋Š” ์‹ค์ œ๋กœ ์ด๋ฏธ ์ง€์›ํ•จ). ์ด๋Ÿฌํ•œ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๊ณ  ํ’€ ์š”์ฒญ์„ํ•˜์—ฌ ๊ฐœ์„  ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์„ธ์š”.

์ด ๋ฌธ์ œ๋Š” ์ดˆ์ ์„ ์žƒ๊ณ  VS Code๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ PHP ์ง€์›์„ ์ œ๊ณตํ•ด์•ผํ•˜๋Š”์ง€ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๋…ผ์˜๋กœ ๋ฐ”๋€Œ ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ C #, C ++, Go, Python, Rust์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋งŽ์€ ์–ธ์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์šฐ๋ฆฌ๋Š” PHP๋ฅผ VS Code์™€ ๋ฒˆ๋“ค๋กœ ๋ฌถ๊ณ  ์‹ถ์ง€ ์•Š๊ณ  ์šฐ๋ฆฌ์˜ ํ›Œ๋ฅญํ•œ ํ™•์žฅ ์ƒํƒœ๊ณ„์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ์ด ๋ฌธ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

feature-request help wanted languages-basic php

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๋„์šธ ์ˆ˜ ์—†์ง€๋งŒ ๋‚˜์—๊ฒŒ์„œ ๋˜ ๋‹ค๋ฅธ +1000. PHP์˜ HTML / CSS / JS๋Š” ํ˜ผํ•ฉ ํŒŒ์ผ๋กœ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ์ „์ฒด Visual Studio + VS.php๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค-๋˜ํ•œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PHP๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  Microsoft ๊ฐœ๋ฐœ ๋„๊ตฌ์—์„œ ์ด๊ฒƒ์ด ์™œ ๊ฐ„๊ณผ๋˜๋Š”์ง€ ๊ณ„์† ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, PHP ์ง€์›์ด ์žˆ์ง€๋งŒ HTML / CSS / JS์— ๋Œ€ํ•œ IntelliSense (์ฝ”๋“œ ์™„์„ฑ ๋ฐ ์ฝ”๋“œ ์ œ์•ˆ)๋„ ์—†์œผ๋ฉด ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

HTML์˜ JS ๋ธ”๋ก ๋ฐ ์ธ๋ผ์ธ CSS๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
settings.json์—์„œ ์ •์˜ํ•˜๋ฉด :
"files.associations": {"*.php": "html"},
... PHP IntelliSense (๋ถ„๋ช…ํžˆ)๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  HTML์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ style=" ...something... "; ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธ๋ผ์ธ -CSS๋Š” ์Šคํƒ€์ผ ์†์„ฑ์˜ ๋”ฐ์˜ดํ‘œ ์‚ฌ์ด์— ์“ธ ๋•Œ CSS ์†์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ <script> ๋ธ”๋ก์„ ์‹œ์ž‘ํ•˜๋ฉด .js ํŒŒ์ผ์„ ์—ด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๋™์•ˆ JS ์šฉ IntelliSense๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์•ˆ์„์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค (๋” ์‰ฌ์šด ๊ฒฝ์šฐ).

  • <?php ... ?> ์—์„œ PHP IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • <?php ... ?> ์™ธ๋ถ€์—์„œ HTML IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
  • <style> ... </style> ๋ฐ style=" .... " CSS IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • <script ... > ๋ฐ <script> ... </script> JS IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด @TheColorRed ์˜ ์ œ์•ˆ์„
<?php ... ?> ํ•˜์ง€๋งŒ HTML IntelliSense๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค $string="..." ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” PHP ๊ฐœ๋ฐœ์ž๊ฐ€ ์ข…์ข… ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. PHP ํƒœ๊ทธ๋ฅผ ์—ด๊ณ  ๋‹ซ๋Š” ๋ธ”๋ก์„ ํ•ญ์ƒ ํ”ผํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•˜์‹ญ์‹œ์˜ค.
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

๋˜ํ•œ @egamma ๋Š” ๊ฐ์‚ฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฒŒ์œผ๋ฅธ ์†Œ๋ฆฌ๋ฅผํ•˜๋ ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์šฐ๋ฆฌ ์ค‘ ํ•œ ๋ช…์ด ์Šค์Šค๋กœ ์ฝ”๋”ฉ ํ•  ์ˆ˜์žˆ์„๋งŒํผ ์œ ๋Šฅํ•˜๊ณ  ์ง€์‹์ด ํ’๋ถ€ํ•˜๋‹ค๋ฉด ์ž˜๋‚œ ์ฒ™ํ•˜๋Š” ๋Œ“๊ธ€๋„๋ณ„๋กœ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„-๋‚˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค :-/ ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ธฐ๋ปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋‹จ์ง€ ์ œ์•ˆ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ŠคํŠธ ๋“ฑ์œผ๋กœ).

์ด ๊ธฐ๋Šฅ์ด ์กด์žฌํ•ด์•ผํ•œ๋‹ค๋Š” ํ•ฉ์˜๊ฐ€ ์žˆ๊ณ ,์ด ๊ธฐ๋Šฅ์ด์—†๋Š” ํ˜„์žฌ PHP ์ง€์›์€ ๋Œ€๋ถ€๋ถ„์˜ PHP ๊ฐœ๋ฐœ์ž๋ฅผ์œ„ํ•œ ๋ถ€๋ถ„์ ์ธ ์ง€์› ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

์ถ”์‹  ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋น„ํ‰๊ฐ€๋กœ ๋“ค๋ฆฌ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๊ธˆ๊นŒ์ง€ VS Code๋ฅผ ์ •๋ง ์ข‹์•„ํ•˜๋ฉฐ์ด ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ๊ณ„์† ๊ธฐ์—ฌํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ€์žฅ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํŽธ์ง‘ํ•˜๋‹ค:
๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ .ts ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์ž‘์—…์— ํฌํ•จ / ์ฐธ์กฐํ• ๊นŒ์š”?
์˜ˆ : /languages/php/common/php.ts
ํฌํ•จ : /languages/html/common/html.ts
ํฌํ•จ : /languages/css/common/css.ts
ํฌํ•จ: ...

ํƒœ๊ทธ / ์†์„ฑ / ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์•„๋ฌด ๊ฒƒ๋„ ๋– ์˜ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IntelliSense์˜ ๊ฒฝ์šฐ ์•„์ด์ฝ˜์ด ์„œ๋กœ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์ƒ‰์ƒ ์ฝ”๋”ฉ ๋งŒ ์—‰๋ง์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ... ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  234 ๋Œ“๊ธ€

ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๋“ค๋ฆฝ๋‹ˆ๋‹ค. HTML ํƒœ๊ทธ ์ธํ…”๋ฆฌ ์  ์Šค ๊ณต๊ธ‰์ž๋Š” ์—ฌ๊ธฐ ์— ์žˆ์œผ๋ฉฐ ํ•ด๋‹น ๋ชจ๋“ˆ์„ PHP ์ฝ”๋“œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ PHP๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ธฐ์–ตํ•œ๋‹ค๋ฉด <?php ํƒœ๊ทธ ์™ธ๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

<?php ํƒœ๊ทธ ์™ธ๋ถ€์˜ @Tyriar ๋Š” ๋ฌด์—‡์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ? PHP ํŒŒ์ผ์˜ <?php ?> ํƒœ๊ทธ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

<?php ?> ์™ธ๋ถ€๋Š” HTML์ด๊ณ  ๋‚ด๋ถ€๋Š” PHP์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ HTML ์ž๋™ ์™„์„ฑ์€ <?php ?> ํƒœ๊ทธ ์™ธ๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@Tyriarํ•˜์ง€๋งŒ ์ง€๊ธˆ ๊ทธ๋“ค์€ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค <?php ?> ํƒœ๊ทธ .php ํŒŒ์ผ์ด, ์–ด์ฉŒ๋ฉด ๊ทธ๋“ค์€์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .html ํŒŒ์ผ.

์ด ๊ธฐ๋Šฅ์„ ๋นจ๋ฆฌ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”. ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@osjn ๋Œ“๊ธ€๋กœ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ฅผ ๋„์šธ ์ˆ˜์žˆ๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ตฌํ˜„ ๋œ Pull Request ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚˜๋ฟ์ผ์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ, php ๋ฌธ์ž์—ด ๋‚ด๋ถ€์—์„œ๋„ intellisense๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฉ‹์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„ ์ฐฌ์„ฑ. ์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ์˜ ๋ชจ๋“  PHP ๊ฐœ๋ฐœ์ž๋Š” VSCode๋ฅผ ๊ธฐ๋ณธ ํŽธ์ง‘๊ธฐ๋กœ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด์ด ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœํ•˜๋ ค๋ฉด์ด ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์–ด์ œ ๋‚˜๋Š”์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋จธ๋ฆฌ๋ฅผ ๋ถ€๋”ช ํžˆ๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ TypeScript ๊ธฐ์ˆ ์ด ๋ถ€์กฑํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋ฐฉํ•ด๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒŒ ํ•„์š” ํ•ด์š”!

๊ฐ™์€. ๊ฐ„๋‹จํžˆ +1000

๋‚˜๋Š” ๋„์šธ ์ˆ˜ ์—†์ง€๋งŒ ๋‚˜์—๊ฒŒ์„œ ๋˜ ๋‹ค๋ฅธ +1000. PHP์˜ HTML / CSS / JS๋Š” ํ˜ผํ•ฉ ํŒŒ์ผ๋กœ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ์ „์ฒด Visual Studio + VS.php๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค-๋˜ํ•œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PHP๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  Microsoft ๊ฐœ๋ฐœ ๋„๊ตฌ์—์„œ ์ด๊ฒƒ์ด ์™œ ๊ฐ„๊ณผ๋˜๋Š”์ง€ ๊ณ„์† ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, PHP ์ง€์›์ด ์žˆ์ง€๋งŒ HTML / CSS / JS์— ๋Œ€ํ•œ IntelliSense (์ฝ”๋“œ ์™„์„ฑ ๋ฐ ์ฝ”๋“œ ์ œ์•ˆ)๋„ ์—†์œผ๋ฉด ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

HTML์˜ JS ๋ธ”๋ก ๋ฐ ์ธ๋ผ์ธ CSS๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
settings.json์—์„œ ์ •์˜ํ•˜๋ฉด :
"files.associations": {"*.php": "html"},
... PHP IntelliSense (๋ถ„๋ช…ํžˆ)๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  HTML์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ style=" ...something... "; ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ธ๋ผ์ธ -CSS๋Š” ์Šคํƒ€์ผ ์†์„ฑ์˜ ๋”ฐ์˜ดํ‘œ ์‚ฌ์ด์— ์“ธ ๋•Œ CSS ์†์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ <script> ๋ธ”๋ก์„ ์‹œ์ž‘ํ•˜๋ฉด .js ํŒŒ์ผ์„ ์—ด๋ฉด ์ •์ƒ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋Š” ๋™์•ˆ JS ์šฉ IntelliSense๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ œ์•ˆ์„์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค (๋” ์‰ฌ์šด ๊ฒฝ์šฐ).

  • <?php ... ?> ์—์„œ PHP IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • <?php ... ?> ์™ธ๋ถ€์—์„œ HTML IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
  • <style> ... </style> ๋ฐ style=" .... " CSS IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • <script ... > ๋ฐ <script> ... </script> JS IntelliSense๋ฅผ ์‹œ์ž‘ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด @TheColorRed ์˜ ์ œ์•ˆ์„
<?php ... ?> ํ•˜์ง€๋งŒ HTML IntelliSense๋ฅผ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค $string="..." ๊ฐ™์€ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” PHP ๊ฐœ๋ฐœ์ž๊ฐ€ ์ข…์ข… ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
<?php
$something="test";
echo "<div><a href="http://sample.com">This is a ".$something."</a></div>";
$continue = "coding here ... etc";
?>
.. PHP ํƒœ๊ทธ๋ฅผ ์—ด๊ณ  ๋‹ซ๋Š” ๋ธ”๋ก์„ ํ•ญ์ƒ ํ”ผํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•˜์‹ญ์‹œ์˜ค.
<?php
$something="test"; ?>
<div>
<a href="http://sample.com">This is a <?php echo $something; ?></a>
</div>
<?php
$continue = "coding here ... etc";
?>

๋˜ํ•œ @egamma ๋Š” ๊ฐ์‚ฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ฒŒ์œผ๋ฅธ ์†Œ๋ฆฌ๋ฅผํ•˜๋ ค๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์šฐ๋ฆฌ ์ค‘ ํ•œ ๋ช…์ด ์Šค์Šค๋กœ ์ฝ”๋”ฉ ํ•  ์ˆ˜์žˆ์„๋งŒํผ ์œ ๋Šฅํ•˜๊ณ  ์ง€์‹์ด ํ’๋ถ€ํ•˜๋‹ค๋ฉด ์ž˜๋‚œ ์ฒ™ํ•˜๋Š” ๋Œ“๊ธ€๋„๋ณ„๋กœ ๋„์›€์ด๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„-๋‚˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค :-/ ๊ทธ๋Ÿฌ๋‚˜ ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๊ธฐ๋ปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค (๋‹จ์ง€ ์ œ์•ˆ์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ŠคํŠธ ๋“ฑ์œผ๋กœ).

์ด ๊ธฐ๋Šฅ์ด ์กด์žฌํ•ด์•ผํ•œ๋‹ค๋Š” ํ•ฉ์˜๊ฐ€ ์žˆ๊ณ ,์ด ๊ธฐ๋Šฅ์ด์—†๋Š” ํ˜„์žฌ PHP ์ง€์›์€ ๋Œ€๋ถ€๋ถ„์˜ PHP ๊ฐœ๋ฐœ์ž๋ฅผ์œ„ํ•œ ๋ถ€๋ถ„์ ์ธ ์ง€์› ์ผ๋ฟ์ž…๋‹ˆ๋‹ค.

์ถ”์‹  ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋น„ํ‰๊ฐ€๋กœ ๋“ค๋ฆฌ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ €๋Š” ์ง€๊ธˆ๊นŒ์ง€ VS Code๋ฅผ ์ •๋ง ์ข‹์•„ํ•˜๋ฉฐ์ด ๋ฉ‹์ง„ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ๊ณ„์† ๊ธฐ์—ฌํ•ด ์ฃผ์‹  ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ€์žฅ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

ํŽธ์ง‘ํ•˜๋‹ค:
๋‹จ์ˆœํžˆ ํ•˜๋‚˜์˜ .ts ํŒŒ์ผ์„ ๋‹ค๋ฅธ ์ž‘์—…์— ํฌํ•จ / ์ฐธ์กฐํ• ๊นŒ์š”?
์˜ˆ : /languages/php/common/php.ts
ํฌํ•จ : /languages/html/common/html.ts
ํฌํ•จ : /languages/css/common/css.ts
ํฌํ•จ: ...

ํƒœ๊ทธ / ์†์„ฑ / ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์ด์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ์•„๋ฌด ๊ฒƒ๋„ ๋– ์˜ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. IntelliSense์˜ ๊ฒฝ์šฐ ์•„์ด์ฝ˜์ด ์„œ๋กœ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ์ƒ‰์ƒ ์ฝ”๋”ฉ ๋งŒ ์—‰๋ง์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ... ๋‚ด๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์ด ์ถ”๊ฐ€๋˜์ง€ ์•Š์œผ๋ฉด ํŽธ์ง‘๊ธฐ๋ฅผ ์ „ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ 2 ๋ช…์˜ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

PHP๋กœ ์ž‘์—… ํ•  ๋•Œ HTML IntelliSense๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ?

์ด ์˜ต์…˜์€ XML / HTML ํƒœ๊ทธ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€์ˆ˜๋ฅผ ํƒญํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•…๋ชฝ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚ด PHP ์ฝ”๋“œ๋ฅผ HTML๊ณผ ํ˜ผํ•ฉํ•˜์ง€ ์•Š์œผ๋ฉฐ,์ด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ PHP "๋ชจ๋“œ"์—์„œ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

PHP์˜ ๊ฒฝ์šฐ ํฌ๋ ˆ์ธ intellisense https://marketplace.visualstudio.com/items?itemName=HvyIndustries.crane

@TheColorRed Crane Intellisense์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” VS Code PHP ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋ฌธ์ œ๋ฅผ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋„ HTML์˜ CSS / JS์— ๋Œ€ํ•œ ์ž๋™ ์™„์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋‚˜์ฝ”๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์‹ค์ œ ์˜ต์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค. :-)

๋ฐฉ๊ธˆ vscode๋ฅผ ์‹œ๋„ํ–ˆ์ง€๋งŒ์ด ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด์ด IDE๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๋ชจ๋“  IDE์— ๋Œ€ํ•œ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด๋ฏ€๋กœ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.
๋ฏธ๋ฆฌ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งค์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. html ํŒŒ์ผ์— php ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ฑฐ๋‚˜ php ํŒŒ์ผ์— html์„ ๋„ฃ์„ ๋•Œ ์ ์ ˆํ•œ ์ •๋ณด๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์—„์ฒญ๋‚˜๊ฒŒ ์„ฑ๊ฐ€์‹  ์ผ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋†“์นœ ํ•œ ๊ฐ€์ง€ ํฐ ๊ธฐ๋Šฅ์€ ๋‚˜์™€ ๋™๋ฃŒ๊ฐ€ vsCode๋ฅผ ์ฃผ ํŽธ์ง‘๊ธฐ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ ์—†์ด๋Š” ๋‚˜์—๊ฒŒ ๊ฑฐ๋ž˜ ํ‚ฌ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ถ€๋„๋Ÿฌ์šด ์ผ์ž…๋‹ˆ๋‹ค ... ์ •๋ง, ์ •๋ง, ์ •๋ง์ด IDE๋ฅผ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋” ํ•ด์ง€๋ฉด ๋„ˆ๋ฌด ๊ธฐ๋ป์š”.

@egamma ์ˆ˜์ •ํ•˜๋ ค๋Š” ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š” ๋ฐ ๋ถˆํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ์†Œ๋น„ ํ•œ ํ›„ PR์„ ์ œ์ถœํ•  ์ˆ˜์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.

@TechnikEmpire ํฐ 11 ์›” VS ์ฝ”๋“œ ๋ฆด๋ฆฌ์Šค์—์„œ ๋ณต๊ตฌํ•˜๋Š” ๋™์•ˆ 2015 ๋…„ 12 ์›”์— ์ž‘์„ฑํ•œ ๋Œ“๊ธ€์„ ๋„ˆ๋ฌด ๋งŽ์ด ์ฝ์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ์˜๊ฒฌ์ด ๋น„๊ผฌ๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜์˜ค๋ฉด ์‚ฌ๊ณผ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Intellisense for PHP์™€ ๊ด€๋ จํ•˜์—ฌ ์ข‹์€ ์ง„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด @felixfbecker ๊ฐ€ ์ž‘์—…ํ•˜๊ณ ์žˆ๋Š” php-language-server ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์„ ์‚ดํŽด๋ณผ ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. Felix๋Š” php-debugger ์˜ ์ €์ž์ด๊ธฐ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ด€๋ จ ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

์–ธ์–ด ์„œ๋ฒ„ ์ ‘๊ทผ ๋ฐฉ์‹ ๋ฐ ์–ธ์–ด ์„œ๋ฒ„ ํ”„๋กœํ† ์ฝœ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@egamma ํ•˜์ง€๋งŒ PHP ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ VS Code์˜ HTML ์–ธ์–ด ์„œ๋ฒ„์— "์œ„์ž„"ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? https://github.com/Microsoft/vscode/issues/1751 ์ด ์ด๊ฒƒ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

@felixfbecker ์ด์ œ HTML ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ์กฐ์‚ฌํ•˜๋ ค๋Š” ์ฒซ ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” CSS ์–ธ์–ด ์„œ๋ฒ„์™€ ํ†ตํ•ฉํ•˜์—ฌ CSS ์„น์…˜์—์„œ Intellisense๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ # 1751์—์„œ ์–ธ๊ธ‰ ํ•œ ์ฒซ ๋ฒˆ์งธ ์‹œ๋‚˜๋ฆฌ์˜ค์— ํ•ด๋‹นํ•˜๋ฉฐ # 8928์—์„œ๋„ ์š”์ฒญ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์ž‘์—…์€ 9 ์›”์ด ์•„๋‹ˆ์—ˆ๊ณ  ์ง€๊ธˆ์€ 10 ์›”๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ! HTML ์ž‘์—… ๋‚ด CSS ์ง€์›์€ 10 ์›”๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. JS ์ผ๋ช… <script> ์ง€์›์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

@egamma ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด๋‚˜ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ? 10 ์›” ์ค‘์ˆœ์ด ์ง€๋‚˜์„œ ๋‹ค์‹œ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ 5 ๊ฐœ์›”์ด ์ง€๋‚œ ํ›„์—๋„์ด ๋ฌธ์ œ๋กœ ์ธํ•ด VS Code๋ฅผ ๊ธฐ๋ณธ ํŽธ์ง‘๊ธฐ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์žˆ์œผ๋ฉฐ ์ˆ˜๋ฐฑ ๋ช…์˜ ์กฐ์šฉํ•œ ์˜ํ˜ผ์ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. HTML / CSS ๋ฏน์‹ฑ์— ๋Œ€ํ•œ ์ž‘์—…์ด์žˆ์–ด โ€‹โ€‹๊ธฐ์ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์™„์ „ํ•œ HTML + CSS + JS + PHP ์ง€์›์ด ์ •๋ง๋กœ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค ...

@luxzg 10 ์›” ๊ณ„ํš์— ๋”ฐ๋ฅธ HTML + CSS ์ง„ํ–‰, HTML + CSS + JS๋Š” ์ŠคํŠธ๋ ˆ์น˜์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค : https://github.com/Microsoft/vscode/projects/2

๋‚˜์—๊ฒŒ์ด ๊ธฐ๋Šฅ์„ ํŽธ์ง‘ํ•˜๋Š” ์ผ์ข…์˜ devops ํŒŒ์ผ์˜ powershell ์ธ๋ผ์ด๋„ˆ๋„ ๋งŽ์€ ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. ์ปค์„œ๊ฐ€ ์ผ๋ถ€ ์ฝ”๋“œ ๋ธ”๋ก์—์žˆ์„ ๋•Œ ํŠนํžˆ ์ž๋™์œผ๋กœ ๊ตฌ๋ฌธ์ด ๋ณ€๊ฒฝ๋œ ํ™•์žฅ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

FWIW "HTML Snippets" ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ•จ๊ป˜ PHP Intellisense๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@matthewringer ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๊ฑด ๋‚˜์—๊ฒŒ๋„ ๋ฌธ์ œ ๋‹ค .. ์•„์ง ์•„๋ฌด๋Ÿฐ ์›€์ง์ž„์ด ์—†๋‚˜?

์ด๊ฒƒ์ด ๊ณง ์ถ”๊ฐ€๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์—†์œผ๋ฉด ์–ด๋–ค PHP ๊ฐœ๋ฐœ์ž๋„ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Sublime์€ ๋˜ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ๋‚˜์˜๋‹ค (TM). ๋‚ด ์˜ํ˜ผ์„ ๊ตฌํ•˜๊ณ  HTML CSS ๋ฐ JS ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‚˜๋ฅผ ์‚ฌ๋ž‘ํ•œ๋‹ค๋ฉด VSCode.

1 ๋…„์ด ์ง€๋‚ฌ์ง€ ๋งŒ ์—ฌ์ „ํžˆ ์ด์— ๋Œ€ํ•œ ์ง€์›์ด ์—†์Šต๋‹ˆ๊นŒ? ์ •๋ง? ... ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ ์ €๋Š” MS๊ฐ€ ๋งˆ์นจ๋‚ด ์“ฐ๋ ˆ๊ธฐ๊ฐ€ ์•„๋‹Œ ์ œํ’ˆ์„ ๋งŒ๋“ค์—ˆ๋‹ค ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚˜์—๊ฒŒ์žˆ์–ด PHPStorm์„ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ, ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๋‹ค๋ฅธ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ์ข‹์Šต๋‹ˆ๋‹ค. HTML, CSS, Javascript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ PHP์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ์ธํ…”๋ฆฌ์ „์Šค / ๊ตฌ๋ฌธ ๊ฐ•์กฐ ์ง€์›์„ ๋งˆ์นจ๋‚ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งˆ์นจ๋‚ด ์ •๋ง ํ›Œ๋ฅญํ•œ ๊ฒฝ๋Ÿ‰ PHP ํŽธ์ง‘๊ธฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTML, CSS ๋˜๋Š” ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์–ด๋””์—์„œ๋‚˜ PHP ์™„์„ฑ์„ ์–ป๋Š” ๊ฒƒ์€ ์ง€๊ธˆ ๋‹น์žฅ ์„ฑ๊ฐ€์‹  ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ž๋™ ์™„์„ฑ์—†์ด ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

.php ํŒŒ์ผ์„ HTML๋กœ ๋ถ„๋ฅ˜ ํ•œ ๋‹ค์Œ <?php ?> ํƒœ๊ทธ ์•ˆ์—์žˆ๋Š” ๊ฒƒ๋งŒ PHP ์ฝ”๋“œ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜์—๊ฒŒ์„œ +1, ์„ž์–ด์ฃผ์„ธ์š” :)

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๋Š” ๋™์•ˆ VScode๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ์†๋„, ๊ด‘ํƒ ๋ฐ ์œ ์šฉ์„ฑ์„ ์ข‹์•„ํ•˜๋Š” ๋งˆ๋ฒ• ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์ •๋ง ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์˜ค๋Š˜์€ ๊ทธ๊ฒƒ์ด HTML ํƒœ๊ทธ๋ฅผ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋งค์šฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” PHP ํŒŒ์ผ (PHP ํƒœ๊ทธ ๋‚ด ๋˜๋Š”์—†์ด) ๋‚ด์—์„œ HTML์„ ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. ์ด์ƒ์ ์ด์ง€ ์•Š์€ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ๋กœ ์ „ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ์œผ๋กœ ์ง์ ‘ ์ถ”๊ฐ€ / ์ˆ˜์ •์„ ์‹œ๋„ ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ Microsoft ์ง์›์ด ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ •๊ธฐ์ ์œผ๋กœ PHP ํŒŒ์ผ์— HTML, Javascript, CSS ๋ฐ SQL ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์‚ฌ์†Œํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ ์—์„œ์ฒ˜๋Ÿผ ๋ชจ๋‘ ๊ฐ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๊ฒฝํ—˜์„ ์ฆ๊ฒ๊ฒŒ ๋งŒ๋“ค๊ธฐ ๋•Œ๋ฌธ์— VScode๋ฅผ ๋ชจ๋‘ ํ•จ๊ป˜ ๋‘๋Š” ๊ฒƒ์„ ์ •๋ง ์‹ซ์–ดํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@egamma @aeschli ์ด ๋ฌธ์ œ๋Š” ๊ฝค ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์–ด ์™”์Šต๋‹ˆ๋‹ค. HTML ๋ฐ CSS ์–ธ์–ด ์„œ๋ฒ„๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋๋‚ฌ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด ๊ท€๊ฒฐ๋˜๋Š” ๊ฒƒ์€ ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ ๋ชจ๋“  ์–ธ์–ด ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ์–ธ์–ด ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผํ•˜๋Š” ๋ฌธ์„œ์—์„œ ํŠน์ • ๋ฒ”์œ„๋ฅผ ์ •์˜ ํ•  ์ˆ˜์žˆ๋Š” ๋Šฅ๋ ฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ PHP LS๋Š” ๋ฌธ์„œ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ ํ•œ ํ›„ ์–ด๋–ค ๋ฒ”์œ„๊ฐ€ HTML์ธ์ง€ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ๊ณ , HTML LS๋Š” ์–ด๋–ค ๋ถ€๋ถ„์ด JS ๋˜๋Š” CSS์ธ์ง€ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, TS / JS LS๋Š” ์–ด๋–ค ๋ถ€๋ถ„์ด SQL ๋˜๋Š” GraphQL์ธ์ง€ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@felixfbecker ์˜ˆ์ด ์ง€์›์€ ๋ช‡ ๊ฐ€์ง€ ์ด์ •ํ‘œ ์ดํ›„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

image

html ์–ธ์–ด ์„œ๋ฒ„๋Š” ์—ฌ๊ธฐ https://github.com/Microsoft/vscode-html-languageservice ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

์ ‘๊ทผ ๋ฐฉ์‹์€ vue ์–ธ์–ด ์ง€์› https://github.com/octref/vetur๋ฅผ ์œ„ํ•ด mimiked๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

// fyi @aeschli

@egamma ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์™„์„ฑ์„ ๋‹ค๋ฅธ ์–ธ์–ด ์„œ๋ฒ„๋กœ ๋„˜๊ธธ๊นŒ์š”? ์ด๊ฒƒ์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” ์ด๊ฒƒ์ด LSP ํ™•์žฅ์„ ์ทจํ–ˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—๋‘๊ณ 

@felixfbecker ํ˜„์žฌ ์ฝ”๋“œ ์™ธ์—๋Š” ๋‹ค๋ฅธ ๋ฌธ์„œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. PHP์— ๋Œ€ํ•œ์ด ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ•  ๋•Œ ์‹ฌ์ธต ๋ถ„์„์„ ์œ„ํ•ด

์•ˆ๋…•ํ•˜์„ธ์š”.

์•„์ง ์–ธ์–ด ์ฃผ์ž…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ผ๋ฐ˜ํ™” ๋œ ๋ฐฉ๋ฒ•์ด์—†๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ html ํ™•์žฅ์˜ ๊ตฌํ˜„์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

์ด์ œ๋Š” ์ข‹์€ ์ค‘๊ฐ„ ์ง€์ ์— ๋„๋‹ฌํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. VSCode๋Š” ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด ์ง€์› ๊ตฌํ˜„์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด html / css LS ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ•œํŽธ ์œ ์—ฐ์„ฑ์„ ์œ ์ง€ํ•˜๋ฏ€๋กœ ๊ฐ LS๊ฐ€ ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋ฐ˜์‘ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ๋งฅ์— ๋”ฐ๋ผ html ํ™•์žฅ์€ jquery๊ฐ€ ํฌํ•จ ๋œ ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ ๋œ ๊ฒฝ์šฐ (vue์— ์ ์šฉ๋˜์ง€ ์•Š์Œ) jquery.d.ts๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ vue ํ™•์žฅ์ด ๊ฐ .vue ํŒŒ์ผ์„ ๋ชจ๋“ˆ ํ™•์ธ์„ ์ˆ˜ํ–‰ ํ•  ๊ตฌ์„ฑ ์š”์†Œ๋กœ ํ‘œ์‹œ ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. html์— ์ ์šฉ).

@aeschli ๋ฅผ ์ธ์šฉํ•˜๋ ค๋ฉด : https://github.com/Microsoft/vscode/issues/12354#issuecomment -257242426

์ž„๋ฒ ๋””๋“œ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์„ ๋‚ด ๋†“์•„์•ผํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žˆ์ง€๋งŒ, ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์œ„ํ•ด ๋ชจ๋“  ํ˜ธ์ŠคํŠธ ์–ธ์–ด๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์—๋Š” ๋ฏธ๋ฌ˜ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด ์ง€์›์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์„œ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด vue ํ™•์žฅ์˜ ๋ชจ๋“  ์ฃผ์š” ๊ธฐ๋Šฅ์„ ์™„๋ฃŒํ•˜๋ฉด ์•ฝ๊ฐ„์˜ ๊ธ€์„ ์“ธ ๊ฒƒ ๊ฐ™์•„์š”.

์ด๊ฒƒ์€ ๋งค์šฐ ๋ถˆํ–‰ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ LSP์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ์–ธ์–ด ์„œ๋ฒ„๋Š” ๋ฌธ์„œ๋ฅผ AST๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์–ธ์–ด โ€‹โ€‹์„œ๋ฒ„ ๋งŒ์ด ๋ฌธ์„œ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜๊ณ  ์ „๋‹ฌ๋˜์–ด์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ํ™•์žฅ _also_๊ฐ€ ๋ฌธ์„œ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ํŒŒ์„œ๊ฐ€ Node (PHP, Java, ...)์™€ ๋‹ค๋ฅธ ๋Ÿฐํƒ€์ž„์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์„ LSP์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šธ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„œ๋ฒ„๋Š” ๋ฒ”์œ„ + ์–ธ์–ด ๋ชจ๋“œ์˜ ๋ฐฐ์—ด๋กœ URI์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ค ํŽธ์ง‘๊ธฐ (VS Code๋ฟ๋งŒ ์•„๋‹ˆ๋ผ)๋„ ํ•ด๋‹น ๋ฒ”์œ„์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@egamma ์ €์žฅ์†Œ์—์„œ ์–ธ์–ด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋” ๊ตฌ์ฒด์ ์ธ ํฌ์ธํ„ฐ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ฐ„๊ณผํ–ˆ๋‹ค๋ฉด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@felixfbecker Erich๋Š” ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด ์„œ๋น„์Šค์˜ ์ž„๋ฒ ๋”ฉ์€ _the server_ ๋‚ด๋ถ€์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด html ์„œ๋ฒ„์˜ ์ข…์†์„ฑ ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„๋Š” ๋…๋ฆฝ์ ์ด๊ณ  ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค (JavaScript ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ž„๋ฒ ๋””๋“œ ์ปจํ…์ธ , ์–ธ์–ด ๋ฒ„์ „ (ES5, ES6 ..)์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ).

์—ฌ๊ธฐ์—์„œ ์—ฌ๋Ÿฌ๋ถ„์ด ์„ค๋ช…ํ•˜๋Š” ์†”๋ฃจ์…˜ (์–ธ์–ด ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ )์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด ์„œ๋ฒ„ ํŠน์ • API ๋ฐ ์„œ๋ฒ„ ๊ฐ„์˜ ์ข…์†์„ฑ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์šฐ๋ฆฌ๋Š” ๊ฒฐํ•ฉ์„ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์–ธ์–ด ํ™•์žฅ์„ ๊ต์ฒด ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ๋ชจ๋“  ์–ธ์–ด ์„œ๋ฒ„๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ง€์ • LS ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ 11 ์›” ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ตฌํ˜„ ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ๋Š” ํด๋ผ์ด์–ธํŠธ ์—๊ฒŒ ํฌํ•จ ๋œ ์–ธ์–ด ์ฝ˜ํ…์ธ  ๋งŒ ํฌํ•จ ๋œ ๊ฐ€์ƒ ๋ฌธ์„œ ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค๋ฅธ ํ™•์žฅ์„ ์š”์ฒญํ•˜๋Š” ์š”์ฒญ์„ ๋‹ค์‹œ ๋ณด๋ƒ…๋‹ˆ๋‹ค .

ํ† ๋ก ์„ ๊ณ„์†ํ•˜๋Š” ๊ฒƒ์€ ๋ณ„๋„์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. LSP๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ œ์•ˆ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ๊ธฐ๋„ ์šธ๋ฆฌ ๋„ค์š”. ์ง€๊ธˆ๊นŒ์ง€ VS Code๋ฅผ ์ข‹์•„ํ–ˆ์ง€๋งŒ, PHP ๋‚ด๋ถ€์— HTML ํƒœ๊ทธ ๊ฒฝ์Ÿ์ด ์—†๋‹ค๋Š” ๊ฒƒ์€ ์ง„์ •ํ•œ ์˜๋ฏธ์˜ ํŒŒ๊ดด์ž์ž…๋‹ˆ๋‹ค. ์ผ์‹œ์ ์œผ๋กœ PHP ํŒŒ์ผ์˜ HTML ์–ธ์–ด ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์žˆ์ง€๋งŒ ๊ฒฐ๊ตญ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ธฐ ์ „๊นŒ์ง€ VSCode์™€ ์‚ฌ๋ž‘์— ๋น ์กŒ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ์ˆญ๊ณ ํ•œ ์ƒํƒœ๋กœ ๋Œ์•„ ์™”์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด VSCode๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ ˆ์‹คํžˆ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. +99999

๋‹ค๋ฅธ ๋ชจ๋“  ํŽธ์ง‘๊ธฐ์— ์กด์žฌํ•˜๋Š” ๊ธฐ๋ณธ ๊ธฐ๋Šฅ : |

์–ธ ํŒ”๋กœ์šฐ

์˜ˆ์ƒ ํ•  ์ˆ˜์žˆ๋Š”์‹œ๊ธฐ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ๋งˆ์Œ ์†์˜ ์ด๊ฒƒ์€ # 765์™€ ์ง์ ‘ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

: +1 : ์ข‹์€ ํŽธ์ง‘๊ธฐ์ด๊ณ  ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค :(

์ด๊ฒƒ์ด ์™„์ „ํžˆ ๋‹ซํžˆ์ง€ ์•Š์•˜๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” ์ž ์žฌ์ ์œผ๋กœ ๊ณ ์ณ์งˆ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๋ ‡๊ฒŒ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅผ์ˆ˜๋ก ์ข‹์Šต๋‹ˆ๋‹ค.

Atom์—์„œ VSCode๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์œ ์ผํ•œ ๊ฒƒ์€์ด ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ํ’€ ์Šคํƒ ์›น PHP / HTML / JS์— ๋Œ€ํ•œ ๋Œ€์ฒด ํŽธ์ง‘๊ธฐ๋ฅผ ์ œ์•ˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? VSCode๋ฅผ ์ •๋ง ์ข‹์•„ํ•˜์ง€๋งŒ,์ด ๊ธฐ๋Šฅ์˜ ๋ถ€์กฑ์€ ์ €์—๊ฒŒ์žˆ์–ด ์ฐจ๋‹จ๊ธฐ ์ผ๋ฟ์ž…๋‹ˆ๋‹ค. PHPStorm ๋˜๋Š” WebStorm์ด ์ข‹์€๊ฐ€์š”?

PHP IntelliSense์˜ ์œ ์ง€ ๊ด€๋ฆฌ์ž ์ธ์ด ์Šค๋ ˆ๋“œ๋Š” ๊ตฌ๋…ํ•˜๊ธฐ์—๋Š” ์•…๋ชฝ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ +1ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ข‹์•„์š”๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ์ด ๋ชจ๋“  +1 ๋Œ“๊ธ€์€ ํ† ๋ก ์— ๊ฐ€์น˜๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ์•Œ๋ฆผ์œผ๋กœ ์Šค๋ ˆ๋“œ์™€ ์ŠคํŒธ ๊ด€๋ฆฌ์ž๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์—๊ฒŒ "์ด๊ฒƒ์€ ์ •๋ง ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•œ๋‹ค๋ฉด ์ž์œ ๋กญ๊ฒŒ ํ™๋ณดํ•˜์‹ญ์‹œ์˜ค.

@felixfbecker ๋‚˜๋Š”

์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๋“  ์•„๋‹ˆ๋“  ์ด๊ฒƒ์€ 2017 ๋…„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ˆ˜์ •์œผ๋กœ ์„น์…˜์— ์ฃผ์„์ด๋‚˜ ๋‹ค๋ฅธ ํ‚ค์›Œ๋“œ๋ฅผ ํƒœ๊ทธํ•˜์—ฌ ์›ํ•˜๋Š” ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub ์ฝ”๋“œ ๋ธ”๋ก์˜ ์ผ, ํ…์ŠคํŠธ ์„น์…˜์„ ํƒœ๊ทธ๋กœ ๋ž˜ํ•‘ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์ง•์ง• ๊ฑฐ๋ฆฌ๋Š” ์†Œ๋ฆฌ๋ฅผ ๋“ฃ๋Š” ๊ฒƒ์ด ์•ฝ๊ฐ„ ์งœ์ฆ๋‚˜ ๊ธดํ•˜์ง€๋งŒ
์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ฐจ์ž„์œผ๋กœ ๋“ค์œผ์‹œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ๊ฒƒ์ด ์˜คํ”ˆ ์†Œ์Šค์ธ์ง€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์†Œ๋น„์ž์—๊ฒŒ ์ œํ’ˆ์„ ์ œ๊ณตํ•˜๊ณ , ๊ทธ๊ฒƒ์ด ์ข‹์ง€ ์•Š์„ ๋•Œ ์‚ฌ๋žŒ๋“ค์€
๋ถˆํ‰. ๋‚ด ์ž๋™์ฐจ ๋”œ๋Ÿฌ๊ฐ€ ์—ฐ๊ฐ„ ์„œ๋น„์Šค๋กœ ๋ฌด๋ฃŒ ์„ธ์ฐจ๋ฅผ ํ•  ๋•Œ
์ตœ์ € ์ž„๊ธˆ ์ž๋™์ฐจ ์„ธํƒ๊ธฐ๊ฐ€ ๋‚ด ์ฐจ ์ „์ฒด์— ์ค„๋ฌด๋Šฌ๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.
๋ถˆํ‰ํ•˜๊ธฐ.

๋ฌด๋ฃŒ์ด๋“  ์•„๋‹ˆ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํˆฌ์žํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
์ƒˆ ํŽธ์ง‘๊ธฐ๋กœ ์›Œํฌ ํ”Œ๋กœ์šฐ. ์‚ฌ๋žŒ๋“ค์€ ์ด๊ฒƒ์„ ์•Œ์•„ ๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋งŒ ์ด๊ฒƒ์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋“ค์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ๋ฉ”๋ชจ์žฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€
๋ถ€์ •์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋“ฃ๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด ๊ตฌ๋…์„ ์ทจ์†Œํ•˜์ง€๋งŒ
Microsoft๊ฐ€ ์ด๋Ÿฌํ•œ ๋ถˆ๋งŒ์„ ๋“ฃ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ๊ทธ๋“ค์€
์ด ์ œํ’ˆ์„ ์ƒ์‚ฐํ•˜๋Š” ๋ฐ ํฌ๊ฒŒ ํˆฌ์žํ–ˆ์œผ๋ฉฐ
๋ˆ์„ ๋ฐ›๊ณ  ๋Œ์•„ ์˜ค๋‚˜์š”? ์ €์ฃผ ํ•  ์ด์œ ๊ฐ€ ํ•˜๋‚˜ ๋”์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์€
์ง€๋ถˆ ํ•œ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๊ด€ํ•œ ํ•œ, ์‚ฌ๋žŒ๋“ค์€ ์ด๋ฏธ ์ž์‹ ์˜ ์‹œ๊ฐ„์ด
์›Œํฌ ํ”Œ๋กœ์™€ ๋„๊ตฌ๋ฅผ ์ „ํ™˜ํ•˜๊ธฐ์œ„ํ•œ ํˆฌ์ž๊ฐ€ ๋‚ญ๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—
์ถ”๊ฐ€ ์‹œ๊ฐ„์„ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•  ์œ„์น˜์— ๋Œ€ํ•œ ํ†ต์ฐฐ๋ ฅ์ด ๊ฑฐ์˜ ๋˜๋Š” ์ „ํ˜€ ์—†์Œ
์ž ์žฌ์ ์œผ๋กœ ๋” ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์‹ถ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋”๋ผ๋„ ํˆฌ์ž. ์ด
์ข…์ด์— ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ฏ€๋กœ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„์— ์‹ฌ๊ฐํ•œ ๊ฒฐํ•จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š”
์šฐ๋ฆฌ๋Š” ๋ˆ„๊ตฐ๊ฐ€๋กœ๋ถ€ํ„ฐ ๋ˆ์„ ๋ฐ›๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ถ”์ธกํ•ฉ๋‹ˆ๋‹ค.
์ด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด.

2017 ๋…„ 3 ์›” 29 ์ผ ์ˆ˜์š”์ผ ์˜ค์ „ 9:37 Stephen Eckels [email protected]
์ผ๋‹ค :

์ค‘์š”ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•˜๊ฑฐ๋‚˜
์ด๊ฒƒ์€ 2017 ๋…„ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•œ ์ˆ˜์ •
์ฃผ์„์ด๋‚˜ ๋‹ค๋ฅธ ํ‚ค์›Œ๋“œ๋กœ ์„น์…˜์— ํƒœ๊ทธ๋ฅผ ์ง€์ •ํ•˜์—ฌ
์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ง€๋Šฅ. GitHub ์ฝ”๋“œ ๋ธ”๋ก์˜ ๊ฒƒ,
ํƒœ๊ทธ์˜ ํ…์ŠคํŠธ.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-290091896 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AKtty5-1B6H5kqCCq9mb8rva78_dR53Uks5rql6ZgaJpZM4Gpk-J
.

>

์ œ์‹œ ๋‹ˆ์ฝœ์Šจ

์ด ๋ชจ๋“  ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์€ PHP ์šฉ NETBEANS์˜€์Šต๋‹ˆ๋‹ค.

์˜ค๋žซ๋™์•ˆ ๋ฐ”๊พธ๊ณ  ์‹ถ์ง€ ์•Š์€ ํ›Œ๋ฅญํ•œ IDE.

@ madruga88 Netbeans๋Š” ์ตœ๊ณ ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. PHPStorm ์ €๋Š” ํ˜„์žฌ ์ตœ๊ณ ์˜ PHP ํŽธ์ง‘๊ธฐ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Jetbrains๋Š” Microsoft์˜ ์ „์ฒด ์ง€๋Šฅํ˜• ์ฝ”๋”ฉ ์ง€์›์„ ๊ฐ€์ ธ ์™€์„œ ํ›จ์”ฌ ๋” ๋‚˜์•„ ์กŒ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ VSCode๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ ์ƒ๊ฐ ๋‚˜๊ฒŒํ•˜๋Š” ์œ ์ผํ•œ IDE๋Š” ์™„๋ฃŒ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ์ง€์— ๋Œ€ํ•œ IntelliJ ์ œํ’ˆ์˜ IDE์˜€์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ VSCode์™€ PHPStorm์€ ์ผ๋ฐ˜์ ์ธ ํŽธ์ง‘ ๊ธฐ๋Šฅ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์œ ์‚ฌํ•œ ๋Š๋‚Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. VSCode๊ฐ€ ์—ด์‹ฌํžˆ ์‹คํŒจํ•˜๋Š” ์œ ์ผํ•œ ๊ณณ์€ (๊ทธ๋ฆฌ๊ณ  ์ •๋ง ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค) HTML์ด ํฌํ•จ ๋œ PHP (์ฒ˜์Œ๋ถ€ํ„ฐ ์ž‘๋™ ํ–ˆ์–ด์•ผ ํ•จ)์ž…๋‹ˆ๋‹ค.

VSCode๊ฐ€ ๋งˆ์นจ๋‚ด PHP์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก HTML์„ ํฌํ•จํ•˜๊ฒŒ๋œ๋‹ค๋ฉด PHP๋ฅผ์œ„ํ•œ ์ตœ๊ณ ์˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ (๋น„ IDE)๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ €๋Š” Sublime Text๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ ์–ด๋„ ๋‚ด๊ฐ€ HTML, CSS, Javascript ๋˜๋Š” PHP์— ๋ชจ๋‘ ๋™์ผํ•œ ํŒŒ์ผ์— ์žˆ๋Š”์ง€ ์•Œ๊ณ  ์žˆ๊ณ  ์ ์–ด๋„ ์ ์ ˆํ•œ ์™„์„ฑ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์žฌ๋ฏธ์žˆ๋Š” ๊ฒƒ์€ PHP ํŒŒ์ผ์ด ์ผ๋ฐ˜ HTML ํŒŒ์ผ๋กœ ์ฒ˜๋ฆฌ ํ•  ๋•Œ ์ˆญ๊ณ ํ•œ ํ…์ŠคํŠธ์ž…๋‹ˆ๋‹ค. VSCode๋Š” HTML ๊ตฌ๋ฌธ์— PHP ์ง€์›์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? 2 ๊ฐœ์˜ ๋ณ„๋„ ๊ตฌ๋ฌธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

@ drone540 phpstorm ์˜ ์ž˜๋ชป๋œ๋กœ๋“œ ๋ฐ ์‚ฌ์šฉ (์ฝ”๋“œ ์ž…๋ ฅ์ด ๋Š๋ฆผ) ์„ฑ๋Šฅ์œผ๋กœ ์ธํ•ด ๋ชจ๋“  linting ๋ฐ ํžŒํŒ… ๋„๊ตฌ, ํ˜•์‹ํ™” ๋ฐ ๋””๋ฒ„๊น…์ด ์™„๋ฒฝํ•˜๊ฒŒ ํฌํ•จ ๋œ netbeans๋ฅผ ์„ ํƒํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ €๋Š” Visual Studio๋ฅผ 10 ๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•ด ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  netbeans๋Š” ์™„๋ฒฝํ•œ ๊ธฐ๋Šฅ๊ณผ ๋ฉ‹์ง„ ์„ฑ๋Šฅ ๋•Œ๋ฌธ์— PHP์˜ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” vscode์—์„œ ๋น ์ง„ ์œ ์ผํ•œ ๊ฒƒ์ด html + php ๊ตฌ๋ฌธ ํ˜•์‹์ด๋ผ๋Š” ๊ฒƒ์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ PHPSTORM์ด ๋ฌด๋ฃŒ๋ผ๊ณ ํ•ด๋„ .. ์„ฑ๋Šฅ ๋•Œ๋ฌธ์— netbeans๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ง„์ง€ํ•˜๊ฒŒ ์ด๊ฒƒ์€ 2015 ๋…„ ์ดํ›„๋กœ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๊นŒ? ์ˆญ๊ณ ํ•จ์œผ๋กœ ๋Œ์•„ ๊ฐ€๊ธฐ

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์›€์ง์ด์ง€ ์•Š๋Š”์ง€ ๊ณ„์† ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€์— ๊ด€๊ณ„์—†์ด VSCode๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ฌํ•˜๊ฒŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์›€์ง์ด์ง€ ์•Š๋Š”์ง€ ๊ณ„์† ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด ์žˆ๋Š”์ง€์— ๊ด€๊ณ„์—†์ด VSCode๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ฌํ•˜๊ฒŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ง€๊ธˆ ์–ด๋–ค IDE๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@icenold ์ €๋Š” Brackets atm์œผ๋กœ ๊ฝค ๋ฉ‹์ง„ ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ๊ณ ์ˆ˜ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ์ €๋Š” Visual Studio Code๋ฅผ ์ข‹์•„ํ•˜์ง€๋งŒ์ด ๋ฌธ์ œ ๋•Œ๋ฌธ์— Sublime์œผ๋กœ ์ „ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์•„์ง ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค? ๋ชจ๋‘๊ฐ€์ด ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค!

์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜์‹ญ์‹œ์˜ค. ๊ฐœ๋ฐœ์ž ์นœ๊ตฌ๋“ค๋กœ๋ถ€ํ„ฐ VS์— ๋Œ€ํ•œ ์ข‹์€ ์†Œ์‹์„ ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜ ์•„์นจ ์ˆญ๊ณ ํ•จ์—์„œ ์ „ํ™˜ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ์ด ๊ธฐ๋Šฅ์ด ์—†์œผ๋ฉด ํ†ต๊ณผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ์ธ๋‚ดํ•ฉ์‹œ๋‹ค.

@markpanado ์›๋ž˜ ํ‹ฐ์ผ“ ๋‚ ์งœ : "2015 ๋…„ 11 ์›” 25 ์ผ"

์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ผ๋ฐ˜์ ์œผ๋กœ PHP๋ณด๋‹ค PHP์—์„œ ํ›จ์”ฌ ๋” ๋งŽ์€ HTML์„ ์ž‘์„ฑํ•˜๋ฏ€๋กœ HTML ๊ตฌ๋ฌธ์„ PHP ํŒŒ์ผ์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์„ค์ • ํŒจ๋„์—๋Š” ๋ถ„๋ช…ํ•œ ๊ฒƒ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ!

@ matt3224 ์ƒํƒœ ํ‘œ์‹œ ์ค„์˜ ์™ผ์ชฝ ํ•˜๋‹จ์—์žˆ๋Š” ์–ธ์–ด ํ‘œ์‹œ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋น ๋ฅธ ์„ ํƒ์—์„œ 'ํŒŒ์ผ ์—ฐ๊ฒฐ ๊ตฌ์„ฑ'์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

image

@egamma ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค! ๊ฐ์‚ฌ

์‚ฌ์‹ค, php๋Š” HTML์˜ javascript / css์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ HTML๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๊ณ  html ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์„ ๋ฎ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ๊ทธ๋ ‡๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ .php ํŒŒ์ผ์˜ HTML ์ง€์›์€ ๊ธฐ๋ณธ ์ œ๊ณต ๊ธฐ๋Šฅ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ VS Code์˜ ํ™•์žฅ์„ ์ข‹์•„ํ•˜์ง€๋งŒ ์—ฌ๊ธฐ์—์„œ ์–ธ๊ธ‰ ํ•œ ๋ฌธ์ œ (์ด ์Šค๋ ˆ๋“œ์˜ ๋‚ ์งœ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜๋˜์—ˆ๋Š”์ง€ ๊ณ ๋ คํ•  ๋•Œ)๋Š” ๊ฑฐ๋ž˜ ์ฐจ๋‹จ๊ธฐ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ทธ๊ฒƒ ์—†์ด๋„ ์ž‘์—…์„ ์™„๋ฃŒ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ฉ”๋ชจ์žฅ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ ์–ธ์–ด ๋„๊ตฌ์—†์ด ๊ฐˆ ์ˆ˜์žˆ์„๋งŒํผ ๋Š๋ฆฌ๊ณ  ๋Š๋ฆฌ๊ฒŒ ๋Š๊ปด์ง‘๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” vscode php ์• ํ˜ธ๊ฐ€ ์—ฌ๋Ÿฌ๋ถ„. ๋‹น์‹ ์˜ 0.7.0 ๋ฆด๋ฆฌ์Šค์— ๊ด€์‹ฌ์ด์žˆ์„ ์ˆ˜ Intelephense .

optimised

HTML ์–ธ์–ด ๋ชจ๋“œ์— ์žˆ์–ด์•ผํ•˜๊ณ  php์—์„œ๋Š” ๊ตฌ๋ฌธ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์ ์—์„œ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํฌ๋งทํŒ… (gif์—์„œ ์ž˜๋ผ ๋ƒ„)์€ 3 ๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค : html ํฌ๋งท-> php๋กœ ์ „ํ™˜-> php ํฌ๋งท.

๋ฐ”๋ผ๊ฑด๋Œ€ ์—ฌ๋Ÿฌ๋ถ„์€ ๋ชจ๋‘ ๋ทฐ์™€ ๋ชจ๋ธ์„ ๋ฉ‹์ง€๊ฒŒ ๋ถ„๋ฆฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๋‹จ์ ์€ ๊ทธ๋‹ค์ง€ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@bmewburn ๋Œ€๋ฐ• ! ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@popcorner ์ด์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ File-> Exit๋กœ ์ด๋™ํ•˜์—ฌ Netbeans๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.
์›น ๊ฐœ๋ฐœ ์• ๋“œ์˜จ ํฌํ•จ. ์šฐ์ˆ˜ํ•œ. ๋Œ€ ์ฝ”๋“œ๋Š” ๊ดœ์ฐฎ์€ ํƒ€์ดํ”„ ์Šคํฌ๋ฆฝํŠธ IDE์ด๋ฉฐ ๋ณ„๋กœ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.
๊ทธ๋ฐ–์—. ๋” ๋งŽ์€ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹ค๋งํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2017 ๋…„ 6 ์›” 24 ์ผ ํ† ์š”์ผ ์˜คํ›„ 5:02 Ben Mewburn [email protected]
์ผ๋‹ค :

@popcorner https://github.com/popcorner ์ด์ œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-310865635 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/AKtty5j9FjPOsarF3tjW9qq2JugqnYjZks5sHXlggaJpZM4Gpk-J
.

>

์ œ์‹œ ๋‹ˆ์ฝœ์Šจ

@bmewburn Intellephense๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ˆˆ์— ๋„๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. HTML ํƒœ๊ทธ ์†์„ฑ ๋‚ด๋ถ€์— ์ž…๋ ฅ ๋œ PHP ์˜ˆ (id = "") ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค. PHP ํ…Œ๋งˆ ํ˜•์‹์ด ์†์‹ค๋ฉ๋‹ˆ๋‹ค.

HTML๊ณผ PHP ์‚ฌ์ด์— ๋™์ผํ•œ ์•ž๋’ค๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ๋„ˆ๋ฌด ๋งŽ์€ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•ฉ๋‹ˆ๋‹ค.

๋ณ„๋„์˜ ๋ฉ”๋ชจ์—์„œ,์ด ์ „์ฒด ์Šค๋ ˆ๋“œ๊ฐ€ ํ•˜๋‚˜์˜ ํฐ ํŠธ๋กค์ธ์ง€ ๊ถ๊ธˆํ•ดํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. 2 ๋…„ ํ›„์—๋„ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ด ๋ฌธ์ œ๋ฅผ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋™์•ˆ ์–ด๋–ค ์ง„์ „๋„ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚˜๋„ Netbeans๋กœ ์˜ฎ๊ฒผ๋Š”๋ฐ, PHPStorm์ด ํ•˜๋‚˜์˜ ํŒŒ์ผ์—์„œ php html js๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ โ€‹โ€‹์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. SSH๋ฅผ ํ†ตํ•œ ์›๊ฒฉ DB ํ†ตํ•ฉ๋„ ๊น”๋”ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ Netbeans์™€ PHPStorm์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผํ–ˆ์Šต๋‹ˆ๋‹ค.

Netbeans๋Š” ์ด๊ฒƒ์— ๊ฝค ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Netbeans
๋‹ค์Œ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • ์™ธ๋ถ€ PHP ํŒŒ์ผ์˜ HTML / CSS / JSํƒœ๊ทธ
  • ์Šคํƒ€์ผ ์†์„ฑ์ด์žˆ๋Š” HTML ํƒœ๊ทธ์˜ CSS.
  • ๋งž์ถค๋ฒ• ์™„์„ฑ (์œ ์šฉํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋Š” ๋ชจ๋ฅด์ง€๋งŒ ๊ฑฐ๊ธฐ์— ์žˆ์Œ)

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  • ์™„์„ฑ์€ ์ž…๋ ฅ์ค‘์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์ธ์‹ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์œผ๋ฏ€๋กœ ์ฒซ ๋ฒˆ์งธ ์™„์„ฑ์€ ์›ํ•˜๋Š” ๋‚ด์šฉ์ด ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • PHP ๋ฌธ์ž์—ด์—์„œ HTML์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์—ฌ๊ธฐ์„œ ์™„์„ฑ ๋œ ๊ฒƒ์€ VScode๋งŒํผ ๋‚˜์˜๋‹ค.

PHPStorm

  • ๊ธ€์Ž„ ๊ทธ๊ฒƒ์€ ์–ด๋–ค ๋งฅ๋ฝ์—์„œ๋“  ๊ฑฐ์˜ ์ž‘๋™ํ•˜๊ณ  ์ •๋ง ์ž˜ ์ž‘๋™ํ•˜๋ฉฐ ๋ชจ๋“  ์™„์„ฑ์€ ์ •ํ™•ํ•˜๊ณ  ์‹ค์ œ๋กœ ์›ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๋ฏธํ•œ ์‹คํŒจ :

  • ์ž๋™ ์™„์„ฑ์ด ์ข…๋ฃŒ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ์‚ฌ์†Œํ•œ ๋ฌธ์ œ-ํ‚ค์Šคํƒ€์ผ ์†์„ฑ์œผ๋กœ. ctrl + ๊ณต๋ฐฑ์œผ๋กœ ๋‹ค์‹œ ์—ด๊ฑฐ ๋‚˜ CSS ์†์„ฑ์„ ๊ณ„์† ์ž…๋ ฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • HTML ํƒœ๊ทธ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ PHP ๋ฌธ์ž์—ด์—์„œ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค (์–ด์จŒ๋“  ์ง€์›ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค).

PHPStorm์€ ํ™•์‹คํžˆ VSCode (์ž‘๋™ ํ•  ๋•Œ)์— ํ›จ์”ฌ ๋” ๊ฐ€๊น๋‹ค๊ณ  ๋Š๋ผ์ง€๋งŒ Netbeans๋Š” ๊ทธ๋ ‡๊ฒŒํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์™„์„ฑ์ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด. PHPStorm์—์„œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ PHPStorm๊ณผ VSCode๋Š” ์œ ์‚ฌํ•œ ํŽธ์ง‘ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ๋ฉด์—์„œ PHPStorm์ด ๋” ๋น ๋ฅด๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์™„์„ฑ์„ ์‚ฌ์šฉํ•ด๋„ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Netbeans๋Š” ์ž๋™ ์™„์„ฑ์œผ๋กœ ์ธํ•ด ์•ฝ๊ฐ„์˜ ์ง€์—ฐ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

VSCode๊ฐ€ ์‹ค์ œ๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ๊นŒ์ง€ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆด์ง€ ๋ชจ๋ฅด์ง€๋งŒ ๋งˆ์นจ๋‚ด ์–ธ์ œ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ฏฟ์Šต๋‹ˆ๋‹ค. PHPStorm์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ํ›จ์”ฌ ๋” ๊ฐ€๊น๊ฒŒ ์ž‘๋™ ํ•  ๊ฒƒ์ด๋ฉฐ ์ ์–ด๋„ PHP ์ž๋™ ์™„์„ฑ์„์œ„ํ•œ ์ตœ๊ณ ์˜ ํŽธ์ง‘๊ธฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ตœ๊ทผ์— SublimeText์—์„œ VSCode๋กœ ์ „ํ™˜ ํ•˜์—ฌ์ด ๋ฌธ์ œ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ์„ฑ๊ฐ€์‹  ๋ฌธ์ œ์ด๋ฉฐ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ œ์ด๊ธฐ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋•Œ๋ฌธ์— SublimeText๋กœ ๋Œ์•„ ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค. PHP๋ฅผ HTML๊ณผ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ชจ๋“  PHP ์ฝ”๋“œ๊ฐ€ ํฐ์ƒ‰์ด๋˜๊ณ  ๊ตฌ๋ฌธ ๊ฐ•์กฐ๊ฐ€ ์ „ํ˜€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์„œ์šด!

10 ๋…„ ํ›„์— ๋งˆ์นจ๋‚ด ๋‚ด ์ปดํ“จํ„ฐ์— ์˜๊ตฌ์ ์œผ๋กœ ์„ค์น˜ ๋  ๋งˆ์ดํฌ๋กœ ์†Œํ”„ํŠธ ์†Œํ”„ํŠธ์›จ์–ด ํ•˜๋‚˜๋ฅผ ๊ฐ–๊ฒŒ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ 2 ๋…„ ๋™์•ˆ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์œผ๋ฉด ๋‹ค์‹œ ์“ฐ๋ ˆ๊ธฐํ†ต์— ๋ฒ„๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PHP ๋ฌธ์„œ ๋‚ด์— HTML์„ ์ž‘์„ฑํ•˜๋ฉด

screen shot 2017-07-28 at 1 32 51 pm

@ingageco ์•„๋‹ˆ์š”, ์•„๋‹™๋‹ˆ๋‹ค. @felixfbecker์˜ PHP Intellisense ํ™•์žฅ์—์„œ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™•์žฅ ๊ธฐ๋Šฅ์€ ํŠน์ˆ˜ ํ™œ์„ฑํ™” ๋ฌธ์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ•œ ๊ฐ€์ง€๋งŒ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๊นŒ (์กฐ๊ธˆ์”ฉ ์•„๊ธฐ ๊ฐœ๋ฏธ ๊ฑธ์Œ) ์•„๋‹ˆ๋ฉด ์™„์ „ํžˆ ์ œ์ณ ๋‘์—ˆ์Šต๋‹ˆ๊นŒ?

@bsienn ๋ฌด์—‡์— ๋Œ€ํ•ด? php intellisense ํ™•์žฅ์ด ์ง„ํ–‰ ์ค‘์ด์ง€๋งŒ ์ฝ”๋“œ ํŒ€์€ ์ด๊ฒƒ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๊ฒƒ์„ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@ jens1o ๋‹ต์žฅ php intellisense extension Fleix Baker ํ™•์žฅ์— ๋Œ€ํ•ด ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?
๊ทธ๋ž˜์„œ์ด ์Šค๋ ˆ๋“œ๋Š” ์ค‘๋ณต์ž…๋‹ˆ๊นŒ? ์ง€๊ธˆ ํ˜ผ๋ž€ ์Šค๋Ÿฌ์›Œ์š”. ์ง„ํ–‰์„ ์œ„ํ•ด ๊ทธ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ €์žฅ์†Œ๋ฅผ ๋”ฐ๋ผ์•ผํ•ฉ๋‹ˆ๊นŒ?

๋„ค, ์ €๋Š” Felix์˜ ํ™•์žฅ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๊ทธ์˜ ์ €์žฅ์†Œ๋ฅผ ๋”ฐ๋ผ์•ผํ•ฉ๋‹ˆ๋‹ค.

... ๊ทธ๋ž˜์„œ 2 ๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ php ํŒŒ์ผ์— html ์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ์ด์žˆ๋Š” ์†”๋ฃจ์…˜์ด ์—†์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” VS ์ฝ”๋“œ๋ฅผ ์ •๋ง ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•ด Sublime์œผ๋กœ ๋Œ์•„๊ฐˆ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค :-(

์ง€๊ธˆ ์šฐ๋ฆฌ๋Š” ์ •๋ง๋กœ ๊ทธ๊ฒƒ์„ ์ฒ˜๋ฆฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค

์•„๋‹ˆ๋ฉด ๊ฑฐ๊ธฐ์— ๋‹ค๋ฅธ ์˜ต์…˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์ด ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ํž˜๋‚ด์™€ ๋””๋ฒ„๊น…๋งŒ์œผ๋กœ๋Š” ์›Œํฌ ํ”Œ๋กœ์—์„œ ๋’ค๋กœ ๋ฌผ๋Ÿฌ๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž˜ ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ ์ ˆํ•œ ์˜ต์…˜์ด์žˆ์„ ๋•Œ๋Š” ์ ˆ๋Œ€๋กœ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•ด๊ฒฐ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฃผ๋œ ๋ฌธ์ œ๋Š” ๋ˆ„๊ฐ€ ๊ทธ๊ฒƒ์„ ์ œ๊ณต ํ•  ๊ฒƒ์ธ์ง€ ์šฐ๋ฆฌ๊ฐ€ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” PHP ํ™•์žฅ ( @felixfbecker ?)์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ HTML ์–ธ์–ด ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ชจ๋“  HTML ์Šค๋งˆํŠธ ํ•จ์€ ๋…ธ๋“œ ๋ชจ๋“ˆ ๋กœ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@aeschli ์œ„์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ชจ๋“  ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด์— ๋Œ€ํ•ด ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ํฌํ•จํ•˜๋„๋ก ์š”๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๊ณ  ์ง€์† ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PHP๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ HTML๊ณผ SQL์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. HTML์€ ์ผ๋ฐ˜์ ์œผ๋กœ CSS์™€ JS๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. JS๋Š” ๋‹ค์‹œ ์ผ๋ฐ˜์ ์œผ๋กœ HTML์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด ์„œ๋ฒ„ ์ž‘์„ฑ์ž๋Š” ๋ชจ๋“  ์ค‘์ฒฉ ๋œ ์กฐํ•ฉ์„ ์ง€์›ํ•˜๋Š” ํ† ๋ผ ๊ตฌ๋ฉ์„ ๋šซ๊ณ  ์‚ฌ์šฉ์ž๋Š” ๋™์ผํ•œ ์–ธ์–ด์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ์„ค์น˜๋œ ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ๊ฐ–๊ฒŒ๋˜์ง€๋งŒ ๋” ์ด์ƒ ์ด๋Ÿฌํ•œ ํฌํ•จ ๋œ ์–ธ์–ด์— ์‚ฌ์šฉํ•  ์–ธ์–ด ์„œ๋ฒ„ ๋‚˜ ํ•ด๋‹น ๋ฒ„์ „์„ ์ œ์–ด ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. https://github.com/Microsoft/vscode/issues/670#issuecomment -282702369 (๊ฐ•์กฐ ๋‚ด)์—์„œ ์ž์‹ ์„ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ :

์–ธ์–ด ์„œ๋ฒ„ ํŠน์ • API ๋ฐ ์„œ๋ฒ„ ๊ฐ„์˜ ์ข…์†์„ฑ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฐํ•ฉ์„ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์–ธ์–ด ํ™•์žฅ์„ ๊ต์ฒด ํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๊ฐ•๋ ฅํžˆ ๋™์˜ํ•˜๋ฉฐ, ๋‚ด ๊ด€์ ์—์„œ ์ž„๋ฒ ๋”ฉ ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‚ด ๊ฐœ์š” ์†”๋ฃจ์…˜์ด ์•„๋‹Œ ์ •ํ™•ํžˆ ๊ทธ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

  • ์–ธ์–ด ์„œ๋ฒ„์— ํฌํ•จ ๋œ ์–ธ์–ด๊ฐ€ ํฌํ•จ ๋œ ๋ฒ”์œ„๋ฅผ _client_์—๊ฒŒ ์•Œ๋ฆฌ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PHP ์–ธ์–ด ์„œ๋ฒ„๋Š” ์ธ๋ผ์ธ HTML์˜ ๋ฒ”์œ„๋ฅผ ํฌํ•จ ๋œ HTML๋กœ VS Code์—๋ณด๊ณ ํ•˜๊ณ , HTML ์–ธ์–ด ์„œ๋ฒ„๋Š” <style> ํƒœ๊ทธ์˜ ๋ฒ”์œ„๋ฅผ ํฌํ•จ ๋œ CSS๋กœ, <script> ํƒœ๊ทธ์˜ ๋ฒ”์œ„๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด VS Code์—๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ž„๋ฒ ๋””๋“œ JS.
  • ํด๋ผ์ด์–ธํŠธ (VS ์ฝ”๋“œ)๋Š” ํฌํ•จ ๋œ ์–ธ์–ด์— ํ•„์š”ํ•œ ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ฐ€์ƒ URI ๋ฐ ํฌํ•จ ๋œ ๋ฒ”์œ„์˜ ์ฝ˜ํ…์ธ ์™€ ํ•จ๊ป˜ didOpen ์•Œ๋ฆผ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ํฌํ•จ ๋œ ์–ธ์–ด ๋ฒ”์œ„ ๋‚ด์—์„œ ์ž๋™ ์™„์„ฑ์„ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ์š”์ฒญ์„ ํฌํ•จ ๋œ ์–ธ์–ด์— ๋Œ€ํ•œ ์–ธ์–ด ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค (ํฌํ•จ ๋œ ๋ฒ”์œ„์˜ ์‹œ์ž‘์— ์ƒ๋Œ€์ ์ธ ์œ„์น˜).
  • ํ•„์š”์— ๋”ฐ๋ผ ํฌํ•จ ๋œ ๋ฒ”์œ„์˜ ์‹œ์ž‘์„ ๊ธฐ์ค€์œผ๋กœ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์–ธ์–ด ์„œ๋ฒ„ ( ๊ต์ฒด ๊ฐ€๋Šฅ )๋ฅผ ์™„์ „ํžˆ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐœ๋ณ„ ์„œ๋ฒ„๋Š” ๋‹ค๋ฅธ ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ์ข…์†์„ฑ ์œผ๋กœ ํฌํ•จํ•˜๋Š” ๋ฐ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด์™€ ์ตœ์ƒ์œ„ ์–ธ์–ด ๊ฐ„์˜ ์ผ๊ด€๋œ ๊ฒฝํ—˜์„ ์˜๋ฏธํ•˜๋ฉฐ ๋ชจ๋“  ์–ธ์–ด ์„œ๋ฒ„์— ๋Œ€ํ•œ SoC๋ฅผ ์œ ์ง€ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์–ธ์–ด ๋งŒ ๊ด€๋ฆฌํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

์•Œ๋ฆผ์€ ๋Œ€๋žต ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/** Parameters for textDocument/publishEmbeddedScripts, a notification sent from server to the client */
interface PublishEmbeddedScriptsParams extends TextDocumentIdentifier {
  /** All the embedded scripts for this text document */
  embeddedScripts: EmbeddedScript[]
}
interface EmbeddedScript {
  /** Ranges in the text document that form this continuous embedded script */
  ranges: Range[]
  /** The language ID for that script (as also used in MarkedString) */
  languageId: string
}

์˜ˆ:

๋‹ค์Œ๊ณผ ๊ฐ™์€ PHP ๋ฌธ์„œ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

<h1>Foo</h1>
<?php echo 'Hello' ?>
<p>Bar</p>

PHP langserver๊ฐ€ VS Code๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

{
  embeddedScripts: [{
    languageId: 'html',
    ranges: [
      { start: { line: 0, column: 0 }, end: { line: 0, column: 11 }}
      { start: { line: 2, column: 0 }, end: { line: 2, column: 9 }}
    ]
  }]
}

๊ทธ๋Ÿฌ๋ฉด HTML langserver๊ฐ€ file:///foo.php#embedded1 ์™€ ๊ฐ™์€ URI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VS Code์—์„œ textDocument/didOpen ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ๋‹ค์Œ ๋‚ด์šฉ์„ ๋ฐ›๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

<h1>Foo</h1>
<p>Bar</p>

์›ํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ„๋„์˜ ๋ฌธ์ œ์—์„œ์ด ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•˜๊ฒŒ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค.

@aeschli ๋‚˜๋Š”์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ์—ด๋ ค ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์–ธ์–ด ์„œ๋ฒ„ ๋ฌธ์ œ๋กœ ๊ณ„์† ๋ฐ˜์†ก๋˜๊ณ  ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ๊ฒฐ์ฝ” ๊ณ ์ณ์ง€์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@felixfbecker ์•„๋ฌด๋„ ํฌ๋งท์˜ ๋ชจ๋“  ๋น„ํŠธ๋ฅผ ๊ฐ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ 

์•ˆ๋…•ํ•˜์„ธ์š”.

์ด ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜๋ ค๋ฉด ์–ธ์–ด ์„œ๋ฒ„์—์„œ ํŠน๋ณ„ํžˆ ํŽธ์ง‘ํ•ด์•ผํ•˜๋Š” ํŒŒ์ผ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? HTML ์šฉ ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ์‚ดํŽด ๋ณด์•˜์ง€๋งŒ ์Šคํƒ€์ผ๊ณผ ์Šคํฌ๋ฆฝํŠธ๋กœ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/parser/htmlScanner.ts ํŒŒ์ผ์— ๋”ฐ๋ผ HTML์ด ์•„๋‹Œ ๊ฒƒ์€ ํ† ํฐ ํ™”๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
https://github.com/Microsoft/vscode-html-languageservice/blob/master/src/htmlLanguageService.ts

ํ•˜์ง€๋งŒ CSS์™€ Javascript๋Š” ๋ฌด์—‡์„ํ•ด์•ผํ•˜๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์••๋‹ˆ๊นŒ? ์ด ํŒŒ์ผ์— ๋”ฐ๋ฅด๋ฉด ๊ทธ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ „ํ˜€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@aeschli PHP์™€ html ์–ธ์–ด ์„œ๋ฒ„๋Š” ๋งŽ์€ vscode ๊ธฐ๋Šฅ์ด ์—ฌ๋Ÿฌ ๊ณต๊ธ‰์ž๋ฅผ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์ด๋ฏธ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์ž˜ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๊ฑฐ์ง“์ด ์•„๋‹Œ ์ฒซ ๋ฒˆ์งธ ๊ณต๊ธ‰์ž ๊ฒฐ๊ณผ๊ฐ€ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฒฐ๊ณผ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋žซ๋™์•ˆ ๊ทธ๊ฒƒ์„ ์ดํ•ด ๋‚˜๋˜ ๊ฒƒ์„ ๊ฐ ์„œ๋ฒ„ ๋ฌด์‹œ๋กœ - ์™ธ๋ถ€ <?php ?> PHP, ๋‚ด๋ถ€์˜ HTML์— ๋Œ€ํ•œ - ๊ทธ๊ฒƒ์€ works.You ์—ฌ๊ธฐ ํ–‰๋™์—์„œ ๋ณผ ์ˆ˜ https://github.com/Microsoft/vscode / issues / 670 # issuecomment -310822851

๋” ์›ํ™œํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.

  1. ์—ฌ๋Ÿฌ ์–ธ์–ด ID ํŒŒ์ผ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜์—ฌ ๊ฐ lang ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋„๋กํ•ฉ๋‹ˆ๋‹ค.
   "files.associations": {
        "*.myphp": ["php", "html"]
    }  
  1. ๊ตฌ๋ฌธ ๊ฐ•์กฐ๋ฅผ ์œ„ํ•ด ๊ฒฐํ•ฉ ๋œ php / html / css / js ๋ฌธ๋ฒ• ํŒŒ์ผ ์‚ฌ์šฉ

์–ธ์–ด ์ž„๋ฒ ๋”ฉ์„์œ„ํ•œ ๋” ์™„๋ฒฝํ•œ ์†”๋ฃจ์…˜์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋งˆ. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๋Ÿฌ ์–ธ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒƒ์ด ํŠน์ • ์„œ๋ฒ„์˜ ์ฑ…์ž„์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํŠน์ • ์–ธ์–ด๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”์ง€ ์‹๋ณ„ํ•˜๋Š” ๊ฒƒ์ด ์„œ๋ฒ„์˜ ์ฑ…์ž„์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๋ฌธ์„œ ๋ฒ”์œ„๋ฅผ ์‹๋ณ„ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์™ธ์—๋Š” PHP์™€ HTML์ด ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@bmewburn ๊ทธ๋‹ค์ง€ ์–ด๋ ต์ง€ ์•Š๋‹ค๋ฉด ์™œ 2 ๋…„ ํ›„ ์ˆ˜์ •์„ ์œ„ํ•ด ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?
@felixfbecker ๋Š” ๊ทธ๋ ‡๊ฒŒํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€

@felixfbecker ๋‚ด ์˜๊ฒฌ ์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์—ฌ๊ธฐ์—๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ ์–ธ์–ด ์„œ๋ฒ„๋Š” ํฌํ•จ ๋œ ์ฝ˜ํ…์ธ ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ž์œ ๋กญ๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์„ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์ž์ฒด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ : ๋งํฌ ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ์„œ๋น„์Šค ์‚ฌ์šฉ. ๊ทธ๊ฒƒ์€ ๋ชจ๋‘ ์ž„๋ฒ ๋””๋“œ ์ฝ˜ํ…์ธ ์™€ ๊ธฐ๋ณธ ์–ธ์–ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด ์žˆ๊ณ  ์„œ๋ฒ„๊ฐ€ ์ œ๊ณตํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ข… ํฌํ•จ ๋œ ์ฝ˜ํ…์ธ ์—๋Š” ๊ธฐ๋ณธ ์–ธ์–ด์˜ ์ปจํ…์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์ด์Šค์ผ€์ดํ”„ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์ƒ ๋ฌธ์„œ ๋งŒ ๋ณด๋Š” ์–ธ์–ด ์„œ๋ฒ„์—๋Š” ์‰ฝ๊ฒŒ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ HTML ์„œ๋ฒ„์—์„œ ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋ฉ€์–ด์ง€๊ฒŒ ํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด PHP์— ๋Œ€ํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด๊ณ  PHP ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ HTML ์„œ๋ฒ„๊ฐ€ ์ฃผ์–ด์ง„ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒํ•ฉ์‹œ๋‹ค. API๋Š” ๋ชจ๋‘ ๊ฑฐ๊ธฐ์— ์žˆ์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ LS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‘ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .
html ์„œ๋ฒ„ ๋‚˜ ์„œ๋น„์Šค์— ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”.

@aeschli ์ด์Šค์ผ€์ดํ”„ ๊ทœ์น™์€ ์ข‹์€ ์ ์ด๋ฏ€๋กœ ๋ฒ”์œ„ ๋Œ€์‹  ์–ธ์–ด ์„œ๋ฒ„๋Š” ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์€ ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์‹œ ๋ณด๋‚ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ํ•ด๊ฒฐ ๋ ๊นŒ์š”? ์•„๋‹ˆ๋ฉด ์ œ์•ˆ์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด PHP์— ๋Œ€ํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด๊ณ  PHP ์–ธ์–ด ์„œ๋ฒ„๊ฐ€ HTML ์„œ๋ฒ„๊ฐ€ ์ฃผ์–ด์ง„ ๋ฒ”์œ„์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒํ•ฉ์‹œ๋‹ค. API๋Š” ๋ชจ๋‘ ๊ฑฐ๊ธฐ์— ์žˆ์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋ฐ ์‚ฌ์šฉ์ž ์ •์˜ LS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋‘ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

PHP ์–ธ์–ด ์„œ๋ฒ„๋Š” VS Code, sublime, neovim, atom-ide-php, Eclipse Che ๋“ฑ์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.์ด ๋ชจ๋“  ๊ฒƒ์—์„œ (๊ฒฐ๊ตญ) ์ž‘๋™ ํ•  ์ˆ˜์žˆ๋Š” ์†”๋ฃจ์…˜์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์ถ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํด๋ผ์ด์–ธํŠธ (LSP์˜ ์š”์ ์ด๋ฏ€๋กœ), ๋™์‹œ์— ํŠน์ • ๋Ÿฐํƒ€์ž„ ์š”๊ตฌ ์‚ฌํ•ญ (์˜ˆ : neovim PHP ๊ฐœ๋ฐœ์ž๋Š” PHP๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€๋งŒ ๋ฐ˜๋“œ์‹œ NodeJS๋Š” ์•„๋‹˜)๊ณผ ํ•จ๊ป˜ ํŠน์ • HTML (๋ฐ CSS, JS ...) langservers๋ฅผ ๋ฒˆ๋“ค๋งํ•˜์ง€ ์•Š๋„๋กํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด์— ์‚ฌ์šฉํ•  ์–ธ์–ด ์„œ๋ฒ„๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? LSP์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ์ฃผ์žฅ์ด ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์–ธ์–ด๋ฅผ์œ„ํ•œ ๋ณดํŽธ์  ์ธ ๋ฐฉ์‹์œผ๋กœ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋งค์šฐ ๊ธฐ์ฉ๋‹ˆ๋‹ค.

@aeschli @felixfbecker ๊ทธ๋ ‡๋‹ค๋ฉด ๋‘˜ ๋‹ค์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ ํ•  ๊ฒƒ์ž…๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์€ ๋†€๋ž์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๊ฑฐ์˜ ๋ชจ๋“  PHP ์ฝ”๋”๊ฐ€ ์ •๋ง๋กœ ํ•„์š”๋กœํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์ œ๋ฐœ, ์šฐ๋ฆฌ๊ฐ€ _ ์˜ฌ๋ฐ”๋ฅธ _ ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๊ณ ํ•ด์„œ ๋ฌด์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋น„๋…ผ๋ฆฌ์ ์ด๊ฑฐ๋‚˜ ์ถ”์•…ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ๋”๋ผ๋„ ์šฐ๋ฆฌ๊ฐ€ ๋ฏธ๋ฃจ๊ณ  ์•„๋ฌด๊ฒƒ๋„ํ•˜์ง€ ์•Š๊ณ  ์ผ์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›๋ž˜ ๋‹ค๋ฅธ ์ด์ „ ํŽธ์ง‘ ๊ธฐ์šฉ์œผ๋กœ ์ž‘์„ฑ๋œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๊ฐ€๋Šฅํ•œ ํ•œ ํ˜ธํ™˜๋˜๊ธฐ๋ฅผ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜๊ฐ‘์ด ์ฑ„์›Œ์ ธ ์žˆ๋‹ค๋ฉด ํ˜„์žฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋ณด๋‹ค ๋” ๋†’์€ ์ƒˆ๋กœ์šด ๊ต์ฐจ ํŽธ์ง‘๊ธฐ ํ‘œ์ค€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. Microsoft๊ฐ€ ์ด์ „์— ๊ฒฝ๊ณ„์—์„œ ๋ฒ—์–ด๋‚˜ ๋‹ค๋ฅธ ๊ทธ๋ฃน๊ณผ ํ˜‘๋ ฅํ•˜์—ฌ์ด ํŽธ์ง‘๊ธฐ์™€ ๋‹ค๋ฅธ ํŽธ์ง‘๊ธฐ ๋ชจ๋‘์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ์–ธ์–ด ์„œ๋ฒ„ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š์€ ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ˜ผํ•ฉ ์–ธ์–ด ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋™์ผํ•œ ์ž‘์—…์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ•˜๋ฉด๋ฉ๋‹ˆ๋‹ค.

@felixfbecker ์˜ php-intellisense ํ™•์žฅ ๋˜๋Š” ๋‚ด vscode-jinja ํ™•์žฅ๊ณผ ๊ฐ™์€ ํ˜ผํ•ฉ ์–ธ์–ด ํ™•์žฅ์ด์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ์ฐจ๋‹จ๋˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์–ธ์–ด๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ํ›Œ๋ฅญํ•˜์ง€๋งŒ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์‰ฝ๊ฒŒ ํ™•์žฅ ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒด ํŽธ์ง‘์ž์—๊ฒŒ ์ข‹์ง€ ์•Š์€ ๊ฒฝํ—˜์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ์ด ๋ฌธ์ œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ž์ฒด๊ฐ€ ์‹ค์ œ๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ๊ฐ€๋ผ๊ณ  ๋งํ•˜๊ณ ์žˆ์„ ์ •๋„๋กœ ์ถฉ๋ถ„ํžˆ ์˜ค๋ž˜ ์ง€์†๋˜์—ˆ์œผ๋ฉฐ, ์ €๋„ ๋˜‘๊ฐ™์ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@wholroyd ๋Š” ๋™์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ์ด IDE์— ๋Œ€ํ•ด ์Šฌ๋ผ์ด์Šค ๋นต ์ดํ›„ ๊ฐ€์žฅ ์ข‹์€ ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์ด์ œ๋Š” ์‚ฌ๋žŒ๋“ค์„ ์ ๊ทน์ ์œผ๋กœ ๋ฉ€์–ด์ง€๊ฒŒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ†ตํ•ฉ ํ•œ ๊ฒƒ์„ ํ›„ํšŒํ•ฉ๋‹ˆ๋‹ค.

@aeschli html ์–ธ์–ด ์„œ๋ฒ„์—์„œ ๋‹ค์Œ์„ ๊ณ ๋ ค ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

  1. phtml ๋ฅผ ์ฒญ์ทจํ•˜๊ธฐ์œ„ํ•œ ์ถ”๊ฐ€ languageId์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ php์™€ html ํ™•์žฅ์ด๋“ค์„ ์ˆ˜์žˆ๋Š” ๊ณต์œ  ID์™€ ๊ฒฐํ•ฉ ๋œ textmate ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•„์š”ํ•œ ๊ฒฝ์šฐ <\?(php|=)?> , \?> ๋‚ด์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ๋‹จ์ผ ์ž๋™ ๋‹ซ๊ธฐ ํƒœ๊ทธ๋กœ ์‚ฌ์šฉํ•˜๋„๋ก html ์–ธ์–ด ์„œ๋ฒ„ ์Šค์บ๋„ˆ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ณ„๋„์˜ php ๋ฐ html ํ™•์žฅ์˜ ๋‹ค์Œ ๊ณต๊ธ‰์ž๋Š” ์„œ๋ฒ„์— ์ž„๋ฒ ๋”ฉํ•˜๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ•ดํ‚นํ•˜์ง€ ์•Š๊ณ ๋„ ํ•จ๊ป˜ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

  • ์ฝ”๋“œ ๋ Œ์ฆˆ
  • ์ฝ”๋“œ ์•ก์…˜
  • ์™„์„ฑ
  • ์ •์˜
  • ๊ฐ€์žฅ ๋ฐ์€ ๋ถ€๋ถ„
  • ๋งํฌ
  • ๋ฌธ์„œ ๊ธฐํ˜ธ
  • ํ˜ธ๋ฒ„
  • ์ดํ–‰
  • ์ฐธ๊ณ 
  • ์„œ๋ช…
  • ์ž‘์—… ๊ณต๊ฐ„ ๊ธฐํ˜ธ

ํ˜•์‹์„ ์ง€์ •ํ•˜๊ณ  ์ด๋ฆ„์„ ๋ฐ”๊พธ๋ ค๋ฉด ์ผ๋ถ€ ํ•ดํ‚น์ด ํ•„์š”ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๋Š” ๋‹ค๋ฅธ ํ™•์žฅ์ž๋กœ๋ณด๊ธฐ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  php๊ฐ€ ์•„๋‹Œ phtml๊ณผ ์—ฐ๊ฒฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ๊ณผ ์œ„ํ—˜์œผ๋กœ ๊ฝค ์ข‹์€ ์‹œ์ž‘์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@bmewburn ์˜ˆ, ์ข‹์€ ๊ฒƒ ๊ฐ™๋„ค์š”. ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 'phtml'์–ธ์–ด์˜ ์•„์ด๋””์–ด๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@aeschli ๋Š” ์š”์ฒญ์„ ์ „๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” html ์„œ๋ฒ„๊ฐ€ phtml์— ๋Œ€ํ•œ ๊ณต๊ธ‰์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ  php ์„œ๋ฒ„๊ฐ€ phtml์— ๋Œ€ํ•œ ๊ณต๊ธ‰์ž๋ฅผ ๋“ฑ๋กํ•˜๊ณ  vscode๊ฐ€ ๋ณ„๋„์˜ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์œ„์˜ ๊ณต๊ธ‰์ž๋Š” ๋ชจ๋‘ ์‘๋‹ต์ด ๋ณ‘ํ•ฉ๋˜์—ˆ๊ฑฐ๋‚˜ ๊ฑฐ์ง“์ด ์•„๋‹Œ ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต์ด ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ„๋„์˜ html ๋ฐ php ์„œ๋ฒ„๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ฒ”์œ„์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‹œ๋„ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋ชจ๋‘ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. phtml id๋Š” ๋‘ ์–ธ์–ด ์„œ๋ฒ„ ๋ชจ๋‘์— ๊ณตํ†ต์  ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์–ธ์–ด ํŒŒ์ผ ์—ฐ๊ฒฐ์„ ๊ฐ–๋Š” ๊ฒƒ์ด ๋” ์ข‹์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ›จ์”ฌ ๋” ๊ด€๋ จ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ php์™€ phtml์„ ๋ณ„๋„๋กœ ์œ ์ง€ํ•˜๋ฉด php ์ „์šฉ ํŒŒ์ผ์— ๋Œ€ํ•ด html ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"files.associations": {
        "*.php": ["php", "html"]
    }

์ง€๊ธˆ์€ html ๋ฐ php doc ์„ ํƒ๊ธฐ๋กœ ๋‚ด PHP ํ™•์žฅ์„ ๋“ฑ๋กํ•˜์ง€๋งŒ์ด ์„ค์ •์—์„œ html ์–ธ์–ด ๊ตฌ์„ฑ์„ ์žฌ์ •์˜ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ ์—ฐ๊ฒฐ์€ ๋‹จ์ผ ์–ธ์–ด ID์—๋งŒ ํ• ๋‹น ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ธ์–ด ์„œ๋ฒ„๋Š” ์›ํ•˜๋Š” ์–ธ์–ด์˜ ๋ฌธ์„œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅ์„ฑ 1 : HTML๋„ php ๋“ฑ๋กํ•˜๊ณ  ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹์ฐธ์—ฌํ•˜์ง€๋งŒ <?php .../?> ์™ธ๋ถ€์ธ ๊ฒฝ์šฐ์—๋งŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€๋Šฅ์„ฑ 2 : ๋งŒ PHP ์–ธ์–ด๋ฅผ ์„œ๋ฒ„์— ๋“ฑ๋ก php , ๋ชจ๋“  ์š”์ฒญ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค <?php .../?> ๋ฐ›๋Š” ๋“ฑ๋ก ๋œ ๋ชจ๋“  ์–ธ์–ด๋ฅผ ์„œ๋ฒ„์— phtml ์–ธ์–ด๋ฅผ.

๋”ฐ๋ผ์„œ ์ „๋‹ฌ์€ commands.executeCommand ?

@bmewburn # 36396์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
์˜ˆ, ์—ฌ๊ธฐ ์—์„œ ํ•ฉ๋‹ˆ๋‹ค.

PHP ์šฉ html intellisense์— ๊ด€ํ•œ ๋ชจ๋“  ์—…๋ฐ์ดํŠธ

์•ˆ๋…•ํ•˜์„ธ์š”, PHP์™€ HTML ์ฝ”๋”ฉ์„ ํ˜ผํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? HTML ๊ฐ•์กฐ ํ‘œ์‹œ๊ฐ€ PHP ๋ฌธ์„œ์—์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :-(

835b4a9809

๊ฑฐ์˜ 2 ๋…„์ด ์ง€๋‚œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ์ ์ ˆํ•œ ํ•ด๊ฒฐ์ฑ…์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š”๊นŒ์ง€ ํ•ด๊ฒฐ๋ฉ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ์—ฌ์ „ํžˆ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ €๋Š”์ด ๋ฌธ์ œ๋กœ ์ธํ•ด ST3๋กœ ๋Œ์•„๊ฐ”์Šต๋‹ˆ๋‹ค. ์–ธ์  ๊ฐ€ ๊ทธ๋“ค์ด์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ๋‚ด๊ฐ€ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@bmewburn ํ™˜์ƒ์ ์ธ ์ž‘ํ’ˆ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ค๋žซ๋™์•ˆ ํ•„์š”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ VSCode๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š์„ ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@ kilevvri1 ์„ค์ •์„ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•˜์ง€ ..

@ expo87 ๊ธฐ๋ณธ PHP Intelephense ์š”์ฒญ ์„ค์ •์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
"php.suggest.basic": false
์•„์ง ๋‹ค๋ฅธ ์„ค์ •์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Bummer. ๋ฐฉ๊ธˆ VSCode ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ  ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜๋Š” ์ด๊ฒƒ์„ ๋งŒ๋‚ฌ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
VSCode๋ฅผ ์ •๋ง ์ข‹์•„ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•ˆํƒ€๊นŒ์šด ์ผ์ด์ง€๋งŒ ์ด์ œ Sublime Text๋กœ ๋Œ์•„ ๊ฐ€์•ผํ•ฉ๋‹ˆ๋‹ค.

@DannyMexen PHP Intelephense ํ™•์žฅ์„ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค

@ kilevvri1 ์ด ํ™•์žฅ์€ PHP๋ฅผ ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์‹œ์Šคํ…œ PHP๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๋‚ด๊ฐ€ ์™œ ์ด๋Ÿฌ๋Š” ๊ฑฐ์ง€? ์ผ๋ฐ˜์ ์ธ ํ˜ผํ•ฉ ๊ตฌ๋ฌธ์€ PHP์™€ ๋‹ค๋ฅธ ์–ธ์–ด์ž…๋‹ˆ๊นŒ? ์ด ์˜ต์…˜์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?! Sublime Text ์„ค์น˜ ํŒŒ์ผ 8,5 Mb-ํ˜ผํ•ฉ ๊ฐ•์กฐ ํ‘œ์‹œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. CodeLite ์„ค์น˜ ํŒŒ์ผ 50 Mb-ํ˜ผํ•ฉ ๊ฐ•์กฐ ํ‘œ์‹œ๊ฐ€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  PHP๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค!

์ด ๊ธฐ๋Šฅ์€ VS Code์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜์–ด์•ผํ•œ๋‹ค๋Š”

@ kilevvri1 , ์ด๋ด, ์–ด๋–ป๊ฒŒ ์ง€๋‚ด? ๋‚˜๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ .php ํŒŒ์ผ์—์„œ HTML ํ˜•์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์•ผํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์€ ๊ดœ์ฐฎ์ง€ ๋งŒ ๋‚ด ๊ฒฝํ—˜์„ ๋ง์น˜๋Š” ํ•œ ๊ฐ€์ง€๋ฟ์ž…๋‹ˆ๋‹ค. ํšŒ์‚ฌ ์ •์ฑ…์— ๋”ฐ๋ผ ๋‚ด ์ฝ”๋“œ์˜ ํ˜•์‹์„ ์ž˜ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ๋ž˜๋ฅผ ๋ฐ”๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒˆ๊ฑฐ๋กญ์ง€ ๋งŒ ํฐ ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํŒŒ์ผ ์ด๋ฆ„์„ .html๋กœ ๋ฐ”๊พธ๊ณ  ์„œ์‹์„ ์ง€์ •ํ•œ ๋‹ค์Œ ๋‹ค์‹œ .php๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

๋‚˜๋Š” VSCode๋ฅผ ์ข‹์•„ํ•˜๊ณ  ์ผ์ฃผ์ผ์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž‘์—…์ด ์ƒ๋‹นํžˆ ๋Š๋ ค์ง€๋ฉด ST 3์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

ํ™•์žฅ ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด PHP๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด, ๋กœ์ปฌ ์ปดํ“จํ„ฐ์— PHP๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์ „์— ์„œ๋ฒ„์— ์ฝ”๋“œ๋ฅผ ๋„ฃ๊ณ ์ด ์ž‘์—…์„ ๋ฐ˜๋ณตํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

PHP๋Š” ๋กœ์ปฌ์— ์„ค์น˜๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์ด ๋กœ์ปฌ์—์„œ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ฐœ๋ฐœ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@TheColorRed ๋Š” ๋กœ์ปฌ์—์„œ ๋‚ด ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ์„œ๋ฒ„์— ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•œ ํ›„. WinSCP ๋ฐ ST ์‚ฌ์šฉ-๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ์ž‘์—… ์†๋„. ๊ทธ๋ฆฌ๊ณ  ๋‹น์—ฐํžˆ ๋‚ด๊ฐ€ ๋ญ˜ํ•˜๋Š”์ง€ ์•ˆ๋‹ค :-)

@TheColorRed ๋‹น์‹ ์€ ์ธํ„ฐ๋„ท์—์„œ ์‹œ๊ฐ„์˜ ๊ฐ€์น˜์— ๋Œ€ํ•ด ์ž˜๋ชป๋˜๊ณ  ์ˆ˜๋™์ ์œผ๋กœ ๊ณต๊ฒฉ์ ์ธ ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

image

์ด ๊ธฐ๋Šฅ์ด ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ์ง€ ๋งŒ ์‚ฌ์‹ค์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. VSCode ํŒ€์€ ์ด๊ฒƒ์„ ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋งค์šฐ ๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. @bmewburn ์€ ๋‚ด๊ฐ€ ๋Œ€์•ˆ์— ๋Œ€ํ•ด ๋งŒ์กฑํ•˜๋Š” PHP Intelephense ํ™•์žฅ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@ expo87 ์›Œํฌ ํ”Œ๋กœ์šฐ๋ฅผ ์„ค๋ช… ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๋ชจ๋‘๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ผ์„ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ ๋•Œ๋ฌธ์—
๋‚˜๋Š” ํ˜„๋ช…ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋ชจ๋“  HTML์„ PHP ์ฝ”๋“œ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ tpl ํŒŒ์ผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ์ฝ”๋“œ๋ฅผ ๋” ๊น”๋”ํ•˜๊ฒŒ

@DannyMexen PHP ํŒŒ์ผ ๋‚ด์—์„œ HTML ํ˜•์‹์„ ์ง€์ •ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. settings.json์—์„œ "intelephense.formatProvider.enable": false ํ˜•์‹์˜ PHP Intelephense๋ฅผ ๋•๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ •๋ง๋กœ ์›ํ•˜๋Š” ๊ฒƒ์€ ์ž๋™ ์™„์„ฑ ์ œ์•ˆ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š๋Š” > ๋ฟ์ž…๋‹ˆ๋‹ค (๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ๋ฌด์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์„ ์ค‘์ง€ํ•˜๊ฒŒ ํ•จ). HTML ์š”์†Œ๋ฅผ ๋‹ซ๊ณ  ๋‹ค์Œ ์ค„๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์งœ์ฆ๋‚˜์ง€๋งŒ "์‹ค์ˆ˜๋กœ"์—”ํ„ฐ๋ฅผ ์น˜๋ฉด ์ƒˆ ์ค„ ๋Œ€์‹  ์‚ญ์ œํ•ด์•ผํ•˜๋Š” ์“ฐ๋ ˆ๊ธฐ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์ œ์•ˆ ์ค‘ ์–ด๋Š ๊ฒƒ๋„์ด ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ์€ https://github.com/Microsoft/language-server-protocol/issues/138์ž…๋‹ˆ๋‹ค.
@jrieken ๋‹น์‹ ์ด ์ œ์•ˆํ•œ ์ค‘๊ฐ„ ์†”๋ฃจ์…˜์ด ์กฐ๋งŒ๊ฐ„ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹ค์ค‘ ๋ฌธ์ž ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ์†Œ๋ฆฌ๋งŒํผ ์‚ฌ์†Œํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ๊นŒ์ง€ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์€ ํŠธ๋ฆฌ๊ฑฐ ๋ฌธ์ž์˜ ์ž ์žฌ์  ์‹œํ€€์Šค์—์„œ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

@ kilevvri1 ์ฃผ์‚ฌ์œ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ฒŒ์‹œ๋ฌผ์„ ๋”ฐ๋ž์ง€๋งŒ ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ค์ •์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฌธ์ œ๊ฐ€๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์„ค์น˜ ํ•œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ๋ชฉ๋ก ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์–ป์€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๊ฒƒ์€ ํŒŒ์ผ ์—ฐ๊ฒฐ์„ ๋ณ€๊ฒฝํ•˜๊ณ  beautify๋กœ ๋•œ์งˆํ•˜๋Š” ๊ฒƒ์ด์—ˆ์ง€๋งŒ ๋„์›€์ด๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์–ด์จŒ๋“  ๋ชจ๋‘ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ ์ง์ ‘์ ์ธ ๋Œ€๋‹ต์ด์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@WraithKenny ๋Š” https://github.com/felixfbecker/php-language-server/pull/527 ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ์ด ์ผ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. @bmewburn์ด ์ œ์•ˆํ•œ ๊ฒƒ์ฒ˜๋Ÿผ "PHP Intelephense"ํ”Œ๋Ÿฌ๊ทธ์ธ์กฐ์ฐจ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 'php'๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํƒญ์„ ๋ˆ„๋ฅด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. http://s.zeshanahmed.com/a_1FC81B2B.png

์ด๊ฒƒ์€ PHP์—์„œ HTML์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ ์–ด๋„ WordPress ํ…Œ๋งˆ ๊ฐœ๋ฐœ์ž๋กœ์„œ.

๋Œ์•„์™€์„œ VS Code๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ Sublime์œผ๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” VS Code๊ฐ€ ์–ผ๋งˆ๋‚˜ ๊ฐ•๋ ฅ ํ•ด ๋ณด ์˜€๋Š”์ง€ ๋งˆ์Œ์— ๋“ค์—ˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ž‘์€ ๋ฌธ์ œ (๋˜๋Š” ๊ธฐ๋Šฅ ๋ถ€์กฑ)๋กœ ์ธํ•ด ๋งŽ์€ PHP / WP ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

aaand ์ €๋Š” @zeshanshani ๋ฐ @DannyMexen ๊ณผ ํ•จ๊ป˜ ์žˆ์Šต๋‹ˆ๋‹ค. PHP ํŒŒ์ผ์— html์„ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋‹ค๋ฉด์ด ํŽธ์ง‘๊ธฐ๋Š” ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ•. ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ๋„ˆ๋ฌด ์ข‹์•„ํ–ˆ์ง€๋งŒ (๊ฒ‰๋ณด๊ธฐ์— ๋‹จ์ˆœ ํ•ด ๋ณด์ด๋Š”) ๊ฒƒ์ด ๋‚˜๋ฅผ ์“ธ๋ชจ ์—†๊ฒŒ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์—ฌ๊ธฐ์„œ ์•ฝ๊ฐ„ ํ‹€๋ ธ์„ ์ˆ˜๋„ ์žˆ๊ณ ,์ด ๋ฌธ์ œ๋Š” ๋‚ด๊ฐ€ ์–ธ๊ธ‰ ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์–ด์จŒ๋“ , ๋‚ด๊ฐ€ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด VS Code๊ฐ€ ๋‚˜์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ๊ฐ•๋ ฅํ•œ์ง€๋ฅผ ์‚ฌ๋ž‘ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋” ํ™•์ธํ•˜๊ณ  ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋งค์šฐ ์‰ฌ์šด ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ง๋ฉด ํ•œ ๋ฌธ์ œ๋Š” <?php ?> ๋ธ”๋ก ๋ฐ–์— ์žˆ๊ณ  ๋ฐ”๋กœ ๊ฐ€๊ธฐ๋กœ PHP ๋ธ”๋ก์„ ์—ด๋ ค๊ณ ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ PHP ๋ธ”๋ก์„ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ์ž ์ •์˜ HTML ์Šค ๋‹ˆํŽซ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ ๋‹ค์Œ 3 ๊ฐœ์˜ ์Šค ๋‹ˆํŽซ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

  • PHP- <?php ?> ๋กœ ํ™•์žฅ
  • if -IF ์กฐ๊ฑด๋ถ€ ์—ด๊ธฐ.
  • foreach -FOREACH ๋ฃจํ”„๋ฅผ ์—ฝ๋‹ˆ ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ๊ทธ๊ฒƒ์„ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด ๋‹ค์Œ์€ ์Šค ๋‹ˆํŽซ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

https://gist.github.com/zeshanshani/ccbfe8c0177a2513f0a92d0747349f50

๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๊ทธ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.

PHP Expand in HTML

์—ฌ๊ธฐ์„œ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ๋ฒ”์œ„๋ฅผ ์ •์˜ ํ•  ์ˆ˜์žˆ๋Š” Sublime Text์™€ ๋‹ฌ๋ฆฌ .html ํŒŒ์ผ์˜ ์Šค ๋‹ˆํŽซ์„ ํ™•์žฅํ•˜์—ฌ ํŠน์ • ์Šค ๋‹ˆํŽซ์ด PHP ์ธ ๊ฒฝ์šฐ์—๋งŒ ํ™•์žฅ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. http://s.zeshanahmed.com/a_1FCD4A29.png

Btw, ๋ˆ„๊ตฌ๋“ ์ง€ emmet.triggerExpansionOnTab ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๊นŒ? PHP ๋ฌธ์ž์—ด ๋‚ด ํƒญ ์ง€์›์—์„œ emmet HTML ํ™•์žฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์„ค์ •์„ ์ง€์ •ํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋‹ค์Œ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

"emmet.triggerExpansionOnTab": true

์Šคํฌ๋ฆฐ ์ƒท : http://s.zeshanahmed.com/a_1FD14980.png

๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

HTML Expand in PHP Strings

๋‚˜์—๊ฒŒ (๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ) ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค.

Jun Han์˜ "_Auto Close Tag_"ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚ด ์„ค์ •์—์„œ ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

"php.suggest.basic": false,
"auto-close-tag.SublimeText3Mode": true,

์ด์ œ .php ํŒŒ์ผ์— ์žˆ๊ณ  <?php ?> ํƒœ๊ทธ ์™ธ๋ถ€์—์žˆ๋Š” ๋™์•ˆ html ํƒœ๊ทธ ์ž…๋ ฅ์„ ๋งˆ์นœ ํ›„ $_cookie ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š๊ณ  </ ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋‹ซ๋Š” ํƒœ๊ทธ.

๋ฐ”๋ผ๊ฑด๋Œ€, ์ด๊ฒƒ์€ ๋‚˜์™€ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ๋˜ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์ด๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@Chenzo ๊ฐ€ ํ•ด๊ฒฐ ํ˜•์‹ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๊นŒ? Ctrl + Shift + I ๋ฅผ ๋ˆ„๋ฅด๋ฉด PHP์™€ HTML ์ฝ”๋“œ๊ฐ€ ๊ทธ์— ๋”ฐ๋ผ ํ˜•์‹์ด ์ง€์ •๋˜๊ฑฐ๋‚˜ ๋“ค์—ฌ ์“ฐ๊ธฐ๋ฉ๋‹ˆ๊นŒ?

@DannyMexen ์œผ์‘ ... ์•„๋‹ˆ. Altho, VScode์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ž…๋‹ˆ๊นŒ? ๋‚ด beautify ํ”Œ๋Ÿฌ๊ทธ์ธ์กฐ์ฐจ๋„ .PHP ํŒŒ์ผ์—์„œ HTML๋กœ ๋ฌด์—‡์„ ํ•ด์•ผํ• ์ง€ ๋ชจ๋ฅด๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@Chenzo ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค . ์˜ˆ, ์—ฌ๊ธฐ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ VSC๋ฅผ ๋…์  ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…ํ•ด์•ผํ•˜๋Š” ์œ ์ผํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

ํŠธ์œ— ๋‹ด์•„ ๊ฐ€๊ธฐ
PHP Intelliphense๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
vscode ๋ฐ PHP Intelliphense๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค.
๋˜๋Š”
everedit๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค. ์ข‹์€ ํŽธ์ง‘๊ธฐ์ด์ง€๋งŒ IDE๋Š” ์•„๋‹ˆ์ง€๋งŒ Windows ๋งŒ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

@iscraft ์ œ์•ˆ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ Linux๋ฅผ ์‹คํ–‰ ์ค‘์ด๋ฉฐ ๋ชจ๋“  PHP ํ”„๋กœ์ ํŠธ์— ST 3์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค๋ฉด ์ฐจ๋‹จ ๋ฌธ์ œ๋Š” LSP (์˜ˆ!)์—์„œ ํ•ด๊ฒฐ๋˜๊ณ  ํŽ ๋ฆญ์Šค์˜ ์–ธ์–ด ์„œ๋ฒ„ (์˜ˆ!)์—์„œ๋„ ํ•ด๊ฒฐ๋˜์ง€๋งŒ ์•„์ง VS ์ฝ”๋“œ ๋‚ด๋ถ€์ž์—์„œ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

ํ•ญ์ƒ ์กด์žฌํ•˜๋Š” <?php ์ž๋™ ์™„์„ฑ๊ณผ ๊ด€๋ จ๋œ ์ž‘์€ ๊ด€๋ จ ๋ฌธ์ œ๊ฐ€ VS Code Insiders์— ์žˆ์œผ๋ฉฐ Felix์˜ Intellesense ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ VS Code์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

https://github.com/felixfbecker/vscode-php-intellisense/issues/205#issuecomment -347794655

Insiders Edition์„ ๊ฑด๋„ˆ ๋›ฐ๊ณ  1.19๋กœ ๋งŒ๋“ค๊นŒ์š”?

settings.json ์—์„œ ๋‹ค์Œ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

"files.associations": {"*.php": "html, php"},

๊ธ€์Ž„์š”, ๊ทธ๊ฑด ์‚ฌ์‹ค์ด ์•„๋‹ˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”. ์ˆญ๊ณ ํ•œ ํ…์ŠคํŠธ๋กœ ๋Œ์•„๊ฐ€์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

files.association์€ ๋‚ด๊ฐ€ ์‹œ๋„ํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ์œ„ํ•ด ์ผํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค.
๊ณต์‹ ํŠธ์œ„ํ„ฐ ๊ณ„์ •์ด ๋ฐฉ๊ธˆ ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜๋ผ๊ณ ํ–ˆ๋Š”๋ฐ
์–ธ์  ๊ฐ€ ํŒ€์ด์ด๋ฅผ ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์€ ๊ทธ๋Ÿฐ ๊ธฐ๊ดดํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค
์ด ์ƒ์ž์—์„œ. ๋ง ๊ทธ๋Œ€๋กœ VScode๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•
๋‚ด ๋…์  ํŽธ์ง‘์ž.
@Ken Newman์€ ๋ชจ๋“  PHP ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๋‚˜์˜ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

2017 ๋…„ 12 ์›” 14 ์ผ ๋ชฉ์š”์ผ ์˜คํ›„ 10:31, Ken Newman [email protected]
์ผ๋‹ค :

๊ธ€์Ž„์š”, ๊ทธ๊ฑด ์‚ฌ์‹ค์ด ์•„๋‹ˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”. ์ˆญ๊ณ ํ•œ ํ…์ŠคํŠธ๋กœ ๋Œ์•„๊ฐ€์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-351827207 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APewuYFpWR6_mZbUO-XVNMwH0LpYb_Cqks5tAYWugaJpZM4Gpk-J
.

-
๋ฌธ์•ˆ ์ธ์‚ฌ,

Danny Mexen.

HTML์ด ์ด์ œ 1.19์˜ PHP ์–ธ์–ด / ํŒŒ์ผ ๋‚ด์—์„œ ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋ฐฉ๊ธˆ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์—†์ด๋„ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ด…๋‹ˆ๋‹ค ...

@jsieler 1.19 ๋ฐ 1.20์—์„œ ์—ฌ์ „ํžˆ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

VSCode 1.19๋Š” .php ํŒŒ์ผ์˜ ์†์„ฑ ์ธ html์„ ์ž๋™ ์™„์„ฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฌธ์ œ 2 ๋…„ ...

HTML ์€์ด ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ PHP ํŒŒ์ผ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์•„๋งˆ๋„ ์ข…๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

phphtml

@bmewburn ๋‚˜๋„ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด

์•„๋‹ˆ์š”, ๊ฐœ์ธ์ ์œผ๋กœ ์™ธ๋ถ€ ํ™•์žฅ์ด ํ•„์š”์—†๋Š” ์ง€์›์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ์–ธ์–ด์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ ์ค‘ ์ผ๋ถ€๊ฐ€ ์—ฌ๊ธฐ์—์„œ๋ณด๊ณ ํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋ช…ํ™•ํžˆํ•ฉ์‹œ๋‹ค.

์ง€๊ธˆ์€ ์Šค์Šค๋กœ ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” PHP ํŒŒ์ผ์˜ HTML ์ž๋™ ์™„์„ฑ ์‹คํŒจ๊ฐ€ ์•„๋‹ˆ๋ผ VSCode์˜ '๋ฌธ์„œ ์„œ์‹'๊ธฐ๋Šฅ์˜ ๋งฅ๋ฝ์—์„œ PHP ํŒŒ์ผ์˜ HTML ์ฝ”๋“œ๋ฅผ ํฌ๋งทํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ถ„๋ช…ํ•ฉ๋‹ˆ๊นŒ?

๊ธฐ๋ณธ ํ‚ค๋ณด๋“œ ๋ฐ”๋กœ ๊ฐ€๊ธฐ๊ฐ€ Ctrl + Shift + I ๊ฒฝ์šฐ HTML ์ฝ”๋“œ๊ฐ€ ํฌํ•จ ๋œ PHP ํŒŒ์ผ์—์„œ PHP ์ฝ”๋“œ ๋งŒ ํ˜•์‹ํ™”๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. HTML ์ฝ”๋“œ๋Š” ํ˜•์‹์ด ์ „ํ˜€ ์ง€์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์ด ๊ธฐ๋Šฅ์€ ST 3์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์ž๋™ ์™„์„ฑ, ์ž๋™ ๋‹ซ๊ธฐ ํƒœ๊ทธ ๋“ฑ์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. PHP ์ค„์„ ํƒญํ•œ ๋‹ค์Œ HTML ์ค„์„ ํƒญํ•˜๊ณ  ๋ฌธ์„œ ํ˜•์‹์„ ์ง€์ •ํ•˜๋ฉด PHP ์ฝ”๋“œ ๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋“ค์—ฌ ์“ฐ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์ด ์—ฌ๊ธฐ์—์„œ ์ผ๋ถ€๋ฅผ ์ •๋ฆฌํ•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๋ˆ„๊ฐ€ ๋‚˜์™€ ํ•จ๊ป˜์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@bmewburn php ํŒŒ์ผ์— HTML ์–ธ์–ด ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•˜์ง€๋งŒ ์ฝ”๋“œ์˜ php ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์Šคํƒ€์ผ์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฟก๋ฟก

"files.associations": { "* .php": "html, php"},

์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฌ์šฉํ•œ ์–ธ์–ด (์ด ๊ฒฝ์šฐ์—๋Š” PHP) ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ ์™„์ „ํžˆ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

@SharakPL ์–ด๋–ค ๋ฒ„์ „์˜ VSCode ru๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

@ kilevvri1 ๋ฐฉ๊ธˆ 1.19.1์—์„œ 1.19.2๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์—†์Œ :(
ํŒŒ์ผ ์–ธ์–ด๋กœ PHP๋ฅผ ์„ ํƒํ•˜๋ฉด html ์ œ์•ˆ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
HTML์„ ํŒŒ์ผ ์–ธ์–ด๋กœ ์„ ํƒํ•˜๋ฉด php ๋ถ€๋ถ„์€ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์Šคํƒ€์ผ์ด ์ง€์ •๋˜๊ณ  ์ถœ๋ ฅ์— ๋งŽ์€ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

@SharakPL VSCode ์‚ฌ์šฉ์ž ์„ค์ •์— ์ „ํ™” ๊ฒฝ๋กœ๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ง€๊ธˆ์€ ์ง‘์— ์—†์ง€๋งŒ ๋Œ์•„ ์˜ค๋ฉด intellephense๊ฐ€ ์™„๋ฒฝํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์–ธ์ œ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์„œ ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

@SharakPL ๋‚˜๋Š” ๋‹น์‹ ์˜ PHP ๊ฒฝ๋กœ๋ฅผ ์˜๋ฏธํ–ˆ์Šต๋‹ˆ๋‹ค. ํœด๋Œ€ ์ „ํ™”์— ์ž…๋ ฅ ์ค‘์ž…๋‹ˆ๋‹ค. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

@ kilevvri1 ์˜ˆ, ์žˆ์Šต๋‹ˆ๋‹ค

"php.suggest.basic": true,
"php.validate.enable": true,
"php.validate.executablePath": "c : \\ wamp64 \\ bin \ php \ php5.6.25 \ php.exe",
"php.validate.run": "onType",

PHP ์–ธ์–ด ๋ชจ๋“œ์—์„œ html ์ฝ”๋“œ๊ฐ€ ํ•ญ์ƒ ๊ทธ์— ๋”ฐ๋ผ ์ œ์•ˆ๋˜๋Š” Sublime Text 3๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ฟก๋ฟก
ํ™•์žฅ ๊ถŒ์žฅ ์‚ฌํ•ญ์— ๋”ฐ๋ผ :
"php.suggest.basic": false

๊ทธ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์•Œ๋ ค์ฃผ์„ธ์š”

@ kilevvri1 ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์—†์Œ :(

์˜ค, ์ด์ œ ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค! PHP ํ˜•์‹ ํŒŒ์ผ์—๋Š” ์ผ์ข…์˜ HTML ์ธํ…”๋ฆฌ ์„ผ์Šค๊ฐ€ ์žˆ์ง€๋งŒ EMMET ์ œ์•ˆ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. https://docs.emmet.io/cheat-sheet/
์ œ์•ˆ ๋œ ์Šค ๋‹ˆํŽซ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— <a ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์—†์–ด ๊ณ„์† ์งœ์ฆ์ด๋‚ฌ์Šต๋‹ˆ๋‹ค. a ๋งŒ ์ž…๋ ฅํ•˜๋ฉด ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜์ง€๋งŒ ๋งํฌ๊ฐ€ ์žˆ์ง€๋งŒ ๋ชจ๋“  ์†์„ฑ์„ ๋ฌธ์ž๋ณ„๋กœ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. EMMET๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด a#mylink.btn.btn-success ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ <a href="" id="mylink" class="btn btn-success"></a> ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ‹์ง€์ง€๋งŒ ๋” ์ •ํ™•ํ•œ html์„ ์–ป์œผ๋ ค๋ฉด a#mylink.btn.btn-success[title="click me" target="_blank"] ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉฐ ์ƒˆ ๋ถ€๋ถ„์€ ๋‹ค์‹œ ํ•œ ๊ธ€์ž ์”ฉ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. SublimeText์˜ ์Šคํƒ€์ผ์ด ํ›จ์”ฌ ๋” ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
html_is

HTML intellisense๊ฐ€ ์ž‘๋™ํ•˜๋Š” ํŒŒ์ผ ํ™•์žฅ์ž ๋ชฉ๋ก์— .php๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ Eclipse์—์„œ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@graddev ๋ˆ„๊ตฐ๊ฐ€ ์ œ์•ˆ
"files.associations": {"*.php": "html, php"}
์‚ฌ์šฉ์ž ์„ค์ •์—์„œ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐํšŒ๋ฅผ ์ถ”๊ฐ€ ํ•  ๋•Œ ๋ˆ„๊ฐ€ ์•Œ๊ฒ ์Šต๋‹ˆ๊นŒ?
2020 ๋…„ ์ด์—ˆ๋Š”๋ฐ๋„ ์•„์งํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

PHP ํŒŒ์ผ์˜ HTML ๋ฐ CSS ์ž๋™ ์™„์„ฑ ... ๋ฐฉ๋ฒ•?

์ด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. HTML ํƒœ๊ทธ์˜ ์†์„ฑ ์ž๋™ ์™„์„ฑ์ด ์ „ํ˜€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” ๋งค์šฐ ์—ญ๊ฒจ์šด ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ (๋‹ค์†Œ) ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋งคํฌ๋กœ ํ‚ค๊ฐ€์žˆ๋Š” ํ‚ค๋ณด๋“œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์–ธ์–ด โ€‹โ€‹๋ชจ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋งคํฌ๋กœ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. HTML intellisense๋ฅผ ์›ํ•˜๋ฉด M1์„ ๋ˆ„๋ฅด๊ณ  PHP๋ฅผ ์›ํ•˜๋ฉด M2๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

intelephense ํ™•์žฅ์ž๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์‹ญ์‹œ์˜ค.

@aeschli ์ด๊ฒƒ์€ ์ฃผ์š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Smarty ํ™•์žฅ์—์„œ ๋‚ด๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ํ™•์žฅ์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ฒœ ๋œ PHP ํ™•์žฅ์ด ๋” ์ด์ƒ ์ง€์›์„๋ฐ›์ง€ ๋ชปํ•˜๊ณ  ์—‰๋šฑํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค๋ฅธ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅํ•˜์—ฌ์ฃผ์˜๋ฅผ ๋ถ„์‚ฐ์‹œํ‚ค๋ ค๋Š” ๊ฒƒ์€ ์ •๋ง ์‹ค๋ง ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ๋” ๊นŠ์–ด์ง‘๋‹ˆ๋‹ค. ์‚ฌ์‹ค,์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ ์Šคํ”„๋ฆฐํŠธ์—์„œ ํ•ด๊ฒฐ๋˜์–ด์•ผํ•˜๋ฉฐ ๋ฐฑ ๋กœ๊ทธ์— ๋†“์ด๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ œ๋ฅผ ๊ฒฝ์‹œํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ด€์‹ฌ์‚ฌ์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ?

๋ฏธ์•ˆํ•˜์ง€๋งŒ ์ข€ ํ™”๊ฐ€ ๋‚ฌ์–ด์š”.

(์‚ฌ์‹ค 3 ๊ฐœ์›” ์ „์— ๋˜‘๊ฐ™์€ ๋ง์„ํ–ˆ์Šต๋‹ˆ๋‹ค.)

VSCode ํŒ€์ด ์ž‘์—… ํ•  ์ˆ˜ ์žˆ๊ณ  ์ „๋ฌธ ์ง€์‹์„ ๋ณด์œ  ํ•  ์ˆ˜์žˆ๋Š” ์˜์—ญ์€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์šฐ๋ฆฌ๋Š” PHP ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ ๊ฐœ๋ฐฉํ˜• ํ™•์žฅ API์™€ ๋งˆ์ผ“ ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์ƒ๊ฐ ํ•ด๋‚ธ ์ด์œ ์ž…๋‹ˆ๋‹ค. ํ™•์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์šฐ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๊ณ  ์ข‹์€ ํ”ผ๋“œ๋ฐฑ์œผ๋กœ ์ €์ž๋ฅผ ๋„์™€์ฃผ์„ธ์š”.
๋ชจ๋“  ํ™•์žฅ ๊ธฐ๋Šฅ์ด ๋‚ด์žฅ๋˜์–ด ์žˆ๊ณ  VSCode์™€ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž„์„ ์ดํ•ดํ•˜์ง€๋งŒ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” PHP์—์„œ HTML ์™„์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด intelephense ํ™•์žฅ์˜ ์ €์ž ์ธ Ben๊ณผ ํ˜‘๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ทจํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์˜ฌ๋ฐ”๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. '์ฃผ'์–ธ์–ด ์ธ PHP๋งŒ์ด ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ํฌํ•จ ๋œ HTML ์ฝ˜ํ…์ธ  (์˜ˆ : ์ธ์ฝ”๋”ฉ ๋ฐฉ๋ฒ•, PHP ๋ณ€์ˆ˜ ํ™•์ธ ๋ฐฉ๋ฒ•)๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ๊ฒฝํ—˜์— ๋น„์ถ”์–ด ๋ณผ ๋•Œ, ๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์€ ๋ฌธ์ œ์˜ ์ผ๋ถ€๋งŒ ํ•ด๊ฒฐํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜์—†๋Š” ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ˆ˜๋ฐฑ ๊ฐœ์˜ ๊ณต๊ฐœ ๋ฌธ์ œ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

@ jens1o ์‹ค๋ง ํ•˜์…จ๊ณ  ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์—์ด ๋ถ„์•ผ์—์„œ ๊ณ„ํš๋œ ๊ฒƒ์ด ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋Š” ์ ์— ๋Œ€ํ•ด ์œ ๊ฐ์ž…๋‹ˆ๋‹ค. ํ™•์žฅ ์ƒํƒœ๊ณ„๋ฅผ ์ง€์›ํ•˜๊ฑฐ๋‚˜ intelephense (๋ฐ ๊ธฐํƒ€ PHP ํ™•์žฅ)์— ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ €ํฌ๋ฅผ ๋„์™€์ฃผ์„ธ์š”.

์ข‹์•„, ์ˆจ์„ ์ž˜๋“ค์ด ์‰ฌ๊ณ  ์ง„์ •ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚ด ํ™•์žฅ์œผ๋กœ ์ดˆ์ ์„ ์ด๋™ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ HTML์„ ์™„์„ฑ ํ•  ์ˆ˜ ์žˆ๋„๋ก HTML ์–ธ์–ด ์„œ๋ฒ„์˜ ํฌํฌ๋ฅผ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์ด ์ œ๊ฐ€ ์–ธ๊ธ‰ํ•˜๋Š” ํ•ต์‹ฌ ๋ฌธ์ œ์ด๊ธฐ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ๋” ํฐ ํƒ€๊ฒฉ์„๋ฐ›๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” Smarty๊ฐ€ ๋ชจ๋“  ์–ธ์–ด (์˜ˆ : csv, json)์— ๊ฐ€๊น๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ์„ ์ •๋„๋กœ ์œ ์—ฐํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ธ์–ด ์ œํ•œ์— ๊ตฌ์†๋˜์ง€ ์•Š๋Š” ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ €๋Š” csv ์–ธ์–ด ์„œ๋ฒ„ (์กด์žฌํ•˜์ง€ ์•Š๋Š”), XML ์„œ๋ฒ„, JSON ์„œ๋ฒ„์˜ ํฌํฌ๋ฅผ ์œ ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ๋ฆฌ์†Œ์Šค๊ฐ€ ํ—ˆ์šฉํ•˜๋Š” ์–ธ์–ด๊ฐ€ ๋ช‡ ๊ฐœ์ธ ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

intelephense (๋ฐ ๊ธฐํƒ€ PHP ํ™•์žฅ)์— ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” HTML intellisense๊ฐ€ ์—†์–ด๋„ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ข‹์•„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— @felixfbecker์˜ php-intellisense๋ฅผ

@aeschli ํ™•์žฅ์ด php์˜ html ๋ถ€๋ถ„์ด ๋…๋ฆฝํ˜• html ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๋™์ž‘์„ํ•˜๋„๋ก ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ญ๋‹ˆ๊นŒ? html์— ๋Œ€ํ•œ ๋ชจ๋“  ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ํ•ด๋‹น ๋ถ€๋ถ„์—์„œ ์ž˜ ์ž‘๋™ํ•˜๋„๋กํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•˜์—ฌ?
ํ™•์žฅ ์‹œ์Šคํ…œ์€ ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ์ •๋ง ์ค‘์š”ํ•˜์ง€๋งŒ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์— ์ ํ•ฉํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๊ฒƒ์€ ํ•˜๋‚˜์˜ ํŒŒ์ผ์„ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๊ณ  ๋ณ„๋„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ฝ”๋“œ ํŽธ์ง‘๊ธฐ์— ๋‚ด์žฅ ๋œ ๊ธฐ๋Šฅ์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  PHP ํŒŒ์ผ์€ ์‹ค์ œ๋กœ HTML์ž…๋‹ˆ๋‹ค.HTML ํƒœ๊ทธ. ์ด ํƒœ๊ทธ์˜ ์ฝ˜ํ…์ธ  ๋งŒ HTML๋กœ ๊ฐ„์ฃผํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. HTML์— ํฌํ•จ ๋œ ์–ธ์–ด ์ผ ๋ฟ์ด๋ฉฐ CLI ์—†์ด๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฌธ์ œ๋Š” PHP์˜ HTML์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ HTML์ด ์ฃผ์š” ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ CSS javascript vbscript svg perl java์™€ ๊ฐ™์€ ๋งŽ์€ ์–ธ์–ด๋ฅผ HTML์— ํฌํ•จ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์ธ ์ง€์› ์—†์ด๋Š” ์–ด๋–ค ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ๋„์ด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค @popcorner. ๋‚˜๋Š” ์‹ค์ œ๋กœ ๋˜‘๊ฐ™์ด ๋งํ•˜๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ๋‹น์‹ ์ด ํ›จ์”ฌ ๋” ์ž˜ ์ผ์Šต๋‹ˆ๋‹ค. :)

ST๊ฐ€ ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋†’์€ ์ˆ˜์ค€์˜ ์„ค๋ช…๋„ ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

PHP์˜ HTML intellisense์— ๋Œ€ํ•œ์ด ๋ฌธ์ œ๋ฅผ ๊ณ„์† ์œ ์ง€ํ•ฉ์‹œ๋‹ค. ์ž„๋ฒ ๋””๋“œ ์–ธ์–ด์— ๋Œ€ํ•œ ์–ธ์–ด ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธฐ์ˆ ๋กœ ๋ฌธ์„œ๋ฅผ ๊ฐœ์„  ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ์œ„ํ•œ ์ถœ๋ฐœ์ ์œผ๋กœ # 47288์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

@ jens1o ๊ทธ ๋ฌธ์ œ ์— ๋Œ€ํ•œ ํ–ˆ์Šต๋‹ˆ๋‹ค.
@paldepind ๋˜ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ ์— ๋Œ€ํ•œ

๋‚˜๋Š” ์ด๊ฒƒ์— ์—ฌ์ „ํžˆ ๋ถˆํŽธํ•˜๋‹ค. ์•„ํŒŒ ์ต,์ด ๋ฌธ์ œ๋Š” PHP ์šฉ์œผ๋กœ ์ถœ์‹œ ํ•  ๊ณ„ํš์ด ์•„๋‹ˆ๋ผ ๋Œ€์‹  ํ•ด๋‹น ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ข…๊ฒฐ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์—†์ด ์—ฌ์ „ํžˆ ๋ฌธ์ œ?

์ €๋Š” Laravel Blade๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” PHP ํƒœ๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.์ด ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค ..

ํ•ด๊ฒฐ๋˜์—ˆ์ง€๋งŒ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค ... PHP inteliphense๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ vscode ๋‚ด๋ถ€์ž๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค ...
test

@victormongi ์–ด๋–ค PHP inteliphense๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

@jfnadev ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ด๊ฒƒ์€ ๋‚ด vscode ๋ฒ„์ „๊ณผ intelephense ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
image

@victormongi ์šฐ๋ฆฌ๋Š” ๋™์ผํ•œ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@jfnadev ์ด๊ฒƒ์€ ๋‚ด ์„ค์น˜๋œ ํ™•์žฅ์ž…๋‹ˆ๋‹ค.
extensions.json :

[
  {
    "metadata": {
      "id": "2cbad5ee-b4ab-4de8-a1c7-77fede846155",
      "publisherId": "patbenatar.advanced-new-file",
      "publisherDisplayName": "patbenatar"
    },
    "name": "advanced-new-file",
    "publisher": "patbenatar",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "697255a9-3f36-44c8-b084-d3b91edfb23a",
      "publisherId": "HookyQR.beautify",
      "publisherDisplayName": "HookyQR"
    },
    "name": "beautify",
    "publisher": "HookyQR",
    "version": "1.3.0"
  },
  {
    "metadata": {
      "id": "9d674f86-f8d2-4fe1-8fa6-a17b40caf4ac",
      "publisherId": "pawelgrzybek.bimbo-theme",
      "publisherDisplayName": "pawelgrzybek"
    },
    "name": "bimbo-theme",
    "publisher": "pawelgrzybek",
    "version": "0.4.5"
  },
  {
    "metadata": {
      "id": "f583eafd-aa0d-4ccb-8f44-d1e610389660",
      "publisherId": "CoenraadS.bracket-pair-colorizer",
      "publisherDisplayName": "CoenraadS"
    },
    "name": "bracket-pair-colorizer",
    "publisher": "CoenraadS",
    "version": "1.0.27"
  },
  {
    "metadata": {
      "id": "e337c67b-55c2-4fef-8949-eb260e7fb7fd",
      "publisherId": "Shan.code-settings-sync",
      "publisherDisplayName": "Shan"
    },
    "name": "code-settings-sync",
    "publisher": "Shan",
    "version": "2.9.0"
  },
  {
    "metadata": {
      "id": "532533c9-a894-4a58-9eee-bbfbe7c06f71",
      "publisherId": "mikestead.dotenv",
      "publisherDisplayName": "mikestead"
    },
    "name": "dotenv",
    "publisher": "mikestead",
    "version": "1.0.1"
  },
  {
    "metadata": {
      "id": "1946e66b-9eea-45a9-816b-316bf9d7d1ab",
      "publisherId": "Zyst.Egoist-One",
      "publisherDisplayName": "Zyst"
    },
    "name": "Egoist-One",
    "publisher": "Zyst",
    "version": "1.18.0"
  },
  {
    "metadata": {
      "id": "7b71fc1b-190d-4f7d-95d1-93e422649b0a",
      "publisherId": "Zignd.html-css-class-completion",
      "publisherDisplayName": "Zignd"
    },
    "name": "html-css-class-completion",
    "publisher": "Zignd",
    "version": "1.17.1"
  },
  {
    "metadata": {
      "id": "8d5687fe-08f5-4a8e-917a-23aef71db6b3",
      "publisherId": "zhengxiaoyao0716.intelligence-change-case",
      "publisherDisplayName": "zhengxiaoyao0716"
    },
    "name": "intelligence-change-case",
    "publisher": "zhengxiaoyao0716",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "6f35c257-7fd5-4bc2-9cd1-01976589c17a",
      "publisherId": "arcticicestudio.nord-visual-studio-code",
      "publisherDisplayName": "arcticicestudio"
    },
    "name": "nord-visual-studio-code",
    "publisher": "arcticicestudio",
    "version": "0.6.0"
  },
  {
    "metadata": {
      "id": "a41c1549-4053-44d4-bf30-60fc809b4a86",
      "publisherId": "christian-kohler.path-intellisense",
      "publisherDisplayName": "christian-kohler"
    },
    "name": "path-intellisense",
    "publisher": "christian-kohler",
    "version": "1.4.2"
  },
  {
    "metadata": {
      "id": "a439d61f-cd9c-453f-b8c7-186f73d44915",
      "publisherId": "MehediDracula.php-constructor",
      "publisherDisplayName": "MehediDracula"
    },
    "name": "php-constructor",
    "publisher": "MehediDracula",
    "version": "0.0.8"
  },
  {
    "metadata": {
      "id": "044b4b31-2969-4af3-895d-855433b8b46d",
      "publisherId": "felixfbecker.php-debug",
      "publisherDisplayName": "felixfbecker"
    },
    "name": "php-debug",
    "publisher": "felixfbecker",
    "version": "1.12.2"
  },
  {
    "metadata": {
      "id": "5e69f001-f945-4c97-baf0-320d82a153b3",
      "publisherId": "felixfbecker.php-intellisense",
      "publisherDisplayName": "felixfbecker"
    },
    "name": "php-intellisense",
    "publisher": "felixfbecker",
    "version": "2.3.1"
  },
  {
    "metadata": {
      "id": "96fa4707-6983-4489-b7c5-d5ffdfdcce90",
      "publisherId": "esbenp.prettier-vscode",
      "publisherDisplayName": "esbenp"
    },
    "name": "prettier-vscode",
    "publisher": "esbenp",
    "version": "1.2.2"
  },
  {
    "metadata": {
      "id": "e52bce95-a629-455f-8626-e7301b9e372a",
      "publisherId": "robinbentley.sass-indented",
      "publisherDisplayName": "robinbentley"
    },
    "name": "sass-indented",
    "publisher": "robinbentley",
    "version": "1.4.8"
  },
  {
    "metadata": {
      "id": "735af542-944f-4b07-b336-9df27d7b8d84",
      "publisherId": "smlombardi.slime",
      "publisherDisplayName": "smlombardi"
    },
    "name": "slime",
    "publisher": "smlombardi",
    "version": "2.31.2"
  },
  {
    "metadata": {
      "id": "d6ba4b7b-539f-456a-b0f6-0348df44cdf3",
      "publisherId": "nikitaKunevich.snippet-creator",
      "publisherDisplayName": "nikitaKunevich"
    },
    "name": "snippet-creator",
    "publisher": "nikitaKunevich",
    "version": "0.0.4"
  },
  {
    "metadata": {
      "id": "529697b9-b343-4b1c-ba2f-f5ef692132d4",
      "publisherId": "ms-vscode.sublime-keybindings",
      "publisherDisplayName": "ms-vscode"
    },
    "name": "sublime-keybindings",
    "publisher": "ms-vscode",
    "version": "3.0.3"
  },
  {
    "metadata": {
      "id": "a150991b-031b-457a-b823-ef4c45425a1b",
      "publisherId": "karyfoundation.theme-karyfoundation-themes",
      "publisherDisplayName": "karyfoundation"
    },
    "name": "theme-karyfoundation-themes",
    "publisher": "karyfoundation",
    "version": "17.0.0"
  },
  {
    "metadata": {
      "id": "2f5dd8cb-d251-4d70-abfe-ddebcb077483",
      "publisherId": "octref.vetur",
      "publisherDisplayName": "octref"
    },
    "name": "vetur",
    "publisher": "octref",
    "version": "0.11.7"
  },
  {
    "metadata": {
      "id": "d96e79c6-8b25-4be3-8545-0e0ecefcae03",
      "publisherId": "vscodevim.vim",
      "publisherDisplayName": "vscodevim"
    },
    "name": "vim",
    "publisher": "vscodevim",
    "version": "0.11.3"
  },
  {
    "metadata": {
      "id": "d637104e-1fd7-4063-98fc-8afe46012c9b",
      "publisherId": "sleistner.vscode-fileutils",
      "publisherDisplayName": "sleistner"
    },
    "name": "vscode-fileutils",
    "publisher": "sleistner",
    "version": "2.8.1"
  },
  {
    "metadata": {
      "id": "aaee577c-f062-495a-9816-0cbd442f1d25",
      "publisherId": "ecmel.vscode-html-css",
      "publisherDisplayName": "ecmel"
    },
    "name": "vscode-html-css",
    "publisher": "ecmel",
    "version": "0.2.0"
  },
  {
    "metadata": {
      "id": "c46b0018-f317-4b6c-a785-d2039b27338f",
      "publisherId": "wix.vscode-import-cost",
      "publisherDisplayName": "wix"
    },
    "name": "vscode-import-cost",
    "publisher": "wix",
    "version": "2.6.2"
  },
  {
    "metadata": {
      "id": "ffda6552-0ad5-431b-a4fa-0905a7e4f3f0",
      "publisherId": "bmewburn.vscode-intelephense-client",
      "publisherDisplayName": "bmewburn"
    },
    "name": "vscode-intelephense-client",
    "publisher": "bmewburn",
    "version": "0.8.8"
  },
  {
    "metadata": {
      "id": "80e9cc3c-eb09-48ed-afda-f1cfd9c9ca3f",
      "publisherId": "phproberto.vscode-php-getters-setters",
      "publisherDisplayName": "phproberto"
    },
    "name": "vscode-php-getters-setters",
    "publisher": "phproberto",
    "version": "1.1.0"
  },
  {
    "metadata": {
      "id": "9b2c953d-6ad4-46d1-b18e-7e5992d1d8a6",
      "publisherId": "akamud.vscode-theme-onedark",
      "publisherDisplayName": "akamud"
    },
    "name": "vscode-theme-onedark",
    "publisher": "akamud",
    "version": "2.1.0"
  },
  {
    "metadata": {
      "id": "ee33fd31-7bb4-4252-8368-fdd5bcd94cf8",
      "publisherId": "akamud.vscode-theme-onelight",
      "publisherDisplayName": "akamud"
    },
    "name": "vscode-theme-onelight",
    "publisher": "akamud",
    "version": "2.1.0"
  }
]

๋ณ€ํ™”๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ €๋„ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค ..

๋‚˜๋„ +1.

3 ๋…„ ์ „์˜์ด ๋ฌธ์ œ๊ฐ€ ์•„์ง ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ํ•„์ˆ˜์ ์ธ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด VS Code๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜ž

๋‚˜๋Š” ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ํ˜„์žฌ TBH์—์„œ ๊ฐ™์€ ๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

2018 ๋…„ 5 ์›” 14 ์ผ ์›”์š”์ผ ์˜คํ›„ 1:53, Miqueias Penha [email protected]
์ผ๋‹ค :

PHP Intelephense
ํ•˜์ด๋ผ์ดํŠธ ๋งค์นญ ํƒœ๊ทธ

์ž‘์—…! s2

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-388790414 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APewudsZw-Cu5mpgLrBJ8vUPagFUxB5Rks5tyXApgaJpZM4Gpk-J
.

-
๋ฌธ์•ˆ ์ธ์‚ฌ,

Danny Mexen.

vscode๋Š” php์— ๋Œ€ํ•œ f๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

PHP Intelephense๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/bmewburn/vscode-intelephense

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์—ฌ๊ธฐ์„œ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค.

PHP ํŒŒ์ผ์—์„œ๋Š” HTML ์ฝ”๋“œ๋ฅผ ํ˜•์‹ํ™” (Ctrl + Shift + I) ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

@venoel PHP Intelephense๋ฅผ ์„ค์น˜ํ•˜๋ฉด
๊ทธ?

2018 ๋…„ 5 ์›” 30 ์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 8:17์— venoel [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

PHP Intelephense๋ฅผ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-393264440 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APewuX-9NlZ3_tgvbVnOADg57CLN0yBlks5t3uItgaJpZM4Gpk-J
.

-
๋ฌธ์•ˆ ์ธ์‚ฌ,

Danny Mexen.

@DannyMexen.
ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐ›๊ณ  ๋“ค์—ฌ ์“ฐ๊ธฐ๊ฐ€ ์ž˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

Microsoft๋Š” GitHub๋ฅผ ์ธ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค!
๊ทธ๋Ÿฌ๋‚˜์ด ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ!
๋กค!

ํ—‰
์ž˜ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์„ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์‹œ๋„ํ•˜๋“  PHP ํŒŒ์ผ์—์„œ HTML ์ฝ”๋“œ๋ฅผ ํ˜•์‹ํ™” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

2018 ๋…„ 6 ์›” 4 ์ผ ์›”์š”์ผ ์˜ค์ „ 11:00์— venoel [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

@DannyMexen https://github.com/DannyMexen .
ํƒœ๊ทธ์— ๋Œ€ํ•œ ์ œ์•ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐ›๊ณ  ๋“ค์—ฌ ์“ฐ๊ธฐ๊ฐ€ ์ž˜ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-394283911 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APewuVJC1tDUt9qWZ2Hjn76-NEQjSC15ks5t5PdBgaJpZM4Gpk-J
.

-
๋ฌธ์•ˆ ์ธ์‚ฌ,

Danny Mexen.

VSCode์—๋Š” ํŠน์ • ํŒŒ์ผ ํ˜•์‹์— ๋Œ€ํ•ด ๋‘ ๊ฐ€์ง€ ์ด์ƒ์˜ ์–ธ์–ด ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ด ์žˆ์–ด์•ผ ๋ชจ๋“  ํŒŒ์ผ ํ˜•์‹์— ๋Œ€ํ•ด ๋™์‹œ์— ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ฐ ์ง€๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ๋„ ํ•˜๋‚˜์˜ VSCode ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์–ด ๋ชจ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์žˆ์Šต๋‹ˆ๋‹ค. Honeslty ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๊ฒฐ์ฝ” ์ž‘๋™ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์ด์ „์— ์ž‘๋™ ์†”๋ฃจ์…˜์œผ๋กœ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ํ™•์‹คํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์ดํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

"files.associations": {
    "*.phtml": ["html", "php"]
}

์˜ˆ, @SharakPL์— ์™„์ „ํžˆ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ฃผ์–ด์ง„ ์‘๋‹ต์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ
์ œ๊ฐ€ ์—ฌ๊ธฐ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋˜‘๋˜‘ํ•œ ์‚ฌ๋žŒ๋“ค์€ ๊ทธ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ตฌํ˜„ํ•  ๊ฒƒ. ๋‚˜๋Š” ์Šค์Šค๋กœ ํ•  ์ˆ˜์žˆ์„๋งŒํผ ์ •ํ†ตํ•˜์ง€๋Š” ์•Š์ง€๋งŒ
์˜ˆ๋ฅผ ๋“ค์–ด ST3์—์„œ๋Š” ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ๋ชจ๋“  ๊ณณ์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ.

2018 ๋…„ 6 ์›” 6 ์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 9์‹œ 33 ๋ถ„์— SharakPL [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

VSCode์—๋Š” 2 ๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ์˜ต์…˜์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ตฌ๋ฌธ ๊ฐ•์กฐ ๋ฐ ์ง€๋Šฅ์ ์ธ
๋™์‹œ์—. ์ง€๊ธˆ๋„ VSCode ์ธ์Šคํ„ด์Šค 1 ๊ฐœ๋กœ
์–ธ์–ด ๋ชจ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋‹ค๋ฅธ ํŒŒ์ผ์—๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. Honeslty ๋‚˜๋Š”ํ•˜์ง€ ์•Š๋Š”๋‹ค
๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์™œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ด์ „์— ๊ทธ๊ฒƒ์„
์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๊ฒฐ์ฝ” ์ž‘๋™ํ•˜์ง€ ์•Š์ง€๋งŒ ์ž‘๋™ํ•˜๋Š” ์†”๋ฃจ์…˜์ด์ง€๋งŒ ํ™•์‹คํžˆ
ํ• ๊นŒ์š”:

"files.associations": {
"* .phtml": [ "html", "php"]
}

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-395187031 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/APewuQ4MZdnzRvFyDZC2LSkhfPLVHt7Wks5t6C6XgaJpZM4Gpk-J
.

-
๋ฌธ์•ˆ ์ธ์‚ฌ,

Danny Mexen.

@DannyMexen ๋„ ๋ฉ”๋ชจ์žฅ ++์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. 2018 ๋…„์ด๊ณ  vscode์—๋Š” ์—ฌ์ „ํžˆ์ด ๊ธฐ๋Šฅ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋ฏธ์ณค์–ด.

_์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ์œผ์‹ญ์‹œ์˜ค. ์ ˆ๋Œ€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค ._

@bsienn ์„ค๋ช…์— ๊ด€์‹ฌ? ๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜์žˆ๋Š” ๊ฒƒ์ด VSCode์—์„œ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

@SharakPL ์„ค๋ช…? 3 ๋…„ ๋œ DEAD ์Šค๋ ˆ๋“œ๋ฅผ ์ฝ์œผ์‹ญ์‹œ์˜ค. ๊ทธ๊ฒƒ์€ ์ผ์–ด๋‚˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ๊ณ  ์„ค๋ช… ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ emnet๋ฅผ ์‚ฌ์šฉํ•˜๋Š” PHP์— emnet, HTML์„ ๊ฑฐ๊ธฐ์— @bsienn .. ๊ทธ๊ฒƒ์„ ๋ฐฐ์šฐ๋ ค๊ณ  https://docs.emmet.io/ ... ์–ด์จŒ๋“  ์ผํ•˜๊ณ ์žˆ์–ด์ฃผ์„ธ์š” ...

@bsienn ์ด ๋‚˜์—๊ฒŒ ์ด๊ฒƒ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์™œ ํฌ๊ธฐ ๊ฐ€์ด ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€๋ฉ๋‹ˆ๊นŒ?

@benyaminl emmet์€ ๊ดœ์ฐฎ์ง€ ๋งŒ ์ƒˆ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํƒœ๊ทธ๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•  ๋•Œ, ์ฆ‰ ๋งํฌ์— ์†์„ฑ์„ ์ถ”๊ฐ€ ํ•ด์•ผ ํ•  ๋•Œ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์•„ ํ•˜ํ•˜ํ•˜ ๋ฌด์‹œํ•˜๋ คํ–ˆ๋˜ ์ƒ๊ฐ์ด์•ผ .. ์–ด์จŒ๋“  ์‚ฌ์‹ค์ด์•ผ. ์•„์ง๋„
๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

My Asus Pegasus X005์—์„œ ๋ณด๋ƒ„

Pada tanggal Kam, 2018 ๋…„ 6 ์›” 14 ์ผ 19.26, SharakPL [email protected]
menulis :

@bsienn https://github.com/bsienn ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
์ด ์Šค๋ ˆ๋“œ๋ฅผ ๋‹ซ์•„์•ผํ•˜๋Š” ์ด์œ  ์—ฌ์•ผํ•ฉ๋‹ˆ๊นŒ?

@benyaminl https://github.com/benyaminl emmet์€ ๊ดœ์ฐฎ์ง€ ๋งŒ
์ƒˆ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํƒœ๊ทธ๋ฅผ ํŽธ์ง‘ํ•ด์•ผ ํ•  ๋•Œ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋งํฌ์— ๋Œ€ํ•œ ์ผ๋ถ€ ์†์„ฑ <# m_4226514043244462616_issuecomment-359139115>,
php ํŒŒ์ผ์—์„œ html์— ๋Œ€ํ•œ ์ง€๋Šฅ ์ด

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/Microsoft/vscode/issues/670#issuecomment-397275321 ,
๋˜๋Š” ์Šค๋ ˆ๋“œ ์Œ์†Œ๊ฑฐ
https://github.com/notifications/unsubscribe-auth/ACr9NMadCpzlgPV4BjF9uM2kTA4DlOz-ks5t8lZdgaJpZM4Gpk-J
.

Intellisense์— ๋Œ€ํ•ด ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ์ฝ์—ˆ์œผ๋ฏ€๋กœ Brackets.io๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VS Code๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์ด ๋‚˜๋ฅผ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค. 3 ๋…„ ๋™์•ˆ ๋Œ์•„๊ฐ€๊ณ  ์•„๋ฌด ์ผ๋„ํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด ๋ฌด์„ญ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋Ÿฌ๊ทธ์ธ์ด๋‚˜ .html ์ž๋™ ์™„์„ฑ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด .php ํŒŒ์ผ์„ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹น์‹ ์˜ ๋„์›€์„ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?
html + css + js๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜๋Š” html ํŒŒ์ผ์—์„œ ํ˜ผํ•ฉ ํŽธ์ง‘์„ ์œ„ํ•ด ๋™์ผํ•œ ๊ตฌํ˜„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ์€ ํ™•์žฅ API์—์„œ ํŒŒ์ผ ๋ฐœ์ทŒ๋ฅผ๋ณด๊ณ  ์„ ํƒํ•œ ์–ธ์–ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PHP์˜ ์ค‘์ฒฉ ๋œ HTML์— ์งœ์ฆ์ด ๋‚ฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ html.format ๋ฐ PHP์˜ Format HTML์— ๋Œ€ํ•œ ํŽธ์ง‘๊ธฐ ํ˜•์‹์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜•์‹์„ ์ง€์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‚˜๋Š” ์™„์ „ํ•œ ์ž๋™ ์™„์„ฑ์„ ์–ป์Šต๋‹ˆ๋‹ค.

@ RiFi2k ์•ˆ๋…•ํ•˜์„ธ์š”! ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜๋ ค๊ณ ํ•˜์ง€๋งŒ ์ €์—๊ฒŒ๋Š” ์•„๋ฌด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์—์„œ์ด ํ™•์žฅ์— ๋Œ€ํ•ด ํ•  ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค.

@BxDev ์•ˆ๋…•ํ•˜์„ธ์š”! ๊ทธ๋ž˜์„œ ๋‹น์‹ ์€
html.format.enable = true
editor.formatOnSave = true
html ํ˜•์‹ ๋˜๋Š” ์›ํ•˜๋Š” ํŽธ์ง‘๊ธฐ ํ˜•์‹๊ณผ ๊ด€๋ จ๋œ vscode์˜ ๊ธฐํƒ€ ์„ค์ •์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ .php ํŒŒ์ผ์—์„œ ์ค‘์ฒฉ ๋œ HTML์˜ ํ˜•์‹์„ ์ง€์ •ํ•˜๋ ค๊ณ ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ ๋œ .php ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

<?php
$hi = true;

?>
<div class="correct-formatting">
                                     <div class="wrong-formatting">
</div>
</div>

์ €์žฅํ•  ๋•Œ HTML div์˜

์—ฌ์ „ํžˆ ๋ฌธ์ œ๊ฐ€์žˆ๋Š” ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋„๋ก ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

@ RiFi2k ๋‹ต์žฅ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๋‚˜๋Š” ์ด๊ฒƒ์„ ์‚ฌ์šฉ์ž ์„ค์ •์— ์”๋‹ˆ๋‹ค.
"html.format.enable": true, "editor.formatOnSave": true
๊ทธ ํ›„, ๋‚˜๋Š” ๋‹น์‹ ์˜ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ PHP ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ์ง€ ๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค :-(
l213wgru87dzrr

@BxDev ์‚ฌ์‹ค ๊ทธ๊ฒƒ์€ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์„ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

<?php
$hi = true;

?>
<div class="correct-formatting">
                                     <div class="wrong-formatting">
</div>
</div>

...์—

<?php
$hi = true;

?>
<div class="correct-formatting">
        <div class="wrong-formatting">
        </div>
</div>

๊ทธ๊ฒŒ ๋‹ค์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ํ˜ผ๋™ํ•˜์ง€ ์•Š์•˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@ RiFi2k ohh yeea :) ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์–ป์—ˆ๋‹ค :) ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €์—๊ฒŒ์žˆ์–ด ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฒƒ์€ ํ˜ผํ•ฉ ๋œ php / html / js / css ๋ฌธ์„œ์˜ ํ•˜์ด๋ผ์ดํŠธ ์Œ ํƒœ๊ทธ์ž…๋‹ˆ๋‹ค. ์ž‘์—… ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ 3 ๋…„ ๋œ ๋ฌธ์ œ์ด๋ฉฐ ๊ฒฐ์ฝ” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ํŽธ์ง‘์ž์—๊ฒŒ์žˆ์–ด์„œ ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ์ด๋ฉฐ, ์ผ์ƒ์ ์ธ ์ž‘์—…์„ ์—„์ฒญ๋‚˜๊ฒŒ ์งœ์ฆ๋‚˜๊ฒŒ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ ์ตœ๊ทผ์— VScode๊ฐ€ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์ง€๋งŒ ํ•ต์‹ฌ ๋ฌธ์ œ๋ฅผ ๋ฌด์‹œํ•จ์œผ๋กœ์จ ๋’ค๋กœ ์ด๋™ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋Š๋ผ๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ๋„ ST3๋กœ ๋‹ค์‹œ ์ „ํ™˜ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@TheDutchCoder ์š”์ฆ˜์—๋Š” ์•„๋ฌด๋„ PHP๋ฅผ ์ฝ”๋”ฉํ•˜๊ณ  ์‹ถ์–ดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. :๋””

@steebcheen ์ฃผ์ œ๋ฅผ ๊ณ„์† ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ

@Tyriar ์–ด์จŒ๋“  ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด๊ฒƒ์„ ์œ„ํ•ด ํ• ๋‹น ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๊นŒ?
ํŽธ์ง‘ : ์˜ค ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค .. ์ข‹์•„

@ RiFi2k ์•ˆ๋…•ํ•˜์„ธ์š”, ๋„์™€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ํ™•์žฅ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ณต ํ•œ ์„ค์ •์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์ฃผ์‚ฌ์œ„๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์‚ฌ์šฉ์ค‘์ธ PHP ํฌ๋งทํ„ฐ์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๊นŒ? ์ฒ˜์Œ์— PHP ํ˜•์‹ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ™•์žฅ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๊นŒ?

์ข‹์•„์š”, ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ : ์ €์žฅ์‹œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค! ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ์ปจํ…์ŠคํŠธ ๋ฉ”๋‰ด์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ณต์ •ํ•œ ํƒ€ํ˜‘์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค :)

๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋‚ด ์ทจํ–ฅ์—๋งŒ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. HTML ์ฝ”๋“œ๋ฅผ PHP์— ์„ž์—ˆ์„ ๋•Œ ํ˜•์‹์€ ํƒญ์„ ๋ˆŒ๋ €์„ ๋•Œ ํƒญ ํฌ๊ธฐ๊ฐ€ 4๋กœ ๋œ ๋‹ค์Œ ์ƒˆ ํƒญ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ •๋ง ์ง€์ €๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ํƒญ ํฌ๊ธฐ๋Š” 2์ž…๋‹ˆ๋‹ค. VSC ๋กœ์˜ ์ „ํ™˜์—์„œ. ์ง€๊ธˆ์€ ST3์— ๋จธ๋ฌผ๋Ÿฌ์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@thanasisHS ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ํ™•์žฅ์€ ์ €์žฅ์‹œ ํ˜•์‹์ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋˜๋ฉฐ ์‹ค์ œ PHP ํฌ๋งทํ„ฐ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š๊ณ  onBeforeSave์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‚ด ์ „์ฒด ๊ตฌ์„ฑ์„ ๋ช‡ ๊ฐ€์ง€ ์š”์ ์œผ๋กœ ๊ฒŒ์‹œํ–ˆ์œผ๋ฉฐ ์™„๋ฒฝํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ๋ช‡ ๋‹ฌ์ด ๊ฑธ๋ ธ์Šต๋‹ˆ๋‹ค. ํ˜•์‹ํ™”๋ฅผ ์œ„ํ•ด PHPCBF๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 300 ๊ฐœ์˜ ์„ค์น˜ ๋งŒ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋ชจ๋“  ์ฃฝ์€ phpcbf ํ™•์žฅ์˜ ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ณ‘ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ˆ์ž…๋‹ˆ๋‹ค.
https://marketplace.visualstudio.com/items?itemName=ValeryanM.vscode-phpcbf

๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋‚ด ๊ตฌ์„ฑ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ์— ๋‚ด ์š”์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. php, js, scss, css, vue-eslint, stylelint, phpcbf, phpcs, prettier๋กœ ์ž๋™ ์„œ์‹ ์ง€์ • ๋ฐ linting์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์„ค์ •์„ ์™„๋ฃŒํ•˜๋ฉด ๋น„ํŠธ์ž…๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ
https://gist.github.com/RiFi2k/d43e84788b1798252f30cac28b6f6eda

๊ณ„ํš
https://gist.github.com/RiFi2k/42e294f3785bdbbc2641c4b18955e16f

๋ชจ๋“  dotfile, composer.json, package.json, php ๊ทœ์น™ ์„ธํŠธ
https://gist.github.com/RiFi2k/8b753d1f12a36760f3ee6e1322daf708

์ด ๋ฌธ์ œ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ์„ค๋ช…์—์„œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ. ์ฝ”๋“œ๋Š” ๋งค์ผ ์ ์  ๋” ๋ง ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Microsoft์—์„œ์ด ๋ชจ๋“  FOSS ์ด๋‹ˆ์…”ํ‹ฐ๋ธŒ์— ๋Œ€ํ•ด ๋ฉ‹์ง€๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋…๋ฆฝ์  ์ธ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ Github ๋ฐ Azure๋ฅผ ๊ด‘๊ณ ํ•˜์—ฌ ์ˆ˜์ต์„ ์ฐฝ์ถœํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.

@ jens1o ํ˜ผ๋ž€ ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.์ด ๊ฒฐ์ •์€ OSS ์ƒํƒœ๊ณ„ ์œก์„ฑ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฐธ์กฐ ๋œ ํ™•์žฅ์€ OSS ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋” ์ข‹๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์„ธ์š”. VS Code ํŒ€์˜ ๋ฆฌ์†Œ์Šค๋Š” ๋ฌด์ œํ•œ์ด ์•„๋‹™๋‹ˆ๋‹ค.

๋˜ํ•œ ์šฐ๋ฆฌ ์˜ ํ–‰๋™ ๊ฐ•๋ น์„ ์žŠ์ง€ ๋งˆ์‹œ๊ณ  ์ •์ค‘ํ•˜๊ฒŒ ์†Œํ†ตํ•ฉ์‹œ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ํ™•์‹คํžˆ ์›ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์ž‘์—…๋ณด๋‹ค ์ž‘์—…์˜ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” "๋ฌธ์ œ ๊ฐ์†Œ"์™€ "๋ฒ”์œ„ ์™ธ", ๊ทธ๋ฆฌ๊ณ  ์˜ค, ์˜ˆ, "์ œํ•œ๋œ ์ž์›"(์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์—ฌ๊ธฐ์—์žˆ๋Š” ์ด์œ ์ž…๋‹ˆ๋‹ค) ๋งŒ ๋“ฃ์Šต๋‹ˆ๋‹ค. ๊ณง ์˜ค์ง€ ์•Š์„ ์ผ์— ๋Œ€ํ•ด ๋ถˆํ‰ํ•˜๋Š” ์‚ฌ๋žŒ์€ ์—†์ง€๋งŒ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์š”๊ตฌ์— ์กฐ๊ธˆ ๋” ์ง‘์ค‘ํ•˜๋ฉด ํ™•์‹คํžˆ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„๋ฌด๊ฒƒ๋„ ์˜ค์—ผ์‹œํ‚ค์ง€ ์•Š๋”๋ผ๋„ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•ด์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ œ ๋ˆˆ์—๋Š” ์ฝ”๋“œ ๋กœ๋“œ๋งต์ด 2 ๋ฒˆ์˜ ๋ฐ˜๋ณต์„ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” ์œ ๋ฃŒ ๋ฐ ํƒ€์‚ฌ ์ œํ’ˆ (์˜ˆ : GitHub, ์†Œ์œ )์„ ํ†ตํ•ฉํ•˜์—ฌ ๋งค์ผ Build(); ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฐ๋ชจ ์ดํ›„๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Microsoft).

์ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋” ์ด์ƒ ํ™˜์˜๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (์†”์งํžˆ ์‹ค๋งํ•ฉ๋‹ˆ๋‹ค), ์–ด๋–ค ์‹ ์œผ๋กœ๋“  ๋‹น์‹ ์„ ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๊ฒฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์—ฌ๊ธฐ์„œ COC๋ฅผ ์ฐธ์กฐ ํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ณต๊ฐœ ํ† ๋ก ์„ํ•˜๋Š” ๊ฒƒ์€ FOSS ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ COC์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์šฉํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜๊ฒฌ ๋ถˆ์ผ์น˜ ์ดํ•ด

๋‚˜๋Š” ๋‹น์‹ ์ดํ•˜๋Š” ์ •์น˜์— ๋™์˜ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์ด ๋‚˜๋ฅผ ํ์‡„ํ•˜๋ ค๋Š” ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์™œ ๋‹น์‹ ์˜ ์ •์น˜๋ฅผ ๋ฐ”๊พธ ์—ˆ๋Š”์ง€ ์ดํ•ดํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@egamma ์ด ๋ฌธ์ œ๋ฅผ ์ข…๊ฒฐํ•˜๋Š” ์ด์œ ๊ฐ€ ํ•ฉ๋ฆฌ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Visual Studio ์ฝ”๋“œ๊ฐ€ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ฆ‰์‹œ ์ œ๊ณต ํ•  ์ˆ˜์—†๊ณ  ์ œ๊ณตํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, PHP ์–ธ์–ด์— ๋Œ€ํ•œ HTML ์ง€์›์€ PHP ํŽธ์ง‘๊ธฐ์˜ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค. PHP์˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์€ ํ™•์žฅ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ œ๊ณต๋˜์–ด์•ผํ•˜์ง€๋งŒ์ด ๊ธฐ๋Šฅ์€ ์ œ๊ณต๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ํŽธ์ง‘๊ธฐ๊ฐ€์ด ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์ธ Notepad ++์—๋„์ด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ PHP ๋ฌธ๋ฒ•์˜ ์ผ๋ถ€์ด๋ฉฐ PHP ์—†์ด๋Š” PHP๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŽธ์ง‘์ž๋Š”์ด ๊ธฐ๋Šฅ์—†์ด PHP๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ๋งํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. PHP๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ฝ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

HTML ํŒŒ์ผ์˜ Javascript๊ฐ€ ์ž˜ ์ž‘๋™ํ•˜๊ณ  HTML์˜ CSS๊ฐ€ vscode์˜ ํ™•์žฅ์ž์—†์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? vscode์—๋Š”์ด ๊ธฐ๋Šฅ์ด ์žˆ์ง€๋งŒ PHP ์šฉ์œผ๋กœ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€๋Š” ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ถˆ๊ณตํ‰ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์€ PHP ์‚ฌ์šฉ์ž์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ, ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ์ ์ด๊ณ  ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์–ป๋Š” ๋ฐ ๋„์›€์ด๋˜๋Š” ํ™•์žฅ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์‚ฌ์šฉ์ž๋Š”์ด ํŽธ์ง‘๊ธฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•˜๊ณ ์ด "๋ฒ„๊ทธ"๋ฅผ ์ฐพ์€ ๋‹ค์Œ ์ฆ‰์‹œ ์ œ๊ฑฐํ•˜๊ณ  vscode์— ๋Œ€ํ•ด ๋งค์šฐ ๋‚˜์œ ์ธ์ƒ์„๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์—ฌ๊ธฐ์„œ ์•„๋ฌด ๋ง๋„ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์˜๊ฒฌ์„ ๋‚˜๋ˆ„๊ณ  ์‹ถ์€ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” vscode๊ฐ€ ๋” ๋‚˜์•„์ง€๊ธฐ๋ฅผ ์ง„์ •์œผ๋กœ ์›ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์—†์ด PHP ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋Š๋‚Œ์€ ์ •๋ง ๊ณ ํ†ต ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ๋ธ”๋ก์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜์—†๊ณ  html ํƒœ๊ทธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ธ๊ฑฐ๋‚˜ ํŒŒ์ผ ํ˜•์‹์„ php์—์„œ html๋กœ, ๊ทธ๋ฆฌ๊ณ  html์—์„œ php๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ณ€ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ vscode์—์„œ ์‹œ๋„ํ•œ ๋‹ค๋ฅธ ๋ชจ๋“  ์–ธ์–ด๋Š” ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ทธ๋ ‡๊ฒŒ ๋‚˜์œ ๊ฐ์ •์„ ๊ฐ–์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์—๋งŒ ๊ด€์‹ฌ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•ด ๊ณ ๋ คํ•˜๊ณ  ๋ฌด์–ธ๊ฐ€๋ฅผํ•˜์‹ญ์‹œ์˜ค. ์•ฝ๊ฐ„์˜ ํ•˜์ด๋ผ์ดํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์Šต๋‹ˆ๋‹ค.

  • HTML์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ๋ณธ ์ง€์›์„ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜
  • ์ด ๊ธฐ๋Šฅ๊ณผ ํ•จ๊ป˜ ๊ณต์‹ ํ™•์žฅ์„ ์ œ๊ณตํ•˜๊ณ  PHP๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ž๋™์œผ๋กœ ์„ค์น˜
  • ๋˜๋Š” ๋ชจ๋“  PHP ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ฐ„๋‹จํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ณ  ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ๊ถŒ์žฅ ํ™•์žฅ์„ ์„ค์น˜ ํ•œ ๋‹ค์Œ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ vscode๊ฐ€ ์‹ค์ œ๋กœ PHP๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋กํ•ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. @popcorner ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ PHP ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ•„์ˆ˜์ ์ด๋ฉฐ WordPress๊ฐ€ ์ธํ„ฐ๋„ท์˜ 30 % ์ด์ƒ์„ ์ง€์›ํ•˜๊ณ  ๊ฑฐ์˜ ๋ชจ๋“  ํ…Œ๋งˆ ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ชจ๋“  ํ…œํ”Œ๋ฆฟ ํŒŒ์ผ์— HTML์ด ์ค‘์ฒฉ ๋œ PHP๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๊ฒƒ์„ ํ•„์š”๋กœํ•˜๋Š” ์—„์ฒญ๋‚˜๊ฒŒ ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ €๋Š” ์‹ค์ œ๋กœ์ด ๋ชจ๋“  ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด ์—ฌ๋Ÿฌ ์„œ์‹ ํ™•์žฅ๋ช…์„ ๋™์‹œ์— ๋“ฑ๋ก ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ทธ ํ›…์—๋Š” ์ผ์ข…์˜ ๊ฒฝ์ฃผ๊ฐ€ ์žˆ์œผ๋ฉฐ ์˜ค์ง ํ•œ ์‚ฌ๋žŒ ๋งŒ ์ด๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์–ธ์ œ ์–ด๋–ค ๊ฒƒ์„ ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋Š”์ง€, ์–ด๋–ค ๊ฒƒ์ด ์‹ค์ œ๋กœ ์‹คํ–‰๋˜์—ˆ๋Š”์ง€๋ฅผ ์‚ฌ์šฉ์ž๋กœ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ PHP ํŒŒ์ผ์˜ ๊ฒฝ์šฐ HTML์„ ํ†ตํ•ด PHP ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํ˜•์‹ ์ง€์ • ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํฌ๋งท ํ™•์žฅ์„ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ณ  ํ›… ์ˆœ์„œ ๋‚˜ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด ์žˆ๋‹ค๋ฉด PHP์™€ HTML์„ ๋“ฑ๋กํ•œ ๋‹ค์Œ ์ฒซ ๋ฒˆ์งธ / ๋งˆ์ง€๋ง‰์œผ๋กœ ์‹คํ–‰ํ•  ์šฐ์„  ์ˆœ์œ„ / ์ˆœ์„œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์ด ์ „์ฒด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1 ๋‹จ๊ณ„ PHPCBF ๋˜๋Š” ์œ ์‚ฌํ•œ PHP ํ˜•์‹ ํ™•์žฅ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ๋‹จ๊ณ„ ๋Š” js-beautify html ํ˜•์‹ํ™”๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.์ด ํ˜•์‹์€ ์–ด์จŒ๋“  ๋ชจ๋“  PHP๋ฅผ ๊ฑด๋„ˆ ๋›ฐ๊ณ  HTML ๋งŒ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์ธ PHP์—์„œ HTML ํ˜•์‹ํ™”์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ ์„œ์‹ ๋“ฑ๋ก์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  onBeforeSave๋ฅผ ์‹คํ–‰ํ•ด์•ผํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ํ•ด๊ฒฐ์ฑ…์ด ๋  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์š”์•ฝํ•˜์ž๋ฉด ๋งค์šฐ ํ•„์š”ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์œ„์˜ ์•„์ด๋””์–ด๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์‚ฌ์šฉ์ž์™€ ํ™•์žฅ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ์–ธ์–ด์™€ ํ˜•์‹์— ๋Œ€ํ•ด ๋” ๋‚˜์€ ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰