Wednesday, July 11, 2012

Converting from TYPO3v4 to Phoenix

I'm working on converting a site I've built in TYPO3v4 to TYPO3 Phoenix (or Foo, or whatever the final name becomes). I'm going to document the progress and the pitfalls I run into on this blog.

Edit: Added link to related post (see end of this post).

Is it wise to use Phoenix in such a pre-alpha state?

For many, it is not a good idea to use such pre-alpha software, especially not for a site that is supposed to be a production site once conversion from v4 is complete.

That being said, you must understand something about me. Using Phoenix, or just reading the code that runs Phoenix, feels like a five year old opening presents on his birthday. Every review in gerrit and every commit in git is like a new present--they're all beautiful features that just make the geek inside me want to jump for joy.

Really, go read the code in FLOW3 and Phoenix. I've learned a lot about good software design by perusing the excellent examples of DDD, TDD, AOP, and any other programming buzzword you want to throw in the mix. Right now, FLOW3 and Phoenix are like a submarine where you can't see very much on the surface of the water (the UI), but when you go into the depths of the water, into the core of that submarine, there's just power--raw nuclear energy just begging to fly yours and my next project just as fluid and sleek as a submarine gliding through the water.

Phoenix also has a wonderful UI with a ton of potential. When you look at Phoenix's UI, you're looking at an Airforce Squadron that is ready to put on a show. When Phoenix launches, all you'll see is the bombs bursting in an awesome show of carefully crafted fireworks that will amaze even the most stubborn of executives. Aloha is simply a breeze. It's the lift that carries these airplanes and makes Phoenix soar above the rest of the CMS landscape. I look forward to not training editors and anyone else that wants to work with content. Aloha makes the editing process so simple, that I believe Phoenix could easily be the next wiki platform. Aloha is easier to learn than wiki language, and with the amazing security that courses through the veins of FLOW3 and Phoenix, I'll be able to open up the website to allow people to edit their own content without relying on a dedicated technical writer like me.

But what about all the rough edges?

Are there rough edges? Yes. Am I going to use Phoenix anyway? Yes. Will there be issues? Absolutely.

This is a challenge for me. Using Phoenix is something I've been toying with for years. The smooth features, for me, outweigh any of the rough edges I'll face.

I need forms, and TYPO3.Form is an awesome, simple way to build them.

I want to edit certain tables and bits of documentation as quickly as possible. Aloha is the key to that. I've already used some Aloha integration in v4, which has saved me hours of time that I would have spent manually editing the CSV tables in v4. Aloha is just an easier interface for all parties involved.

When I find a rough edge, I'll write about it. I'll post what I've discovered and what I'm doing to hopefully help others. I'll be the test case to help start discussions that need to happen to make Phoenix ready for a wider launch.

Just what does this transition from v4 to Phoenix entail?

For the site I'm building, I will deal with a variety of parts. Some parts don't even exist in my v4 site yet. Other parts do. In any case, much of the conceptual site design was completed in v4. These parts include (in no particular order):

  • Templating
  • Security (I need to have both pages, and individual elements that are only visible to certain usergroups).
  • Automatic deployment with JIRA and TYPO3.Surf
  • Custom plugin(s) to generate some of the content on the site
  • Generate forms (with TYPO3.Form) on most of the pages with generated content
  • Custom ViewHelper and plugin to generate a special menu to 'cascade' or merge pages and content across branches of a page tree based on who is logged in
  • Transition any content that could not be automatically generated from v4 to Phoenix.
  • Custom FLOW3 Package to export the content in a useable format to be consumed by external processes.

When I blog about these things, I'll focus on the parts that will spur discussions about Phoenix--like things that need to be developed further in FLOW3 or Phoenix--or that are more generally interesting. In much of this, I won't be able to share too much of the code I write, because it involves interacting with some of our proprietary APIs, but for much of what I'm working on, I should be able to share what I learn in the process.

Disclaimer: These opinions are my own, and do not necessarily reflect the opinions of my employer, InfoTrax Systems. InfoTrax is an international corporation that provides software solutions and consulting services to the MLM and direct marketing industry. My job is to document the developer oriented parts of our software such as the API we provide to our customers.