PHP Development Tools for Windows

Developing applications with PHP requires an extensive set of development tools more than what the default PHP installation provides. Being a cross platform open source scripting language it becomes necessary to compile and run PHP scripts on any computer, thus creating more demand for its development tools.

We need various quality of tools to develop different types of applications ranging from light weight scripts to highly complex and highly secure objectives. A few good and popular PHP development tools for windows are Apache web server, MySQL database engine, Subversion source control systems, ImageMagick image processing software, NetBeans IDE, FileZilla FTP client and many others. In this article i have included integrated tools for development.

Faker

Image result for phpspreadsheet

Faker is a PHP library to generate fake data. When testing, we often create records by randomly typing in some keystrokes in the place of real data. This approach might work for forms, but it will not be very aesthetic when doing demos. And you can’t actually check how the UI would look with real data. Faker solves this problem by letting us generate fake data of different types. It also lets us use those to populate our database.
Faker supports integrating with popular ORMs such as Doctrine, Eloquent, Mandango. So, it will be really easy to populate the database without having to write many queries. It supports a lot of different types of data that is required for any non-trivial projects.

PhpSpreadsheet

This is a successor to the popular spreadsheet library called PHPExcel. This is written in pure PHP without any additional dependencies. It provides you with classes that can be used to read and write popular spreadsheet formats given below.

  • CSV
  • Microsoft Excel(xlsx)
  • LibreOffice Calc(ods)

ALSO READ: Developing an Express Application Using TypeScript

Adminer

Adminer is a database management system that is claiming to be the best alternative for the popular PHPMyAdmin tool. PHPMyAdmin can be quite heavy and slow at times and I haven’t felt any of those issues with Adminer when I used it.
The main selling point of adminer is that it is written in a single file and lighter than PHPMyAdmin. Other features that are better than PHPMyAdmin are below,

  • Adminer supports different database engines such as MySQL, SQLite, PostgreSQL, MS SQL, Oracle.
  • It is not possible to alter a view in phpMyAdmin, it must be dropped and recreated manually but it can be done in Adminer.
  • Adminer provides links to documentation for all SQL keywords and much more.

Sublime Text

Quick editing

I mentioned Sublime Text previously, and many coders use it as their primary development environment. It supports an almost legendary array of plugins and add-ons. I use Sublime as a quick editor when I want to edit project files outside of PhpStorm’s intrinsic project structure. It’s fast, responsive, and oh-so-geeky.View now at Sublime Text

SmartSVN

Committing files to the repo

Rather than use Git or Github, the WordPress plugin repository (where all sanctioned plugins are made available to WordPress users) uses the SVN source code control system. I find command-line SVN annoying, so I use a graphical UI called SmartSVN to send my files into the repository. It substantially reduces the chances I’ll make an error when posting a new build.View now at SmartSVN

iTerm2

Command line with panache

While I prefer using GUI interfaces for most functions in my development kit, I’m not one to fear dropping into the command line when it suits me. While it’s possible to get by with just the standard MacOS terminal, I prefer iTerm2. It provides split screens, command completion, paste history, and quite a bit more. It’s also configurable to fit both your mood and your project.View now at iTerm2

Shortcut Bar

Seconds saved with every click

This little Mac App Store gem is a handy tool for capturing quick items and accessing them from the Mac’s menubar. My biggest use is creating shortcuts to the admin and user pages of the various sites I’m working on. Rather than switching to a browser window and then invoking a bookmark, I just go to the menu, choose where I want to go, and the browser opens up.

This might seem like a minor feature, but when switching between IDE and browser thousands of times a day, those saved mouse movements really do add up. Because Shortcut Bar allows grouping, I also have links grouped for local and remote server testing locations.View now at Shortcut Bar

Parallels Desktop

Windows and Linux on Mac

Because I’m doing web development, I have to check my code on Windows-based browsers, which means I need to launch Windows 10 to test the new Edge, Chrome, Firefox, and — forgive me, Father, for I have sinned — IE11. Yeah, there are still IE11 users out there.

