Recent Blog Posts

2013-4-10 JetBrains PhpStorm and JetBrains WebStorm have their own separate resources. This WebIDE Blog is Closed

Dear friends,

For quite a while we have been sharing this blog and other resources for both PhpStorm and WebStorm IDEs. We came to the conclusion it’s time to let these products have their own separate resources. This way our visitors can get the most relevant information on the product they use without any distraction or inconvenience.

From this moment this blog is closed. No new comments or posts will be published in this blog. Everything already published will remain available.

From now on, please follow the new PhpStorm Blog and/or WebStorm Blog to get the most relevant information for the product you use.

Please note that @webide twitter channel is now renamed to @PhpStorm and will tweet only PhpStorm-related information. Make sure you follow us! All current followers of the former @webide twitter account don’t need to re-follow a new account, as they have been transferred automatically during the renaming process. WebStorm has got its own twitter account @WebStormIDE. Make sure you follow it if you want to get all the tweets on WebStorm IDE.

Also, if you find a good replacement for Google Reader, it is also a good idea to subscribe to PhpStorm blog RSS or WebStorm blog RSS to receive all blog updates immediately.

Plugin repositories are already separated, and discussion forums will be separated soon.

Develop with pleasure and follow the right JetBrains resources!
– Your PhpStorm Team & WebStorm Team

2013-4-5 PhpStorm 6.0.1 EAP build 129.177/196

We continue to refine the IDE and work on plugin APIs. This build addresses both aspects by implementing a much requested feature purely relying on php-openapi. It required numerous adjustments – and much more are still pending, but we have a great progress.

The generic Factory Method pattern support was added. By adding simple external metadata you can help IDE to deduce return types from the invocation arguments. This will reduce the number of required @var annotations in code employing the pattern, wich is quite common in modern frameworks. More info on using metadata.

The feature above is implemented using PHP open API. The introduced Extension Point also allows 3rd party plugin creators to provide type info automatically using framework’s established practices and configuration. The API is still highly unstable (and has already evolved since this build) but we will provide guidance. Check out tutorials on plugin development.

Other notable changes

  • PHP type inference for variables should now correctly work with Fluent Interface style call chains – again removing the need for @var annotations.
  • PHP completion for array indexes has been significantly improved
  • PHP inspection got a couple of new ones – division by zero and invalid string operation
  • Details on resolved tracker issues

Download PhpStorm 6.0.1 EAP for your platform and please report any bugs and feature request to out Issue Tracker. Automatic update via patch is also available.

Develop with pleasure!
-JetBrains Web IDE Team

2013-4-3 Working with Windows Azure SQL Database in PhpStorm

PhpStorm provides us the possibility to connect to Windows Azure SQL Database right from within the IDE. In this post, we’ll explore several options that are available for working with Windows Azure SQL Database (or database systems like SQL Server, MySQL, PostgreSQL or Oracle, for that matter):

  • Setting up a database connection
  • Creating a table
  • Inserting and updating data
  • Using the database console
  • Generating a database diagram
  • Database refactoring

If you are familiar with Windows Azure SQL Database, make sure to configure the database firewall correctly so you can connect to it from your current machine.

Setting up a database connection

Database support can be found on the right-hand side of the IDE or by using the Ctrl+Alt+A (Cmd+Alt+A on Mac) and searching for “Database”.

Opening the database pane, we can create a new connection or Data Source. We’ll have to specify the JDBC database driver to be used to connect to our database. Since Windows Azure SQL Database is just “SQL Server” in essence, we can use the  SQL Server driver available in the list of drivers. PhpStorm doesn’t ship these drivers but a simple click (on “Click here”) fetches the correct JDBC driver from the Internet.

Next, we’ll have to enter our connection details. As the JDBC driver class, select the driver. The Database URL should be a connection string to our SQL Database and typically comes in the following form:


The username to use comes in a different form. Due to a protocol change that was required for Windows Azure SQL Database, we have to suffix the username with the server name.

After filling out the necessary information, we can use the Test Connection button to test the database connection.

Congratulations! Our database connection is a fact and we can store it by closing the Data Source dialog using the Ok button.

Creating a table

If we right click a schema discovered in our Data Source, we can use the New | Table menu item to create a table.

We can use the Create New Table dialog to define columns on our to-be-created table. PhpStorm provides us with a user interface which allows us to graphically specify columns and generates the DDL for us.

Clicking Ok will close the dialog and create the table for us. We can now right-click our table and modify existing columns or add additional columns and generate DDL which alters the table.

Inserting and updating data

After creating a table, we can insert data (or update data from an existing table). Upon connecting to the database, PhpStorm will display a list of all tables and their columns. We can select a table and press F4 (or right-click and use the Table Editor context menu).

We can add new rows and/or edit existing rows by using the + and - buttons in the toolbar. By default, auto-commit is enabled and changes are committed automatically to the database. We can disable this option and manually commit and rollback any changes that have been made in the table editor.

Using the database console

Sometimes there is no better tool than a database console. We can bring up the Console by right-clicking a table and selecting the Console menu item or simply by pressing Ctrl+Shift+F10 (Cmd+Shift+F10 on Mac).

We can enter any SQL statement in the console and run it against our database. As you can see from the screenshot above, we even get autocompletion on table names and column names!

If we have multiple tables with foreign keys between them, we can easily generate a database diagram by selecting the tables to be included in the diagram and selecting Diagrams | Show Visualization… from the context menu or using the Ctrl+Alt+Shift+U (Cmd+Alt+Shift+U on Mac).

As you can see from the above screenshot, PhpStorm will generate a database diagram for the selected tables, displaying how they relate to each other.

Database refactoring

Renaming a table or column often is tedious. PhpStorm includes a Rename refactoring (Shift-F6) which generates the required SQL code for renaming tables or columns.

As we’ve seen in this post, working with Windows Azure SQL Database is pretty simple from within PhpStorm using the built-in database support.

Develop with pleasure!

– JetBrains Web IDE Team