11 second overview

  • F A S T
  • Bring Your Own Libs (redbean, raintpl, monolog)
  • Event driven everything
  • Just enough magic to get the job done
  • Everything's a POPO
  • Supports non-autoloading conventions for speed

Actual Code

<?php
class Example_Helloworld { 

    public function mainAction($request, $response) {
        $user = $request->getUser();
        $item = _makeNew('dataitem', 'blog_post');
        $item->andWhere('owner_id', $user->userId);
        if (!$item->load( $request->cleanInt('id') ) ) {
            $response->addUserMessage('no such blog post');
            return;
        }
        $response->addTo('items', $item);
    }
}

Will I like the Metro PHP framework?

  • Do you like performance?
  • Do you want more Rapid in your RAD?
  • Do you prefer the "has-a" over the "is-a" paradigm?
  • Do you ever think you're spending more time configuring your current framework than writing good code?

If you've answered "yes" to any of these questions then fork metrophp/metroproject and start coding smaller.

Why might I not like Metro?

If you...
  • think PHP has a long way to go to reach Java feature parity
  • dislike typeless languages
  • feel discomfort if every aspect of a Web request isn't handled by an abstract, interface, and concrete implementation class.

If you identify with any of these statements then these aren't the droids you're looking for.

Latest Documentation