Post on 15-Jan-2015
description
Symfony: A brief introduction
Me
PHP Developer @ Teabag Studios Magento, Zend Framework, Symfony
http://www.craig-willis.co.ukhttp://www.twitter.com/craig_willis
What is Symfony?
PHP MVC Framework RoR, Mohavi Goal
Speed up creation, maintenance/replace repetition
Robust enterprise applications Full control of configuration
Symfony: History
http://en.wikipedia.org/wiki/Symfony
Installation
Windows/Mac/Linux Apache, PHP 5, MySQL, mod_rewrite Command Line Interface (CLI)
http://www.symfony-project.org/installation/1_3 SVN: http://svn.symfony-project.com/branches/1.4
Installation: continued
PHP folder (/usr/share/php/symfony)
Symbolic Link – /usr/bin/
Installation: continued 2
Multiple versions symfony14 -V, symfony10 -V
Project Setup CLI
Project File/Folder Structure
Frontend/Admin
frontend_dev.php, admin_dev.php Debug Toolbar – symfony 1st to introduce Logging/cache
http://localhost/craig_app/web/frontend_dev.php
Models
schema.yml, schema.xml Autogenerate models SQL Fixtures (sample data)
schema.xml example
Building models
Models: continued• StaticPage.php
– object represents single record of static_page
• StaticPagePeer.php
– static methods, collections of StaticPage objects
• BaseStaticPage*
– Autogenerated when re-build model
– Parents of each model file
• Both main (child) classes are empty by default
Examples
Actions - Modules
• Index.php, frontend_dev.php → actions
• Create module
View
• 3 parts
– Action
– View
– Route (optional for URL)actions.class.php indexSuccess.php
Forms/Validation
Based on Propel/custom Labels, widgets, defaults, validators String, choice, file, boolean....
Widgets and Validators
Admin Generator
• Quick/easy admin system
• Modular
• Based on Propel
• 3 Parts
– generator.yml
– actions.class.php
– View tempates (optional)
Example
Plugins
• Extend Symfony functionality easily
• Extend existing libraries for Symfony
• More configuration!
Community
• Forum - http://forum.symfony-project.org
• IRC – Freenode - #symfony
• Google Groups - http://groups.google.com/group/symfony-community
Applications/Websites
• Yahoo! Bookmarks
• Yahoo! Answers
• DailyMotion
• Delicious
Where next?
• http://www.symfony-project.org/gentle-introduction/1_4/en/
• Jobeet
– http://www.symfony-project.org/jobeet/1_2/Propel/en/
– http://www.jobeet.org/en/
• IRC/Forum
Questions?