AMFPHP 2.0 Roadmap

Posted by
|

We at AMFPHP have some very exciting news for the community: we will be partially rewriting AMFPHP to bring you a leaner, meaner and cleaner AMFPHP and these modifications/additions will bring AMFPHP’s version up to 2.0.

AMFPHP, in its current state, is old and getting more and more frail with every release of PHP. The last serious development done on the system was carried out a year or two ago, and it’s time for a revamp – wouldn’t you agree? ;) In the upcoming version, we will be bringing you an up-to-date iteration of AMFPHP that is compliant with PHP 5.2.x & 5.3.x and we will be dropping our PHP4 support in favour of the wicked new features in PHP5.x that will make our system run more efficiently and – most importantly – more effectively. Don’t worry though – AMFPHP will remain the easiest and fastest AMF system, with the smallest footprint.

In this article, we will be detailing all the future features of AMFPHP 2.0, as well as a few ideas that will hopefully get picked up by the community and implemented independently – otherwise we will address them later on.

Overview

AMFPHP 2.0 will be redesigned with a strong Object-Oriented architecture. We will be setting the system up for easy maintainability, customization and scalability, as well as providing detailed documentation for all the hackers & newbies out there. The reason why we’re redesigning the system is because AMFPHP 1.9.x (now more than two years old) is getting to give serious headaches to developers running more up-to-date versions of PHP5.x.x, and this is just not on. Instead of modifying the system as it stands, we will be redeveloping the core functionality and fixing some of the serialization/deserialization issues encountered by the community at large. Over and above that, we will be adding in some exciting and innovative features that will help make your development life so much easier.

System Upgrades

  • Compatibility with PHP 5.2.x, PHP 5.3.x
    • If issues crop up with future versions of PHP, we will patch the existing system and export a release for that version
  • Deprecation of PHP 4 support

Architecture Changes / Additions

The AMFPHP system will become a strictly Object-Oriented system that will facilitate easy modification or extension. As a function of this structure, we will be implementing a brand new plugin & hook system, which will allow developers to create nifty additions to AMFPHP without having to hack the core.

Some of the plugins that we plan to develop are (but are not limited to):

  • Authentication
  • Cache
  • Security
    • We will probably provide two forms of security plugins, one which is solely server-side and one which will integrate with our innovative cross-tier RSA encryption mechanism to be documented soon
  • Custom VO (Value-Object) mapping
  • Charsets
  • Logging
  • JSON/XML-RPC/Haxe Remoting – you’ll soon be able to use AMFPHP as a web-service architecture without actually using AMF!

These plugins will all work through our plugin & hook system which will allow you to modify or replace a step in the regular application flow (in brackets are examples of which plugins could be used in certain points in the flow):

  • Accept HTTP request (logging, authentication)
  • Modify/pre-process the incoming data (charset)
  • Replace the upcoming deserialization stage (alternative AMF deserialization plugin?)
  • Throw an exception if an error is encountered (authentication, security, custom error handler)
  • Bypass the normal flow (cache)
  • Build the HTTP response (logging)
  • Modify/pre-process the outgoing data (VO mapping, charset)

We will also be exploring the possibility of writing a new C-based AMF serializer/deserializer to seriously improve on the speed of the system.

Detailed error messages are on the cards as well; no more convoluted error messages with no debugging information! We hope to have a configuration option available that will tell AMFPHP to send back detailed information about the error.

We will also be revamping the configuration aspect of AMFPHP. We’re as yet undecided about whether to go for an XML-based type of configuration or whether to keep it in PHP.

Security will be a big focus for us in AMFPHP 2.0; as mentioned above, we will be implementing a couple different forms of authentication and authorization, and these methodologies will be documented as and when we settle on which (or which combination of) methods we will use.

Another huge change to the system is detailed documentation. We will post more about this in future articles, but needless to say that it will be very thorough and we’ll have both high-level and low-level documentation available.

