Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPixie PHP Framework

dracony
August 04, 2014

PHPixie PHP Framework

Why you should try PHPixie and how awesome version 3.0 is going to be

dracony

August 04, 2014
Tweet

More Decks by dracony

Other Decks in Programming

Transcript

  1. Full stack frameworks are too hard for beginners Micro frameworks

    don’t provide enough to work with Kohana being discontinued Too much boilerplate code Questionable design choices in some frameworks Mastering a framework requires a lot of experience
  2. Easy to both learn and master High performance ( more

    on that later ) Fully unit tested Component based ( use only what you need ) Dependency injection No static class members Perfect for small to medium projects
  3. Query builder ORM Validation Authorization and authentication PHP and HAML

    templating Cache Database Migrations Image manipulation …and more, out of the box Components can be used outside PHPixie
  4. Flexible configuration component MongoDB support, with automatic query optimization Relationships

    between objects in separate databases… …but still using subqueries wherever possible 100% code coverage ( some components already covered ) Full PSR compliance Separate Domain layer Console API for CLI tasks Switch from service location to full constructor injection
  5. Good ones: User interfaces HTTP Requests Real-time updates A new

    USB device is found Currently in PHP world: ORM model is being saved A user has logged in Content filtering Indirect method call
  6. Events come from outside the system ( user click, API

    request ) Application only processes events, but does not trigger them Unpredictable by nature Have clearly defined subscribers
  7. Are triggered by the application Easily predictable Anything can subscribe

    to anything Subscription may occur in the most unexpected places
  8. Non-linear execution flow Possibility of an infinite loop Hard to

    debug ( event hell ) Should be refactored by injecting dependencies … … but the process requires a lot of rewriting Once introduced quickly invade all parts of the system Observers are a common source of memory leaks
  9. Requires lookup of service identifiers Decouples DI from implementation Multiple

    formats may hurt consistency Doesn’t solve injection into non-service classes
  10. Heavy use of chaining, shift towards domain languages All components

    support multiple configuration profiles V3 components avoid container awareness Distinctly separated layers ( V3 ORM is a good example ) Tests follow class inheritance tree