Read on to see what sessions I attended Thursday morning at php|works 2007!
Today started off with a great keynote about PHP6. Here we learned what exactly PHP6 was through a simple equation: PHP6 = PHP5 + Unicode. Apply some simple mathematics and we get some other interesting insights: PHP5 = PHP6 - Unicode, and Unicode = PHP6 - PHP5. Deep stuff!
Alright, PHP6 has more to it than just Unicode. PHP6 also has some new security built in, or more correctly, removed. Gone are magic_quotes_*. Gone too are register_globals and safe_more. The dl(); function has been disabled in most cases as well. And PHP (and its developers) rejoiced.
After this keynote, I plan to follow PHP6 a little closer.
Here we learned what we should do before we approach our DBA. Being my own DBA (be afraid), it was good to know that some of my practices are inline with what I should be doing. Being reminded about how to do good database design is a plus, and it made me rethink how foreign keys might improve my projects.
One of the most interesting tidbits was the suggestion that InnoDB is good for normalized data, whereas MyISAM is good for denormalized data. Definitely something I'll be keeping in mind when it comes to worrying about it in my own databases. Or maybe I should be planning for this early on? *shrug*
There was a lot covered in this session, including what REST is and how to implement it.
REST's primary focus exposing resources over actions. These resources are exposed over unique URIs (say tag/, tag/REST, tag/REST/feed, with each representing a different resource). These resources should always return the same result regardless of how many times they are called and without side effects (see Idempotence). For each resource, you can do each of the CRUD actions. As it turns out, the UPDATE action (done with a POST) isn't actually idempodent.
It amazed me how well thought-out the "REST interface" is. It also turns out that Zend has support for REST in their framework: Zend_Rest. While the debate over whether the query string should be considering when defining a unique URI, a REST interface fits right into the service-oriented Web 2.0 that we are a part of right now.
It was a busy morning, and there was a lot covered. Time for lunch. I think my brain is already full...