All in all, we have very big things planned for AMFPHP 2.0 and we welcome your comments, questions and suggestions! If there’s anything that we’ve missed or that you’d like to see in AMFPHP 2.0, do give us a shout in the comments!

Comments

  1. saumya

    August 5, 2010

    First of all, I must say thank you for not leaving AMFPHP behind. The roadmap seems good. The decision on deprecating support for PHP4 is also good move. Only thing is supporting 1.9 version for sometime, is what I am asking for now.
    Wishing you all the best and hope to meet version 2 soon.
    Keep the good work going.

  2. James

    August 5, 2010

    I am concerning about having AMFPHP open to Flash/Flex run on localhost (on local computer), if the attacker able to decompile the actionscipt code and run on the their machine, they could screw up my database. Is there a way to block localhost in AMFPHP?

  3. Jay

    August 6, 2010

    Awesome work guys. Looking forward for 2.0. Any proposed data on the release as of now ?
    I will be glad to see some beta version rolling out soon.

  4. Danny Kopping

    August 6, 2010

    Hi Jay

    We do not have a set date just yet but as soon as we set one we will put out a blog post :) watch this space!

  5. Daniel Neri

    August 10, 2010

    Really looking forward to the 2.0 release! Fantastic to see you haven’t given up on AMFPHP.

    Is there any way the community can help with development?

  6. lexa

    August 10, 2010

    Hello Daniel

    I do not know about the dev, but about the documentation, there is definitely something to do…

    We would like to make 2 websites: one for documentation and one for the project.

    First of all we would need a good summary of what is amfphp, and then these info:
    - name
    - short description
    - long description
    - versions
    - lisence
    - website(s)
    - Pitch
    - keywords
    - links (to ressources, change log, road map, team, service providers…)

    If you are interested, let me know :)

  7. Ed

    August 11, 2010

    Great to see AMFPHP getting a revamp – can’t wait to see the new features in 2.0.

  8. Ariel

    August 13, 2010

    @James,
    we want security to be as simple as installing the “security” plugin, which will among other things block requests coming from another domain.

  9. Dave Keen

    August 29, 2010

    Hey guys,

    I’m very excited to hear that AMFPHP is going to be brought up to date :) I have developed an ORM system using Flex and AMFPHP (www.flextrine.com) but found myself having to modify the core in various places which is pretty horrible.

    I am actually considering moving the project over to ZendAMF, but that also has its own share of problems.

    Anyway, here is my personal wishlist:

    – IExternalizable support
    – Proper Date serialization and deserialization
    – Use of spl_object_hash for AMF3 reference maps in PHP5.3 for a nice performance boost

    If you need any help on the project feel free to get in touch!

    Cheers,

    Dave Keen
    http://www.actionscriptdeveloper.co.uk

  10. lexa

    August 30, 2010

    Hi Dave,
    For sure, Ariel and Danny will need your help.
    Since Ariel became a father, the development did not start. Things will be moving in the next few weeks.
    Bye
    lex

  11. ariels

    December 10, 2010

    Yes, I see your point. I had already read that post, and that’s why I kept the serializer/deserializer code, though it was of course temping to scratch those too.

  12. Dany Dhondt

    January 23, 2011

    Any news on release date of version 2.0??

    thx
    Dany

Add a comment

You must be logged in to comment.

  1. Tweets that mention AMFPHP 2.0 Roadmap @ Silex Labs -- Topsy.com08-05-10
  2. new roadmap for AMFPHP « arielsommeria.com/blog/08-05-10
  3. Tweets that mention AMFPHP 2.0 Roadmap @ Silex Labs -- Topsy.com08-05-10
  4. AMFPHP 2.0 aankondiging | celar.nl08-06-10
  5. Flexeando – Flex, Air, RIA, UIX, AS3…» Blog Archive » Pensamientos flexeros (2010-08-25)08-25-10