Updates

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>