Life goes on.
I’ve been working on Nifty this weekend. Seemed like a good idea, because I’m updating a lot of stuff on the intranet at work, building on the 1.2 branch, and I need a couple of new features. So I made a 1.3 branch.
Some really nifty features so far:
- Pages aren’t limited to one level anymore. You can have a page at /index, one at /start/rss, and one at /intranet/projects/newsfeeds/rss. The system translates the call into an index.php?__path=nnn statement, and resolves the class names and commands automatically. Which means you should be able to build much more complex applications.
- Modules are no more. They’ve been replaced with components. You can now build entire forms and web-page components completely standalone, and insert them at will into your templates/pages. You can even make callbacks through HTML POSTs or Ajax directly into a component, dynamically updating and reloading parts of the web page.
- The exception system has been overhauled, giving more meaningful error codes.
- Responses are now automatically prepared for Ajax calls, decoding and encoding responses as necessary (no more $Response->reset()).
- The database/persistence layers can now handle relations between tables. You can now issue a $users = $Persistence->loadAll(‘Data_Users’); and immediately thereafter a $Persistence->loadRelated(‘Data_CompanyDepartments’, $users) and link users with corresponding department objects. The initial objects are dynamically updated with references to the new objects.
- Page session objects and page ViewState is being incorporated directly into PageBase, no longer requiring the use of Forms.
- Templates can now load through loadDefault() and runDefault(), automatically determining the template file names from the current call context.
- The Autoloader can make more checks for loadable classes and has a more fine-grained control.
It’s currently in development (possibly soon alpha), but that’s the news so far.
