Rapid PHP 2018

July 20, 2018 - A Quick Review of Blumentals' Rapid PHP IDE

Rapid PHP is one of a suite of four editors from Blumentals Software in Latvia. The four editors are actually variations of one editor (WeBuilder) from which features are stripped to create the other products. The family dates back to 2004.

At the bottom of the heap Is Rapid CSS at $50, capable of editing CSS and HTML. At $60 is HTMLPad, which adds JavaScript to the mix. $70 gets you Rapid PHP, supporting PHP and associated technologies such as SQL and Apache. At the top of the pyramid is the main product, WeBuilder, costing $90 and adding support for Ruby, ASP/.NET and Python. Upgrade prices are less; Rapid PHP's upgrade price is $50. Blumentals offers lower-cost Academic and personal licenses as well as volume pricing for multiple seats.

A special "team" license is available for some of the products. For Rapid PHP, a license for four (4) users is $180 with an upgrade price of $100.

When comparing pricing, the initial buy-in is one thing but the more important consideration is the long-term upgrade cost. Blumentals has been updating this suite about every two years, so an upgrade cost of $50 is $25 per year, a bargain in anybody's book.

Rapid PHP 2018 IDE
The Rapid PHP 2018 IDE in its default livery, the "Flat Blue" Interface Style.

This article focuses entirely on Rapid PHP and its capabilities. Because I have no need for Ruby, ASP/.NET or Python at the moment, I can't comment on WeBuilder's support for them. However, those interested in Rapid CSS or HTMLPad can be reasonably sure that comments here about how Rapid PHP handles CSS and HTML will apply to those lesser products.

Here are my overall conclusions.

Last year I bought Rapid PHP 2016 and upgraded this year to Rapid PHP 2018. I use it daily as my primary PHP editor. It has dramatically improved my PHP coding productivity and enhanced my CSS and JavaScript editing. For those reasons alone, I consider it an excellent product, more than worth its bargain price.

Despite the small size of the company, Blumentals has been responsive regarding support and feature suggestions. After the 2018 release, several quick updates to address problems were posted. You don't see that often.

I know that Rapid PHP is not the pinnacle of PHP tools. Nonetheless, I have absolutely no hesitation in recommending it.

And now, let's drill down a bit.

Notable New Features

There is a comprehensive list of new and improved features at Blumentals' Web site. Regrettably, most of it is fluff and a large number of the listed improvements are vaguely stated, without specifics. It is thus extremely hard to determine what has changed without long experience.

Here is my list of the most notable improvements.

Dark Visual Theme

I qualify as a senior citizen and my eyes are showing their age. I'm finding my preferred black on white displays much brighter than in the past, which is a combination of better displays and my age. Dark themes are in vogue, which I don't care about. However, I find that they are easier for me to work with.

Therefore, I appreciate having the dark themes and consider it an important improvement.

Rapid PHP's display is controlled in two ways, one called the "Interface Style," which cannot be controlled by the user other than by selecting a packaged style, and the other "color schemes," which the user can manage. These two are not integrated, something for possible improvement in the future.

High DPI Support

The changes in this category are designed to improve the visuals on larger displays with more dots per inch. This is primarily evident in the new set of icons. I don't have a high DPI display and I found the new icons low-contrast and "fuzzy," but the intent is good.

Automatic PHP Installation

With previous editions of Rapid PHP, installing an executable version of PHP was a separate task. It wasn't hard, but it was separate. Rapid PHP 2018 automatically installs PHP and configures Rapid accordingly, a very nice touch.

Unfortunately, the automatic install is for PHP 5.6. The world is PHP 7 or moving rapidly towards it. I therefore installed PHP 7.1 manually and configured Rapid myself.

Having the executable available is necessary to enable PHP syntax checking, so this is no small thing. Kudos to Blumentals for the automation but a slight ding for not moving to 7 and another small ding for not allowing the developer to choose.

Live PHP Syntax Checking

Rapid's previous strategy for live syntax checking was to check every time a line of code was added or deleted. This meant that if a line was edited and the file's line count did not change, no syntax check was invoked. It was awkward.

Now Rapid checks syntax when the cursor is moved away from a line that has changed (which incorporates line deletions and additions) and also when a file is saved. Checking on save handles the case where a line has been changed and the file is saved before the cursor moves off the line.

