Symfony: A Brief Introduction

Post on 15-Jan-2015

1.060 views 2 download

Tags:

description

Presentation for Leeds PHP User Group - July 2010

Transcript of Symfony: A Brief Introduction

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?