I mentioned Parallels Desktop in my intro to this article. I find the ability to run Windows, Mac, and Linux on the same machine to be hugely helpful in certain circumstances. That said, I’ve been running Windows on my upstairs office Mac, which is the one with the most speed and capacity. That machine is also the machine I use for video production.

My primary development machine is actually downstairs, next to the couch. This goes back to the days of when my dog was a pup, and he used to go through withdrawal when I worked in the office. Now, it’s quite pleasant to work with him on my lap, and I’ve set up a full workstation that allows me to sit in the living room and share my lap with both the keyboard and the dog.

That machine is a 2013 i7 iMac with 32GB of RAM. It’s ideal for development, but it’s just not fast enough for multiple streams of 4K video. It’s also no longer fast enough to really successfully host a Windows Desktop. Which brings me to…View now at Parallels

Screen Sharing and Microsoft Remote Desktop

Connect to remote machines

Even though my dev machine is downstairs and my video production machine is upstairs, I can work on either, no matter where I happen to be. I simply use the built-in Screen Sharing app from MacOS to connect to the remote machine.

When I want to connect into Windows from the downstairs dev machine, I use Microsoft Remote Access. This is a free download from the Mac OS App store, and provides a full remote interface into my Windows 10 machine. Be aware that if you plan to use Microsoft Remote Access, you need to be running Windows 10 Pro. Windows Home does not support remote access.

Oh, and in case you’re wondering why this setup doesn’t seem to have a mobile, programming-in-a-coffee-shop component, it’s simple: the pandemic. Once it became clear that all my coding work would be done at home, I consolidated my development onto a fixed machine with good capacity and optimized for gigabit Ethernet between the machines. If we were still living in the “old normal,” I’d have a much more cloud-centric implementation. I miss coffee shops.View now at Microsoft Remote Access

Sequel Pro

Clean GUI to MySQL data

My code does a lot of SQL work. As such, I need to be able to look at what’s been stored into the database. The easiest and fastest way for me to do that is not PhpMySQL, but a Mac-native app called Sequel Pro (which, wonderfully, conflates pancakes and data storage on its icon).

My most common use is to open a database table and search for “value contains” or “option_name contains” and look for the results. It’s fast and allows me to manipulate the data as part of my development process. I should point out that PhpStorm also has a database browser, but I find Sequel Pro to be more efficient for my use.View now at Sequel Pro

Forklift

A moderately uncranky SFTP client

It took me a long time to break my habit of using SFTP via the command line and SSH tunnels. But Forklift is a good substitute. It keeps a list of sites and logins, handles encryption, and provides a traditional drag-and-drop interface for moving batches of files.

View now at Forklift

Keyboard Maestro

Powerful app automation

Along with Final Cut Pro X, Keyboard Maestro is one of the Mac-only software tools that keeps me on a Mac. I first bought Keyboard Maestro in 2011, and I’ve been using it for a wide range of specialty scripts ever since.

It is an incredibly powerful cross-app scripting tool that’s also very easy to use. I regularly spin up special-purpose scripts to run a task that would otherwise take a long time. Some of my scripts are very powerful and cross multiple applications. Others, like the Stripe Fill Test in the screenshot, does one thing, over and over.

Let’s talk about that one. When developing the Stripe payment gateway for my donations plugin, I had to initiate a test payment, probably a thousand times. As I coded and tested and debugged, I had to fill in the same credit card fields with the same test data, over and over and over. A simple script in Keyboard Maestro did all that for me. Instead of hand-filling the data for every single pass, I just let Keyboard Maestro do it for me.

View now at Keyboard Maestro

Conclusion

When PHP needs to be installed on Windows, PHP developers should use their operating system’s package manager (see Installing PHP on Windows for details). For example, to install the latest version of PHP 5.6 on an Apache server running on BSD or Linux, you’d run:

Leave a Comment