endroid/symfony-application
● A standard for building applications
● Built on symfony-standard
● Additional out-of-the-box functionality
What is it?
W...
Goals
● Speed up development process
○ application should work out-of-the-box
○ provide default optional functionality
● I...
● Build something that works (1.0.0)
○ make concessions
○ accept that it not perfect
○ fulfill only basic needs
● Polish a...
0.1 - Symfony Standard Edition
0.2 - Admin
0.3 - User management
0.4 - Menus and internal links
0.5 - Entities and behavio...
0.1 - Symfony Standard Edition
● Symfony Standard Edition 2.3
○ LTS : supported until May 2016
● Remove Acme*
● Configurat...
0.2 - Admin
● SonataDoctrineORMAdminBundle
○ loads of features
○ adhere to standard functionality
○ extend through configu...
0.3 - User management
● FOSUserBundle
○ basic user management
● SonataUserBundle
○ integrate user management in sonata
● E...
0.4 - Routing and menus
● SEO URLs via sluggable behavior
○ no landing pages or alternative URLs yet
● No direct mapping o...
0.5 - Entities and behaviors
● Interfaces
○ publishable, sluggable, sortable, timestampable,
translatable, traversable etc...
0.6 - Multilanguage
● I18nRoutingBundle
○ choose between domain or /<lang> as base
○ alternative routes per locale: /searc...
0.7 - Search
● ElasticSearch
○ Built on Lucene
○ Functionally comparable to Solr
■ Faceting (categorized filtering)
■ Spat...
0.8 - Out-of-the-box functionality
● Admin + users + media
● Front end layout - Twitter Bootstrap 3.0
● Main + footer menu...
0.9 - Other tools and libraries
● NetvliesFormBundle
● PHPExcel / PHPWord
● KnpSnappyBundle (PDF generation)
● TinymceBund...
1.0 - Demo environment
● Demonstrates all mentioned functionality
● Deployment
○ code update and data reset every night
● ...
● Access control
● MzMailChimpBundle
● Admin dashboard
● Redirects / landing pages
● FpOpenIdBundle
● Automated tests
● Su...
Good news everyone!
symfony-application.endroid.nl
symfony-application.endroid.nl/admin/login
We have a working demo!
Upcoming SlideShare
Loading in …5
×

Endroid Symfony Application

1,132 views
1,066 views

Published on

Standard project for building web applications, built on symfony-standard and extended with stable and actively maintained libraries, out-of-the-box components and a demo environment showing a fully working sample project.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,132
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Endroid Symfony Application

  1. 1. endroid/symfony-application
  2. 2. ● A standard for building applications ● Built on symfony-standard ● Additional out-of-the-box functionality What is it? What it is not ● It is not a CMS ● It does not use CMF or ODM
  3. 3. Goals ● Speed up development process ○ application should work out-of-the-box ○ provide default optional functionality ● Improve maintainability ○ minimize self-built code ○ build on stable and actively maintained libraries ● Stimulate code reuse ○ building blocks are decoupled ○ add new features to demo ● Manage expectations ○ demo environment and light documentation
  4. 4. ● Build something that works (1.0.0) ○ make concessions ○ accept that it not perfect ○ fulfill only basic needs ● Polish and extend (1.x) ○ fix bugs and write tests ○ improve performance and quality ○ turn high quality reusable code into vendor ■ afterwards to avoid cumbersome work How to get there
  5. 5. 0.1 - Symfony Standard Edition 0.2 - Admin 0.3 - User management 0.4 - Menus and internal links 0.5 - Entities and behaviors 0.6 - Multilanguage 0.7 - Search 0.8 - Out-of-the-box functionality 0.9 - Other tools and libraries 1.0 - Demo environment Roadmap to 1.0
  6. 6. 0.1 - Symfony Standard Edition ● Symfony Standard Edition 2.3 ○ LTS : supported until May 2016 ● Remove Acme* ● Configuration changes ○ Enable ESI ○ Enable APC ○ Enable CSS and JS compression ● Result ○ 404 - No route found for “GET /” ○ Ready to go!
  7. 7. 0.2 - Admin ● SonataDoctrineORMAdminBundle ○ loads of features ○ adhere to standard functionality ○ extend through configuration ● Symfony CRUD ○ more freedom ○ much less out-of-the-box functionality
  8. 8. 0.3 - User management ● FOSUserBundle ○ basic user management ● SonataUserBundle ○ integrate user management in sonata ● EndroidUserBundle ○ define custom entities ○ not a vendor ● Plain text passwords are plain silly ○ ElnurBlowfishPasswordEncoderBundle
  9. 9. 0.4 - Routing and menus ● SEO URLs via sluggable behavior ○ no landing pages or alternative URLs yet ● No direct mapping of entities to routes ● Route collector / provider mechanism ○ bundles implement route provider ○ collector aggregates routes ■ enables internal linking and menu building ● KnpMenuBundle ○ builds the menus from menu items ● Works but needs improvement
  10. 10. 0.5 - Entities and behaviors ● Interfaces ○ publishable, sluggable, sortable, timestampable, translatable, traversable etc. ● Listeners to effectuate behaviors ● Sonata Admin extensions ● ORM Filters (switch on/off) ● Combining behaviors ○ multiple inheritance is impossible ○ traits can be used to implement multiple behaviors ■ disadvantage: requires PHP 5.4 ■ PHP 5.3 => just copy trait code over and over
  11. 11. 0.6 - Multilanguage ● I18nRoutingBundle ○ choose between domain or /<lang> as base ○ alternative routes per locale: /search, /zoeken ○ language switch (via _locale parameter) ● Entity uses translatable behavior ○ TranslatableInterface / TranslationInterface ○ you decide which fields are translatable ● Translatable admin extension ○ linked via configuration ● Language switch ○ entities need extra template logic at the moment
  12. 12. 0.7 - Search ● ElasticSearch ○ Built on Lucene ○ Functionally comparable to Solr ■ Faceting (categorized filtering) ■ Spatial search (distance based) ■ Sharding (multiple nodes) ○ Somewhat more lightweight ○ Better integration in Symfony than Solr (atm) ○ Clean separation of entity and search configuration
  13. 13. 0.8 - Out-of-the-box functionality ● Admin + users + media ● Front end layout - Twitter Bootstrap 3.0 ● Main + footer menu ● Home page ● Text pages ● News detail + overview + pagination ● Contact form ● Search + results ● Sitemap ● Fixtures for creating dummy content
  14. 14. 0.9 - Other tools and libraries ● NetvliesFormBundle ● PHPExcel / PHPWord ● KnpSnappyBundle (PDF generation) ● TinymceBundle ● LadybugBundle (debugging) ● KnpPaginatorBundle ● DoctrineFixturesBundle ● DoctrineMigrationsBundle
  15. 15. 1.0 - Demo environment ● Demonstrates all mentioned functionality ● Deployment ○ code update and data reset every night ● Open to public ○ including admin area ○ free testing audience ○ stimulates (re)use and contributions ● Whereabouts ○ symfony-application.endroid.nl ○ admin: /admin/dashboard (admin / admin) ○ source: github.com/endroid/symfony-application.git
  16. 16. ● Access control ● MzMailChimpBundle ● Admin dashboard ● Redirects / landing pages ● FpOpenIdBundle ● Automated tests ● Support for ODM 1.x - Further development
  17. 17. Good news everyone! symfony-application.endroid.nl symfony-application.endroid.nl/admin/login We have a working demo!

×