Stem your excitement! Time for an extremely boring technical post about the next version of Form Tools. Caffeine pills on standby!
I’ve dubbed it FT-Next partly to sound cool, and partly because I’m no longer sure if it’s going to be a 2.3 or 3.0.
So… I’ve been making a fair bit of progress the last couple of weeks. Currently I’m working on updating the core code. I have no estimates on how long it’s going to take, and the joy of not working for The Man is that I don’t have to provide one. Mwahah.
With FT-Next there will be two small functional improvements over previous versions:
- All language files will be included with the core. I really don’t know why I didn’t always do this; not including the language files has no benefit and it just adds an extra chore for non-English speakers having to manually install the language files. This’ll also allow me to simplify the custom build page.
- The install/ folder will no longer need to be manually deleted after installation. Again, there was no real technical reason the folder had to be deleted – it can be solved perfectly well via code, and that’s what FT-Next will do.
Whenever I find myself revisiting old code I find I have to resist the temptation to rewrite everything at once. (“Well I just have to change that… and that…. and that….”). With a codebase the size of FT that’s just not possible so I’m trying to focus on the essentials. My #1 goal right now is PHP 7 support but I’m finding I still have to do more changes that I anticipated.
- Smarty upgrade.
In order to support PHP 7 I need to update Smarty. This is the change that concerns me the most: Smarty underpins the entire Form Tools script – it’s not just used for the rendering of the HTML, but a lot of the internals – so I’m really going to have to confirm everything’s backward compatible and find a way to patch the pieces that aren’t. Because Form Tools allows customization of the Smarty logic in various places this will brook a great deal more thought.
The next version of Form Tools will use Composer for dependency management. Initially it’ll probably just be used to include Smarty, but down the road I may even use it for including the Form Tools modules, themes and API too. But to be clear: there will be no extra steps for installations: you’ll continue to download the single Form Tools package from the site and install in one go.
- Codebase being moved to OO.
Years ago I made a judgement call to write the application functionally, not object-oriented. I think it was the right call at the time (simple = good) but today I find there are too many benefits to object-oriented code. PHP grew up and has pretty decent support for all sorts of OO features and making use of them will simplify a great deal. This is something I’ve had on the docket for years and now’s the time. It will be a gradual upgrade.
- Backward compatibility.
This is my primary concern for the next release. I want it to be as backward compatible as possible. But I am requiring PDO with the PDO-MySQL extension installed for all installations. This has come standard with PHP installations for years so it’ll only affect a small minority of users. The minimum PHP version will be 5.3.
Misc other stuff
- I’m dumping global/library.php in favour of a global/code/Core.class.php file. That’ll contain all the various available application-wide settings like before, only no more globals. Now only the settings that can be overridden will actually be overridden. Sheesh, no more wild west…!
- The config.php content will change; I’m leaning towards using define() for all the various DB settings, etc. just to clean things up. But again, backward-compatibility is the name of the game so your old config.php file content will continue to work.
- Converting the database over to use PDO has gone pretty well so far. The one addition that needs to be tracked for the DB info is port. Seems like 3306 is the standard – so upgrading will give you that value by default. But depending on how things go – i.e. how extreme the changes are going to be – this may become a 3.0 release and I’ll release a pre-upgrade script to verify your system, verify settings etc. before you actually upgrade. Just to be safe.
- I may convert all language files to JSON… haven’t decided yet… that may be in a later version.
Anyway, things are plodding on. More posts to come, no doubt. 🙂
One week in, and the new site hasn’t completely melted yet! Hell, I’d consider that a triumph! 😉
Naturally I’ll continue to patch any bugs that come in, but I’ll soon be turning my attention to the actual Form Tools codebase, starting with….
PHP 7 support
By far the most important thing to address is getting Form Tools to run on PHP7. I’m sorry this has taken so long to address, but the site & moving to code to github had to come first. PHP7 dropped a few things, such as the database functions that Form Tools relies on, so I need to roll out updates to every module, the core and the API.
I’ll be starting with the System Check module (to let you know if you can safely upgrade) followed by the Form Tools core.
I’ll do a follow-up post (or maybe post on twitter) with how things are coming along.
Well it finally happened! The new site is up and running. Over the next few days I’ll be making a few more fixes and updates – but really just to get it to a point where everything’s once again working as expected.
This site update was a lot more than just a superficial style update, it’s actually the culmination of a mountain of work. I’ve posted about these changes before, but I think it’s worth bring up one more time.
- All Form Tools code now publicly available on github.
This is a massive change. Form Tools has always been open source but it was hidden away in an SVN repository, lacking visibility. And for a project of this size and scope that’s just not good enough. So, I’ve moved over all code to github where other developers can contribute to the codebase. This is absolutely vital for pushing the project along: it can’t always just be me writing the code.
- All documentation is now editable.
Previously the Form Tools documentation was in a closed database that only I could edit. Now on all documentation pages you’ll see an “EDIT” button that takes you to github to fix whatever typo I created, clarify the intent of what’s being said, or make whatever other change you think it needs. The entire documentation can also now be downloaded to run on your own computer, offline.
- The website has been completely rewired.
Any project that’s been around as long as Form Tools has a lot of accumulated chaos and noise going on behind the drapes. This new site throws out or rewrites a lot of old code, and now connects with the new github repos. In all honestly, it’s been a long, tedious process getting to this point, so despite its imperfections, it’s really great to see the new site out. 🙂
The upgrade and custom build scripts and currently offline. I’ll be working on getting those two back up tomorrow. Shouldn’t take too long – I’ll post about it on twitter.
Exciting times! Once I’ve done a little more housekeeping I’ll be making another post about what I’m planning for the project. Keep you posted.
Let me introduce you to the new site! There are still a few wrinkles to iron out, so bear with me another day or so then I’ll make a full post about it.
I’ll be putting up the new version of the website soon, to be found at a temporary URL where I can iron out the various bugs before going live. Part of this means copying over and updating the Form Tools website database to make it compatible with the new site – and that means halting any changes here.
So, this’ll be the last piece of news posted on the old site, and Form Tools accounts have been taken offline until the new site is released. Feel free to continue posting in the forums: I’ll tackle that separately.
Once the new site is up and running, I’ll post on the twitter account where it can be found.
See you on the other side!
Just a quick heads up that the Form Tools twitter account has been renamed to @formtools. I’ve been posting my various progress these last few weeks. It’s coming along! 🙂
Quick note. The new site is coming along – I’ve updated the documentation to use Jekyll 3.3.1 and I’ve gotten it hooked into the new site design. I’ve pared back virtually everything I can think of and the priority is to the site out as fast as possible, then iterate to improve it. Things like searching the user doc won’t be in the first release, I’m afraid – and a few other things are going to be nixed. But it’ll be worth it!
I’m doing some spring cleaning around here: moving subdomains around on the host, removing old DBs, old subdomains and so on. You wouldn’t believe how much junk has piled up over the years.
Pretty sure there won’t be any interruptions to the site being online, but here’s a heads up in case…
Hi all, long time no see!
I’ve been taking stock of the scope of Form Tools project these last few days and in order to push the project forward I’ve got to trim a few things back first. Think of them as austerity measures. 😉 As such, I’m removing the demo and bug tracking sections of the website.
The demo feature has been a bit of a disaster from the start. It’s a really cool idea and I don’t regret doing it: roll your own sandboxed demo, play with it for 24 hours and if you like what you see, download the script and get it going yourself. But it’s an unbelievable memory hog, impossible to maintain in its current state and taking up a lot of server resource (meaning: costing a lot of money).
The bug tracker is simply dated and no longer used. The entire Form Tools codebase is now over on github. Github has a much better bug tracker which is a better replacement. I’ve transfered all the reported bugs to github.
I’ll also probably put the old “donate” section back up again. I know sounds painfully self-serving, but donations go a long way to keeping this script online.
I’ll be reporting on the FT website update via a Twitter account, found here. A lot of news is too small to warrant a whole post (e.g. new screenshots, sections being completed, etc.) and this sort of news suits Twitter a lot better.
On the new site, the Twitter feed will replace the “Recent Updates” section on the current Form Tools webpage. That existing section has a whole thwack of custom logic and code which I’ll be able to drop.
Plus Twitter is a way more interactive way to post news. It feels extremely one-way right now.