Symfony, the PHP framework for Open-Source, Start-Ups & Enterprise

E2ed7c278c8c49bb3e7fe0b7de039997?s=47 Hugo Hamon
March 20, 2015

Symfony, the PHP framework for Open-Source, Start-Ups & Enterprise

This talk introduces the Symfony framework project and Open-Source ecosystem. It also showcases some Open-Source projects, start-ups and enterprises success stories.

E2ed7c278c8c49bb3e7fe0b7de039997?s=128

Hugo Hamon

March 20, 2015
Tweet

Transcript

  1. Symfony, the PHP framework for Open-Source & Enterprise Friday March

    20th 2015 – Cluj – Romania
  2. Hugo HAMON Head of training at SensioLabs Book author Speaker

    at Conferences Symfony contributor @hhamon
  3. What is Symfony?

  4. None
  5. Framework Philosophy Community Professional Toolkit

  6. Symfony2 is a set of reusable, standalone, decoupled, and cohesive

    PHP components that solve common web development problems.
  7. Dependency Injection BrowserKit ClassLoader Config Console CssSelector Debug DomCrawler EventDispatcher

    ExpressionLanguage Filesystem Finder Form HttpFoundation HttpKernel Locale Intl Icu OptionsResolver Process PropertyAccess Routing Security Serializer Stopwatch Templating Translation Validator Yaml
  8. Symfony is also an HTTP full-stack web framework made of

    bundles and third party libraries.
  9. app/ is the application folder src/ is the libraries folder

    web/ is the general public folder contains the configuration, templates and generated files contains the PHP code of your application contains front controllers and web assets (images, Javascripts, stylesheets, ...) . ├─ app/ │ ├─ AppCache.php │ ├─ AppKernel.php │ ├─ cache/ │ ├─ config/ │ ├─ console │ ├─ logs/ │ ├─ autoload.php │ ├─ check.php │ ├─ phpunit.xml.dist │ └─ Resources/ │ └─ views/ │ └─ admin/ ├─ src/ │ └─ AppBundle/ ├─ vendor/ └─ web/ ├─ config.php ├─ app.php └─ app_dev.php vendor/ hosts third party code contains libraries and resources installed with Composer utility tool.
  10. A « Bundle » is a directory containing a set

    of files that implement a single feature and can be shared with the Community.
  11. src/AppBundle/ ├── AppBundle.php ├── Controller/ │ └── BlogController.php ├── DataFixtures/

    │ └── ORM/ │ └── LoadBlogPostData.php ├── Entity/ │ ├── BlogPost.php │ ├── Comment.php │ └── Repository/ │ └── BlogPostRepository.php └── Form/ └── BlogPostType.php
  12. Philosophy

  13. Symfony is an HTTP framework that converts a Request object

    into a Response object.
  14. # web/app.php use Symfony\Component\HttpFoundation\Request; $kernel = new AppKernel('prod', false); $kernel->loadClassCache();

    $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
  15. # web/app.php use Symfony\Component\HttpFoundation\Request; $kernel = new AppKernel('prod', false); $kernel->loadClassCache();

    $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
  16. None
  17. Symfony also takes inspiration on leading professional Open- Source projects

    from other communities.
  18. What makes Symfony popular?

  19. None
  20. +5,000,000 Installs with Composer

  21. +1,250 code contributors

  22. Official Documentation

  23. +900 documentation contributors

  24. +2 500 Community Bundles

  25. Promoting PHP Standards

  26. Modern Development Features

  27. Easy Runtime Debugging

  28. Symfony for Open-Source projects

  29. None
  30. None
  31. None
  32. None
  33. None
  34. None
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. Symfony for Start-Ups

  42. RAD & Prototyping https://www.flickr.com/photos/collylogic

  43. § Code Generators § Admin Generators § ORM Layers § Automation § Annotations

  44. Simple & Versatile https://www.flickr.com/photos/58621196@N05/6338435691/sizes/l

  45. https://farm8.staticflickr.com/7243/7079126699_d8f34a8425_b.jpg Open

  46. https://www.flickr.com/photos/usnavy/5711222106/sizes/l Easy to ship & deploy

  47. https://www.flickr.com/photos/sensiolabsuk/7999168719/sizes/l Community Involvment

  48. None
  49. Success Stories

  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. Symfony for Enterprise

  58. Maturity & Stability

  59. Highly Configurable imports: - { resource: parameters.yml } - {

    resource: security.yml } - { resource: services.yml } framework: #esi: ~ #translator: { fallbacks: ["%locale%"] } secret: "%secret%" router: resource: "%kernel.root_dir%/config/routing.yml" strict_requirements: ~ form: ~ csrf_protection: ~ validation: { enable_annotations: true } # ...
  60. End of 2015 Symfony 3.0 Clear Roadmap

  61. Symfony major versions are backward compatible to ensure smooth upgrades

    when new versions are published. http://symfony.com/bc
  62. Cloud Deployment

  63. Interoperability

  64. Professional Services & Support

  65. Success Stories

  66. Over 100 millions hits per day!

  67. None
  68. None
  69. None
  70. None
  71. None
  72. None
  73. None
  74. Symfony is made for everyone!

  75. Questions? h"p://www.flickr.com/photos/mkrigsman/