This very small change dramatically improves syntax checking for PHP and is an enormous improvement. I consider it the biggest improvement in Rapid PHP 2018 and worth the price of the upgrade by itself.

Syntax checking is not without its quirks. None are deal-breakers but the one that bothers me the most is that no changes were made to accommodate the dark interface styles, which means that the message about the syntax error is extremely difficult to see.

Bootstrap 3 & 4 Supported

Rapid PHP already provided support for a wide range of frameworks. Adding Bootstrap is important given the rabid interest in responsive Web sites. It's a plus.

The IDE

It isn't very hard to find competent PHP editors. An integrated development environment (IDE) is a different story. Microsoft's Visual Studio Code is garnering a lot of attention; while it is an excellent PHP editor, it lacks most of the project management features provided by products with a full IDE.

Rapid PHP is also missing some features, almost all of which force the developer to use another program to handle some publishing chores. I use Expression Web (because that's where I've come from) but if I didn't I would use FileZilla or some other third-party FTP program.

Rapid PHP 2018 IDE
The Rapid PHP 2018 IDE: File Explorer on the left and Code Explorer on the right (my preference, not the default), with the editor window in the middle. "Flat Dark" interface style shown. Click to enlarge.

Code Explorer

Rapid's greatest strength is the Code Explorer, a panel that alphabetically lists the names of everything in the current module. That, combined with search and a few other handy features for locating items of interest, results in excellent navigation through even large projects. The Code Explorer is probably the second most important contributor to my happiness after PHP syntax checking, especially when dealing with larger modules.

When switching modules, Code Explorer populates almost instantly. A common action is to use the Find Declaration tool to load the module containing the desired declaration, whereupon Code Explorer instantly shows the full context of that module. I find it a very effective way to move around in code. And it is very fast.

File Explorer

Rapid PHP's File Explorer is familiar, presenting the project (i.e., a file folder) as an expandable list of sub-folders. A such, it is hard to criticize.

However, it falls a bit short of the features needed by an IDE. I would not even mention such shortcomings except for the presence of a very huge problem, the absence of the ability to publish groups of files at one time. You may infer, correctly, that one file can be selected and published. But that's it.

When I say "publish," I mean uploading via FTP. I use the term publish because I am deeply imbued of the concept from FrontPage/Expression Web, where FTP is not the only available publishing target. For example, one can publish to another location on the local PC, a handy way to make backups.

What's missing? Here is what cannot be published:

  • A folder.
  • More than one file.
  • A collection of files and folders.
  • A collection of files/folders found as the result of a search.

I am very spoiled by the inclusion of these publishing options in past Microsoft products and I am frustrated by their absence in Rapid, especially because I think them all (except for search) relatively easy to implement.

Another missing feature is the ability to create new files via the context menu on files and folders. The "New..." feature on the context menu for files does not bring up the same dialog presented when choosing File | New (Ctrl+N) from the main menu.

If a file is open in Rapid and is changed in an outside program, Rapid provides a warning and asks if you want to update the open file. No such facility is present in the File Explorer; if the folder structure changes externally, File Explorer must be updated manually (F5).

I don't think it will take much work to dramatically improve File Explorer and I look forward to a more robust component in the next release.

Searching

I was chided in a post at the Blumentals forums for suggesting search as a way to accomplish a particular task. Search might not be sexy but it is powerful, flexible, and rapid.

A minor gripe about search is that it is split in two - Search and Find in Files. It's a very minor gripe fueled by years of using FrontPage and Expression Web, where search is integrated into a single, comprehensive dialog (admittedly missing one feature). One is not easier or quicker to use than the other; this is purely a matter of personal preference. One improvement I made was to assign a keyboard shortcut, co-opting Shift+Ctrl+F from Font (that's a relic of the past) to Find in Files.

Find in Files
Rapid's Find in Files dialog.
Find
Rapid's Find dialog.

Speaking to its long history, Rapid PHP still supports the F3 key as a way to jump to the next item found. I'm old enough to find that helpful.

Where search falls down is in the presentation and handling of search results.

First, location, location, location. Search results include the line and character number of each found item. If you subsequently edit the file, those results go stale. Rapid knows it because if you double-click a result to navigate to it after the file is changed, a bell is rung. I'm spoiled by editors that constantly update results when the module is edited.

