Symfony Yui Professional Web 204231

download Symfony Yui Professional Web 204231

of 25

Transcript of Symfony Yui Professional Web 204231

  • 8/6/2019 Symfony Yui Professional Web 204231

    1/25

    1

    Dustin Whittle

    Social Search Group

    symfony + yui = web 2.0 framework

  • 8/6/2019 Symfony Yui Professional Web 204231

    2/25

    2

    Introduction

    This session will cover rapidapplication development using the

    symfony + yui platform.

    Learn why YUI is the perfectcompliment to symfony, and how itwill make building web applications

    faster, simpler, and morecompatible.

  • 8/6/2019 Symfony Yui Professional Web 204231

    3/25

    3

    What is the symfony project?

    Full stack web application framework built forrapid application development

    Written in PHP5

    A growing community since 2005

    Open source and free

    Licensed under the MIT license

    symfony is a web application framework,which automates most of the tedious tasks

    of an AJAX developer

  • 8/6/2019 Symfony Yui Professional Web 204231

    4/25

    4

    Why a framework?

    Another software layer (symfony, php, apache, linux/bsd)

    Factors out common patterns

    Code Structure / Layout

    Configuration URL Routing

    Authentication / Security

    Form Validation / Repopulation

    Internationalization / Localization

    Frameworks provide a standard api

    Encourages good design, leads to developer consistency

    Long term maintainability

  • 8/6/2019 Symfony Yui Professional Web 204231

    5/25

    5

    Why symfony?

    Agile Development

    Built on best practices using proven design patterns

    Built to factor out common patterns and allow

    developers to focus on application logic Performance / Stability

    Proven to scale on very active web sites - Y!

    Tested code base (4000+ unit and functional tests)

    Maintainability

    Enforces consistency among developers

    Support

    Great documentation and very active community

  • 8/6/2019 Symfony Yui Professional Web 204231

    6/25

    6

    Easy rich interactions in PHP

    Template Helpers inspired from Rails

    Based on prototype/script.aculo.us

    Easy implementations in one line of php

    AJAX Interactions -> link_to_remote

    Visual Effects -> visual_effect

    Auto Complete -> input_autocomplete_tag

    Inline Editing -> input_inline_editor_tag Drag and Drop -> draggable_element

    Rich Text Editing -> textarea_tag w/ rich=tinymce|fck

    Rich Calendar -> input_date_tag

  • 8/6/2019 Symfony Yui Professional Web 204231

    7/25

    7

    Integrate your own PHP libraries

    Autoloading hooks for easy integration of

    Zend Framework

    EZ Components PEAR

    Custom

  • 8/6/2019 Symfony Yui Professional Web 204231

    8/25

    8

    Integrated Javascript Libraries

    Symfony makes it easy to build rich internet

    applications

    Prototype

    Javascript framework

    script.aculo.us

    AJAX interactions

    Visual Effects

    TinyMCE

    Rich Text Editor (WYSIWYG)

    DynArch.com Rich Calendar

  • 8/6/2019 Symfony Yui Professional Web 204231

    9/25

    9

    AJAX Toolkit Integration

    Prototype/scriptaculous built-in

    Plugins available:

    sfUJSPlugin -> helpers for UJS via jQuery

    sfYUIPlugin -> helpers for YUI

    Build your own helpers

  • 8/6/2019 Symfony Yui Professional Web 204231

    10/25

    10

    Why symfony + YUI?

    PHP Framework

    Javascript Framework

    CSS Framework

    Integrated Development Environment

    Helpers

    Controls

    Widgets Validation

    Debugging

    Integrated Logging Console

    IDE Support:A

    ptana

  • 8/6/2019 Symfony Yui Professional Web 204231

    11/25

    11

    Why Yahoo UserInterface?

    Industrial-grade JavaScript for DHTML andAjax. The same libraries that power Yahoo!today.

    Yahoo! Design Patterns Library Our thinking and solutions on common interface

    design issues.

    Graded Browser Support

    An inclusive definition of support and a frameworkfor taming the ever-expanding world of browsers andfrontend technologies.

    Documentation

    In depth examples and api documentation

  • 8/6/2019 Symfony Yui Professional Web 204231

    12/25

    12

    Why YUI javascript framework?

    Debugging Environment (Logger+ Console)

    Event System (for easy unobtrusive design)

    Connection / XHR / AJAX

    Animation & Effects

    Autocomplete + Drag & Drop

    Menus / Dialogs / Overlays / Tooltips /

    Windows

    Browser History Manager

    Controls: Button, Slider, Calendar, Rich Text

    Editor, Color Picker

  • 8/6/2019 Symfony Yui Professional Web 204231

    13/25

    13

    Why YUI css framework?

    Neutralizes browser CSS styles to be

    consistent between browsers

    Foundation for typography and font-sizing Grids for quick / proven layouts

    Over 1000 wireframes with online builder

    Base applies consistent style foundationfor common elements

    Supports skinning, default sam skin

  • 8/6/2019 Symfony Yui Professional Web 204231

    14/25

    14

    symfony YUIIntegration

    Debug Integration

    symfony / yui web debug toolbars

    Firebug console log integration

    Key shortcuts

    Symfony, yui, js shell, css reboot

    YA

    HOO

    .symfony.debug.logger YAHOO.symfony.debug.toolbar

  • 8/6/2019 Symfony Yui Professional Web 204231

    15/25

    15

    symfony YUIIntegration

    Event System (YAHOO.symfony.event)

    Subscriptions: available | ready

    YAHOO.symfony.event.ready.subscribe(YAHOO.symfony.i

    nitialize); Delegation when appropriate (parent -> child)

    sfYUI::addEvent php behaviors

    onclick|onsubmit| become events

    Form Validation (YAHOO.symfony.form) Common Validations (required, regex, callbacks)

    Configurable via class names or configuration

  • 8/6/2019 Symfony Yui Professional Web 204231

    16/25

    16

    symfony YUIIntegration

    Layouts by default

    Reset-Fonts-Grids

    Base Skin (sam)

    YUI / symfony base js/css

    Appending events via sfYUIFilter

    ID generation for events

  • 8/6/2019 Symfony Yui Professional Web 204231

    17/25

    17

    Symfony YUIIntegration

    Helpers

    UJS (event driven)

    On* are now automatically events

    link_to_function, button_to_function

    Ajax

    link_to_remote, button_to_remote,

    form_to_remote, remote_function sfYUI::connection()

  • 8/6/2019 Symfony Yui Professional Web 204231

    18/25

    18

    symfony YUIIntegration

    Helpers

    Controls

    input_date_tag -> YUI Calendar

    textarea_tag -> YUI Rich Text Editor slider_control -> YUI Slider

    input_autocomplete_tag -> YUI Autocomplete

    UI

    link_to_dialog -> modal dialog

    Tooltip -> tool tips

    Effects

    visual_effect | sfYUI::animation()

  • 8/6/2019 Symfony Yui Professional Web 204231

    19/25

    19

    Easy AJAX

  • 8/6/2019 Symfony Yui Professional Web 204231

    20/25

    20

    A better AJAX (unobtrusive)

    Unobtrusively add events/behaviors to a page

  • 8/6/2019 Symfony Yui Professional Web 204231

    21/25

    21

    Where to go from here?

    Read Documentation

    Yahoo DeveloperNetwork

    http://developer.yahoo.com/ symfony Project

    http://symfony-project.com/book

  • 8/6/2019 Symfony Yui Professional Web 204231

    22/25

    22

    Documentation

    The Definitive Guide to symfony

    http://symfony-project.com/book/trunk

    Released open source 1/29/2007

    Licensed under GFDL

    API Documentation

    Good coverage

    Wiki

    Many useful guides and how to knowledge

    Many user contributed tips

  • 8/6/2019 Symfony Yui Professional Web 204231

    23/25

    23

    Questions?

  • 8/6/2019 Symfony Yui Professional Web 204231

    24/25

    24

    YAHOO IS HIRING

    Are you good with AJAX, PHP,

    DHTML/XHTML, Javascript, CSS,Actionscript / Flash?

    Then we have a job for you!

  • 8/6/2019 Symfony Yui Professional Web 204231

    25/25

    25

    Enjoy the rest of the conference!