So, what do you do when you've abandoned (not by choice, mind you) a project for 6 years, and a request comes in to resurrect it (and they're willing to pay)?
Step 1: locate the files.
So, when I got my first MacBook pro, I created a VM from my old windows laptop that contained all my development stuff and ran it with Parallels. Awesome! Over time I stopped using the VM as I got used to using Mac native applications.
Then I got a new MacBook with my recent job. I didn't copy over the VM's. A few months later the harddrive in my old mac started acting funky so I replaced it with another drive and a fresh MacOS for my wife.
Now I tried copying off that VM and it just wont work. So I went and dug up the original drive from that windows laptop. After waiting forever to copy off the source files, I wound up with an empty folder on my Mac. WTF? Yeah, no go after several attempts. So that drive is apparently bad too. It is 9 years old though.
Ah! Luckily I had a time machine backup of my old mac.. but it wasnt up to date, almost 2 years old. But I don't think I really did anything with the windows VM so the backup should be fine. Eureka, I've got my old system back.
Copy the source over. After another search I located some DB backups.
Step 2: remember how to set the system up.
I had a complicated, delicate system where there could be multiple code installations and client databases, along with a licence key server. Each install would check with the key server to get a key which contained usefull information like how many user logins were purchased, what the db name was, etc, or if the key was expired and the system could no longer be used by that client.
I had to remember how to configure the config.ini, how the key server worked, where the DB data for that was (since there was no template stored along with the code). I also had to remember my password. And that the database migrations needed to be run. etc.
After a day, I got it all running again. Amazingly, the gui seems to work just fine in a modern firefox. I guess my javascript and html wasnt that bad after all!
Step 3: Gag at the site of such old, clunky code.
The original code for this project was created with a development tool called CodeCharge Studio, which generates most of the boiler plate-like code for you, based on an existing database. At the time, this seemed like a great idea, and got the system running very quickly.
The code however is horrible. Its not using any framework beyond PHPLib, one of the very first code libraries for PHP. It works, but its not real extensible or flexible. It does work in the latest PHP with only a few minor fixes (my fault), so that's nice.
Since I don't want to be beholden to a Windows only dev, I'm just going to toss the notion of doing any further coding with CCS. If this client pans out and starts paying for the software, it will be time to refactor everything and convert over to a real, modern framework like Symfony or even ZendFramework.