Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Align
alignright
HTML
Wiki Markup
{align:right}
{html}
<a href="https://twitter.com/share" class="twitter-share-button" data-via="phpstorm">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<span id="fb-root"></span>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<span class="fb-like" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false" style="position:relative;margin-left:-20px;top:-5px;"></span>
<script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>
<g:plusone size="medium"></g:plusone>
{html}
{align}
Note
iconfalse

Using a remote PHP interpreter instead of a local one lets us run our application and PHP-based tools on a production-like environment, be it the real production server or a virtualized one that uses a tool like Vagrant. Speaking of Vagrant, with remote PHP interpreters we can install only PhpStorm on our development machine, and run, debug and unit test our application on the Vagrant machine. In this tutorial, we'll see how we can work with remote PHP interpreters in PhpStorm.

...

Info

Please note that remote debugging with remote PHP interpreters is currently available for Xdebug only (not for Zend Debugger).

Wiki Markup
{hidden-data

...

}


h3. Composer and Remote PHP Interpreters

{color:#333333}PHP interpreter is a project setting in PhpStorm: it will be used for all actions that require the PHP executable, for example for running the various{color} [Composer|http://getcomposer.org] {color:#333333}commands. When a remote PHP interpreter is configured, the{color} [PhpStorm:Composer Support in PhpStorm] {color:#333333}may break because the remote PHP interpreter will potentially not have access to the project path on our development machine.{color}

Through *{_}Project Settings \| PHP \| Composer{_}*, we can specify the PHP interpreter to use for running Composer commands.

!composer-remote-interpreter.png!

Once configured, PhpStorm will use the remote PHP interpreter for commands that can be run remote, for example running PHPUnit tests, and a local interpreter for Composer.
{hidden-data}

PHPUnit and Remote PHP Interpreters

...

Local path

Path on the remote server

Web path (URL)

Pre
Wiki Markup
{pre}C:\Projects\wordpress-networkmarketing{pre}
Pre
Wiki Markup
{pre}/site/wwwroot/wp-content/plugins/jetbrains-networkmarketing{pre}
Pre
Wiki Markup
{pre}/wp-content/plugins/jetbrains-networkmarketing{pre}

In the case where multiple folders should be mapped, which is common for frameworks like Symfony2, Zend Framework, Laravel or CakePHP that typically make use of two main folders, we can configure additional mappings:

Local path

Path on the remote server

Web path (URL)

Pre
Wiki Markup
{pre}C:\Projects\MyProject\application{pre}
Pre
Wiki Markup
{pre}/site/application{pre}

 

Pre
Wiki Markup
{pre}C:\Projects\MyProject\public{pre}
Pre
Wiki Markup
{pre}/site/wwwroot{pre}
Pre
/
Wiki Markup
{pre}/{pre}

Note the warning shown is because the /application path has no web path specified, which in this setup is perfectly fine.

Note

Note that when folders match multiple relevant mappings, the nearest one is applied.

Align
alignright
HTML
Wiki Markup
{align:right}
{html}
<a href="https://twitter.com/share" class="twitter-share-button" data-via="phpstorm">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
<span id="fb-root"></span>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<span class="fb-like" data-layout="button_count" data-action="like" data-show-faces="true" data-share="false" style="position:relative;margin-left:-20px;top:-5px;"></span>
<script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>
<g:plusone size="medium"></g:plusone>
{html}
{align}