Your SlideShare is downloading. ×
0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
symfony + YUI = professional web 2.0
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

symfony + YUI = professional web 2.0

25,999

Published on

Published in: Technology
2 Comments
21 Likes
Statistics
Notes
No Downloads
Views
Total Views
25,999
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
672
Comments
2
Likes
21
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. symfony + yui = web 2.0 framework Dustin Whittle Social Search Group
    • 2. Introduction <ul><li>This session will cover rapid application development using the symfony + yui platform. </li></ul><ul><li>Learn why YUI is the perfect compliment to symfony, and how it will make building web applications faster, simpler, and more compatible. </li></ul>
    • 3. What is the symfony project? <ul><li>Full stack web application framework built for rapid application development </li></ul><ul><li>Written in PHP5 </li></ul><ul><li>A growing community since 2005 </li></ul><ul><li>Open source and free </li></ul><ul><li>Licensed under the MIT license </li></ul><ul><li>symfony is a web application framework, which automates most of the tedious tasks of an AJAX developer </li></ul>
    • 4. Why a framework? <ul><li>Another software layer (symfony, php, apache, linux/bsd) </li></ul><ul><li>Factors out common patterns </li></ul><ul><ul><li>Code Structure / Layout </li></ul></ul><ul><ul><li>Configuration </li></ul></ul><ul><ul><li>URL Routing </li></ul></ul><ul><ul><li>Authentication / Security </li></ul></ul><ul><ul><li>Form Validation / Repopulation </li></ul></ul><ul><ul><li>Internationalization / Localization </li></ul></ul><ul><li>Frameworks provide a standard api </li></ul><ul><ul><li>Encourages good design, leads to developer consistency </li></ul></ul><ul><ul><li>Long term maintainability </li></ul></ul>
    • 5. Why symfony? <ul><li>Agile Development </li></ul><ul><ul><li>Built on best practices using proven design patterns </li></ul></ul><ul><ul><li>Built to factor out common patterns and allow developers to focus on application logic </li></ul></ul><ul><li>Performance / Stability </li></ul><ul><ul><li>Proven to scale on very active web sites - Y! </li></ul></ul><ul><ul><li>Tested code base (4000+ unit and functional tests) </li></ul></ul><ul><li>Maintainability </li></ul><ul><ul><li>Enforces consistency among developers </li></ul></ul><ul><li>Support </li></ul><ul><ul><li>Great documentation and very active community </li></ul></ul>
    • 6. Easy rich interactions in PHP <ul><li>Template Helpers inspired from Rails </li></ul><ul><ul><li>Based on prototype/script.aculo.us </li></ul></ul><ul><li>Easy implementations in one line of php </li></ul><ul><ul><li>AJAX Interactions -&gt; link_to_remote </li></ul></ul><ul><ul><li>Visual Effects -&gt; visual_effect </li></ul></ul><ul><ul><li>Auto Complete -&gt; input_autocomplete_tag </li></ul></ul><ul><ul><li>Inline Editing -&gt; input_inline_editor_tag </li></ul></ul><ul><ul><li>Drag and Drop -&gt; draggable_element </li></ul></ul><ul><ul><li>Rich Text Editing -&gt; textarea_tag w/ rich=tinymce|fck </li></ul></ul><ul><ul><li>Rich Calendar -&gt; input_date_tag </li></ul></ul>
    • 7. Integrate your own PHP libraries <ul><li>Autoloading hooks for easy integration of </li></ul><ul><ul><li>Zend Framework </li></ul></ul><ul><ul><li>EZ Components </li></ul></ul><ul><ul><li>PEAR </li></ul></ul><ul><ul><li>Custom </li></ul></ul>
    • 8. Integrated Javascript Libraries <ul><li>Symfony makes it easy to build rich internet applications </li></ul><ul><ul><li>Prototype </li></ul></ul><ul><ul><ul><li>Javascript framework </li></ul></ul></ul><ul><ul><li>script.aculo.us </li></ul></ul><ul><ul><ul><li>AJAX interactions </li></ul></ul></ul><ul><ul><ul><li>Visual Effects </li></ul></ul></ul><ul><ul><li>TinyMCE </li></ul></ul><ul><ul><ul><li>Rich Text Editor (WYSIWYG) </li></ul></ul></ul><ul><ul><li>DynArch.com Rich Calendar </li></ul></ul>
    • 9. AJAX Toolkit Integration <ul><li>Prototype/scriptaculous built-in </li></ul><ul><li>Plugins available: </li></ul><ul><ul><li>sfUJSPlugin -&gt; helpers for UJS via jQuery </li></ul></ul><ul><ul><li>sfYUIPlugin -&gt; helpers for YUI </li></ul></ul><ul><li>Build your own helpers </li></ul>
    • 10. Why symfony + YUI? <ul><li>PHP Framework </li></ul><ul><li>Javascript Framework </li></ul><ul><li>CSS Framework </li></ul><ul><li>Integrated Development Environment </li></ul><ul><ul><li>Helpers </li></ul></ul><ul><ul><ul><li>Controls </li></ul></ul></ul><ul><ul><ul><li>Widgets </li></ul></ul></ul><ul><ul><ul><li>Validation </li></ul></ul></ul><ul><ul><li>Debugging </li></ul></ul><ul><ul><ul><li>Integrated Logging Console </li></ul></ul></ul><ul><ul><li>IDE Support: Aptana </li></ul></ul>
    • 11. Why Yahoo User Interface? <ul><li>Industrial-grade JavaScript for DHTML and Ajax. The same libraries that power Yahoo! today. </li></ul><ul><li>Yahoo! Design Patterns Library </li></ul><ul><ul><li>Our thinking and solutions on common interface design issues. </li></ul></ul><ul><li>Graded Browser Support </li></ul><ul><ul><li>An inclusive definition of support and a framework for taming the ever-expanding world of browsers and frontend technologies. </li></ul></ul><ul><li>Documentation </li></ul><ul><ul><li>In depth examples and api documentation </li></ul></ul>
    • 12. Why YUI javascript framework? <ul><li>Debugging Environment (Logger + Console) </li></ul><ul><li>Event System (for easy unobtrusive design) </li></ul><ul><li>Connection / XHR / AJAX </li></ul><ul><li>Animation &amp; Effects </li></ul><ul><li>Autocomplete + Drag &amp; Drop </li></ul><ul><li>Menus / Dialogs / Overlays / Tooltips / Windows </li></ul><ul><li>Browser History Manager </li></ul><ul><li>Controls: Button, Slider, Calendar, Rich Text Editor, Color Picker </li></ul>
    • 13. Why YUI css framework? <ul><li>Neutralizes browser CSS styles to be consistent between browsers </li></ul><ul><li>Foundation for typography and font-sizing </li></ul><ul><li>Grids for quick / proven layouts </li></ul><ul><ul><li>Over 1000 wireframes with online builder </li></ul></ul><ul><li>Base applies consistent style foundation for common elements </li></ul><ul><ul><li>Supports skinning, default sam skin </li></ul></ul>
    • 14. symfony YUI Integration <ul><li>Debug Integration </li></ul><ul><ul><li>symfony / yui web debug toolbars </li></ul></ul><ul><ul><ul><li>Firebug console log integration </li></ul></ul></ul><ul><ul><li>Key shortcuts </li></ul></ul><ul><ul><ul><li>Symfony, yui, js shell, css reboot </li></ul></ul></ul><ul><ul><li>YAHOO.symfony.debug.logger </li></ul></ul><ul><ul><li>YAHOO.symfony.debug.toolbar </li></ul></ul>
    • 15. symfony YUI Integration <ul><li>Event System ( YAHOO.symfony.event ) </li></ul><ul><ul><li>Subscriptions: available | ready </li></ul></ul><ul><ul><ul><li>YAHOO.symfony.event.ready.subscribe(YAHOO.symfony.initialize); </li></ul></ul></ul><ul><ul><li>Delegation when appropriate (parent -&gt; child) </li></ul></ul><ul><ul><li>sfYUI::addEvent php behaviors </li></ul></ul><ul><ul><li>onclick|onsubmit| become events </li></ul></ul><ul><li>Form Validation ( YAHOO.symfony.form ) </li></ul><ul><ul><li>Common Validations (required, regex, callbacks) </li></ul></ul><ul><ul><li>Configurable via class names or configuration </li></ul></ul>
    • 16. symfony YUI Integration <ul><li>Layouts by default </li></ul><ul><ul><li>Reset-Fonts-Grids </li></ul></ul><ul><ul><li>Base </li></ul></ul><ul><ul><li>Skin (sam) </li></ul></ul><ul><li>YUI / symfony base js/css </li></ul><ul><li>Appending events via sfYUIFilter </li></ul><ul><ul><li>ID generation for events </li></ul></ul>
    • 17. Symfony YUI Integration <ul><li>Helpers </li></ul><ul><ul><li>UJS (event driven) </li></ul></ul><ul><ul><ul><li>On* are now automatically events </li></ul></ul></ul><ul><ul><ul><ul><li>link_to_function, button_to_function </li></ul></ul></ul></ul><ul><ul><li>Ajax </li></ul></ul><ul><ul><ul><li>link_to_remote, button_to_remote, form_to_remote, remote_function </li></ul></ul></ul><ul><ul><ul><li>sfYUI::connection() </li></ul></ul></ul>
    • 18. symfony YUI Integration <ul><li>Helpers </li></ul><ul><ul><li>Controls </li></ul></ul><ul><ul><ul><li>input_date_tag -&gt; YUI Calendar </li></ul></ul></ul><ul><ul><ul><li>textarea_tag -&gt; YUI Rich Text Editor </li></ul></ul></ul><ul><ul><ul><li>slider_control -&gt; YUI Slider </li></ul></ul></ul><ul><ul><ul><li>input_autocomplete_tag -&gt; YUI Autocomplete </li></ul></ul></ul><ul><ul><li>UI </li></ul></ul><ul><ul><ul><li>link_to_dialog -&gt; modal dialog </li></ul></ul></ul><ul><ul><ul><li>Tooltip -&gt; tool tips </li></ul></ul></ul><ul><ul><li>Effects </li></ul></ul><ul><ul><ul><li>visual_effect | sfYUI::animation() </li></ul></ul></ul>
    • 19. Easy AJAX <ul><li>&lt;?php use_helper(’Javascript&apos;) ?&gt; </li></ul><ul><li>&lt;?php echo link_to_remote(’about (ajax)&apos;, array(&apos;update&apos; =&gt; ’content&apos;, &apos;url&apos; =&gt; ’content/render?permalink=about&apos;)); ?&gt; </li></ul><ul><li>&lt;div id=“content”&gt;&lt;/div&gt; </li></ul>
    • 20. A better AJAX (unobtrusive) <ul><li>Unobtrusively add events/behaviors to a page </li></ul><ul><li>&lt;?php use_helper(’YUIJavascript&apos;) ?&gt; </li></ul><ul><li>&lt;?php echo link_to_remote(’about (ajax)&apos;, array(&apos;update&apos; =&gt; ’content&apos;, &apos;url&apos; =&gt; ’content/render?permalink=about&apos;)); ?&gt; </li></ul><ul><li>&lt;div id=“content”&gt;&lt;/div&gt; </li></ul>
    • 21. Where to go from here? <ul><li>Read Documentation </li></ul><ul><ul><li>Yahoo Developer Network </li></ul></ul><ul><ul><ul><li>http://developer.yahoo.com/ </li></ul></ul></ul><ul><ul><li>symfony Project </li></ul></ul><ul><ul><ul><li>http://symfony-project.com/book </li></ul></ul></ul>
    • 22. Documentation <ul><li>The Definitive Guide to symfony </li></ul><ul><ul><li>http://symfony-project.com/book/trunk </li></ul></ul><ul><ul><li>Released open source 1/29/2007 </li></ul></ul><ul><ul><li>Licensed under GFDL </li></ul></ul><ul><li>API Documentation </li></ul><ul><ul><li>Good coverage </li></ul></ul><ul><li>Wiki </li></ul><ul><ul><li>Many useful guides and how to knowledge </li></ul></ul><ul><ul><li>Many user contributed tips </li></ul></ul>
    • 23. Questions?
    • 24. YAHOO IS HIRING Are you good with AJAX, PHP, DHTML/XHTML, Javascript, CSS, Actionscript / Flash? Then we have a job for you!
    • 25. Enjoy the rest of the conference!

    ×