Second, I am used to being able to take file actions using the search results list. For example, consider a global search and replace that results in changes to 50 files. An obvious next step is publishing those files, but there is no way to select them. I continue to use Expression Web for these kinds of searches.

I remain convinced that a unified search dialog is preferable to having two. At least that way Ctrl+F would get you everything.

"RapidSense"

AutoComplete and Code Intelligence (the latter being Blumentals' name for what most of us usually call IntelliSense and I have dubbed "RapidSense") is a valuable feature in any IDE. It is very good in Rapid PHP and it is a key reason why my productivity with PHP is so much higher in Rapid than it was in the past. It's another single feature worth the purchase price.

It does have a quirk in that it combines knowledge about your code (all of PHP and what it can learn about your code) with usage information. This is a bit tricky to explain; let me try with an example.

I have a class called "db_writer" that does what you would probably guess. I have a habit of naming an instance of the class $dbw. As expected, when I type

$dbw = new db_writer();
$dbw->

Rapid responds by showing me the methods and properties of db_writer. But if I just type

$dbw->

Rapid also shows me db_writer's properties and methods even though it has no context to know that $dbw refers to db_writer. There is only one explanation for this, which is that Rapid remembers usage. Sure enough, when Rapid displays its suggestions in this case it marks them as usage rather than as properties, methods, or constants.

The quirk is that it only shows usage. This can be confusing at first. When I first struggled with this I thought I was referencing the wrong thing because I did not see the methods I was expecting. Now that I finally understand it, I realize it helps me to know that I haven't provided the proper context.

Help

Why did I explain that RapidSense quirk above? Because Rapid's Help system is terrible.

Help is not included with the product as a Windows help file but rather links to Blumentals' Web site. That would be okay with me if the help site was any good. It's not nearly up to date and it is missing huge swaths of useful information, such as something that would explain RapidSense clearly. It appears that Blumentals has not updated the help system for a long time.

I suspect that this help system is rarely used, leading Blumentals to put its resources on more productive work. I can understand that; I'm not new to IDEs and perhaps the same can be said for most Rapid PHP users, so I don't need my hand held.

However, something like the RapidSense example above is a nuance. That is where help can be most valuable. Rapid's help is lowest common denominator stuff, not nuances.

Project Management

Rapid PHP has the rudiments of project management but it is not enough for me. Again, I'm spoiled by Microsoft tools and, in particular, Expression Web. It has been frustrating because I wanted to try to use Rapid as much as possible but I can't just yet. Rapid 2018 offers no improvements in this area.

A significant problem with Rapid is that it cannot launch multiple instances. Two projects (or more) can't be open at the same time.

On a good note, a devoted Blumentals fan and prolific extension author, Peter Klein (pmk65) came to the rescue with a brilliant new plug-in named Project Workspace. Peter was able to write the plug-in because of new features in Rapid 2018 that enable more complicated extensions, so indirect credit goes to Blumentals.

Functionally, the plugin is simple. When switching between projects, Project Workspace remembers the state of the IDE workspace before making the switch. When loading a previously-saved project, it restores that project's previous state. It thrashes a little bit; while disconcerting at first, the behavior is easily overlooked given the dramatic improvement the plug-in brings.

While not a complete solution to the missing project management features in Rapid, Project Workspace is a must-have. Don't use Rapid without it!

Side note: I've been writing about software since 1981. This is the first time I have recommended a third-party component as required to fill in gaps in the parent product.

Conclusions

The big problem with Rapid PHP is that it is not quite a comprehensive IDE. It is insufficient on its own for project work, at least for what I need. In my mind it will not take much to get the product to the next level but it remains short for now.

And it is important that Blumentals pushes to this next level. For whatever reason, PHP has not been a huge priority for the team behind Visual Studio Code (VSC); Microsoft seems more interested in Python. However, the distance between VSC and my holy grail of a PHP IDE is about the same as the distance Rapid PHP must travel. The danger, of course, is that VSC is free.

Rapid PHP has been an enormous boon to my PHP productivity and quality. I use it every day and would miss it if it was suddenly taken away. Combine that with its irresistible price and there is no question that Blumentals Rapid PHP is a winner. I have no reservations about recommending it.

 

Rapid PHP Editor Logo

 

Tags: PHP, Programming, Rapid PHP

A total of 10 related articles were found. See them all...