symfony presentation

18
Server side technologies Symfony Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/11 1 The slides are licensed under a Creative Commons Attribution 3.0 License Robert Heim, Alexander Friesen, Diego Santos

Upload: maxpower57

Post on 16-Jun-2015

880 views

Category:

Technology


4 download

DESCRIPTION

Symfony PHP Framework

TRANSCRIPT

Page 1: Symfony presentation

Server side technologiesSymfony

Web Technologies – Prof. Dr. Ulrik Schroeder – WS 2010/111The slides are licensed under a

Creative Commons Attribution 3.0 License

Robert Heim, Alexander Friesen, Diego Santos

Page 2: Symfony presentation

Web-Project's Problems

Web Technologies2

Page 3: Symfony presentation

Web-Project's Problems

Web Technologies3

● Security● Complexity, i.e.:

● different output formats (HTML5, XML, JSON, RSS feeds, ...)● Quality Control

● Portability (OS, Databases, ...)● Maintainability

Page 4: Symfony presentation

Facing the Server Side

Web Technologies4

Solution: Frameworks =Standards, Best Practices, … !

● Templating● Abstraction (i.e. Security, Database, Sessions, …)● Codegeneration● Proven, tested code● “Plugin” functionality

Page 5: Symfony presentation

Symfony

Web Technologies5

● PHP Framework● Founded by Fabien Potencier (2005)● Best Practices● (as seen in Ruby on Rails, Zend, etc.)● Low hosting requirements (PHP, Apache)● Totally Free & Open Source● Rich documentation and big community (10.000+)

Page 6: Symfony presentation

Who uses Symfony?

Web Technologies6

Page 7: Symfony presentation

Who uses Symfony?

Web Technologies7

Page 8: Symfony presentation

MVC Pattern

Web Technologies8

Page 9: Symfony presentation

Symfony Approach - Overview

Web Technologies9

● Application Model (MODEL)● Object Relational Mapper

● Modules● Templates (VIEW)● Actions (CONTROLLER)

● Customizing

Page 10: Symfony presentation

Application Model

Web Technologies10

● Define the Model(YAML-Format)

Page 11: Symfony presentation

Application Model

Web Technologies11

● Symfony related Glue Code

● Database schema

Generating:

Page 12: Symfony presentation

Modules (!= Models)

Web Technologies12

Templates:

Controller:

+ executeIndex(...)+ executeNew(...)+ executeShow(...)+ ...

Page 13: Symfony presentation

Modules (!= Models)

Web Technologies13

Templates:

Controller:

+ executeIndex(...)+ executeNew(...)+ executeShow(...)+ ...

Page 14: Symfony presentation

Module generation

Web Technologies14

● Model → standard operations:Create, Read, Update, Delete (CRUD)

● Generate● Controller: communicating to DB, validation, inject data in templates, ...● Templates: list of objects, forms, …

● Adjust / customize! (but Don't Repeat Yourself (DRY))→ Refactor!

Page 15: Symfony presentation

Customization

Web Technologies15

● Configuration files● OOP (extending, overwrite, etc.)● Hook Points● Plugins (1000+)

● User Management● Tagging● Commenting● … whole applications ...

Page 16: Symfony presentation

What else?

Web Technologies16

● URL Rewriting/Routing● Fixtures (example data for init-task)● Backend generation● Internationalization (i18n), localizing (i10n)● Convert App to Plugin● Easy Deployment● And much more!

→ www.symfony-project.org

Page 17: Symfony presentation

Pro's and Con's

Web Technologies17

● Pro's:● Fast development (generation)● Standards● Scaleability● Many Web-Developers know PHP

● Con's:● Have to learn the framework● Plugins not always stable● PHP (refactoring may be a pain in big projects)

Page 18: Symfony presentation

Live Coding

Web Technologies18