3. Working with MySQL 5.1 + InnoDBPlugin or 5.5 Binary hashes Learn the configuration options Separation of data logically (e.g. user data vs. analytical data)
7. Zend Framework Does have a REST Controller (albeit pants, but it’s a starting point) – and we don’t call it Rest, we just call it an API Extend the controller as your base GET/PUT/POST/DELETE/HEAD/OPTIONS on the extension Reflection allows automatic use of Allow header OPTIONS can parse doc block for automation (@property) A global error controller is great for centralised management of errors. Re-use modules – you’ve got an API you can use.
8. Example of implemented Methods public function implementedMethods() { if(!isset($this->_actionController)) return array(); $class = get_class($this->_actionController); $oReflector = new ReflectionClass($class); $methods = $oReflector->getMethods(ReflectionMethod::IS_PUBLIC); $implementedMethods = array(); foreach($methods as $i => $method) /* @var $method ReflectionMethod */ { if($method->getDeclaringClass()->getName() == $class) $implementedMethods[] = str_replace('Action', '', $method->getName()); } return array_intersect($implementedMethods, array('get', 'put', 'post', 'delete', 'head', 'options', 'trace')); }
9. PHP Requests using date ranges – break down using DateInterval then cache fopen(‘php://input’, ‘r’) for PUT data. Exception($message, $code, $previous) text/uri-list
10. Building SSH keys CI tool (Hudson/Jenkins) for testing and uploading Lots of boxes = distribution server
11. Testing (Stress) Apache JMeter is a great java GUI/CLI tool for both testing requests and stress testing API’s should inherently allow independent testing of minimal components at the user request level