Symfony 簡介
Who am I    Ricky 是我   http://ricky.ez2.us/   ricky@ez2.us   http://www.plurk.com/rickysu
Symfonya web application framework      for PHP projects
Version 1.0released early 2007 under MIT license.    sponsored by Sensio
Symfony 整合了這些東西   Mojavi3­DEV  ­  Controller   Propel , Doctrine  ­   ORM   Prado  ­  for i18n support   Spyc  ­  for ...
Symfony 也參考了其他 Framework   Ruby      ­ Rails :  Helpers for templates, routing.   Java      ­ Spring : Dependency inject...
Symfony 也創造了一些新東西   Web debug toolbar 。   新的 Form  元件,取代 helper 系統。
但這都不是重點
如何使用 Symfony !
開發工具 ?
選 Netbeans 就對了http://netbeans.org/
Netbeans Demo
The Routing# apps/frontend/config/routing.ymlmember:   url:          /:module.aspx  param:    { action: index }member_acti...
The Forms  Widgets           Validator用來決定欄位的型態     用來驗證欄位數值
以往採用 helper 的產生方式<?php echo form_tag(Regist,array(method=>POST))?><tr>   <td><?php echo label_tag($form[name])?></td>    <...
新的 Form Object   表單欄位型態在 form object 中定義。   表單數值在 form object 中檢查。   將表單的驗證邏輯由 controller 中抽離。   讓表單可以重用。
Form in template(view)<?php echo form_tag(Regist,array(method=>POST))?>  <?php echo $Form­>renderHiddenFields() ?>  <?php ...
Form in action(controller)    public function executeRegist(sfWebRequest $Request){        $this­>Form = new RegisterForm(...
i18n   Symfony 提供了多國語言的支援。   幾個步驟就輕鬆搞定。
Admin Generator   這是一個快速後台產生器。   有用過 Ruby on Rails  或是 Django 的人一     定不陌生。   只需修改 config 就可以作一個具有權限控     管的後台了。
Web Debug Toolbar
Why Symfony?
文件多    http://www.symfony­project.org/doc/1_4/   A Gentle Introduction to symfony   Practical symfony   The symfony Ref...
活躍的社群   Mailing­list / forum / IRC   More than 1300 plugins , 500 developers.   300K unique visitors per month      on ...
多到不行的 Config
Symfony 預設情況下不修改 Config 就能運作
但是 Config 可以作很多事cache.yml              security.yml_list:                 all:   enabled:  true         is_secure:   true ...
Symfony 被批評的地方
安裝麻煩 ?
安裝方法   安裝 Symfony core lib     pear channel­discover pear.symfony­project.com     pear install symfony/symfony   建立專案   ...
設定 db schema 好麻煩
從已存在的 DB 中建立 Model   在 DB 宣告好 foreign key 。   匯入 schema.yml     symfony docteint:build­schema   建立 model , form , filte...
Symfony 效能太差 ?
其實是有解決方法的
請不要用 Symfonydie(Hello World);
Symfony 已經足夠應付許多大型專案   Yahoo! Answers   Yahoo! Bookmarks   delicious.com
還有疑慮嗎 ?
24 天的實戰教程         幫你解除疑惑。http://www.symfony-project.org/jobeet/1_4/Doctrine/en/
Thanks
Upcoming SlideShare
Loading in …5
×

Symfony簡介

3,429 views
3,287 views

Published on

phpconf 2011 Symfony簡介 簡報檔

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,429
On SlideShare
0
From Embeds
0
Number of Embeds
1,057
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Symfony簡介

  1. 1. Symfony 簡介
  2. 2. Who am I Ricky 是我 http://ricky.ez2.us/ ricky@ez2.us http://www.plurk.com/rickysu
  3. 3. Symfonya web application framework for PHP projects
  4. 4. Version 1.0released early 2007 under MIT license. sponsored by Sensio
  5. 5. Symfony 整合了這些東西 Mojavi3­DEV  ­  Controller Propel , Doctrine  ­   ORM Prado  ­  for i18n support Spyc  ­  for YAML Parsing Pake  ­  for command­line tool 
  6. 6. Symfony 也參考了其他 Framework Ruby  ­ Rails :  Helpers for templates, routing. Java ­ Spring : Dependency injection container. Python ­ Django : request / response , controller
  7. 7. Symfony 也創造了一些新東西 Web debug toolbar 。 新的 Form  元件,取代 helper 系統。
  8. 8. 但這都不是重點
  9. 9. 如何使用 Symfony !
  10. 10. 開發工具 ?
  11. 11. 選 Netbeans 就對了http://netbeans.org/
  12. 12. Netbeans Demo
  13. 13. The Routing# apps/frontend/config/routing.ymlmember:  url:          /:module.aspx param:    { action: index }member_actions_edit: url:         /:module/:id­:name.html param:  { action: edit } options:     segment_separators:    [ / , ­ , . ] requirements:    id:    d+member_actions: url:         /:module/:id/:action requirements:    id:    d+
  14. 14. The Forms Widgets Validator用來決定欄位的型態 用來驗證欄位數值
  15. 15. 以往採用 helper 的產生方式<?php echo form_tag(Regist,array(method=>POST))?><tr> <td><?php echo label_tag($form[name])?></td>    <td><?php echo input_tag($form[name])?></td></tr><tr> <td><?php echo label_tag($form[sex])?></td>    <td><?php echo radio_button_tag($form[sex])?></td></tr><?php echo form_tag_end()?>
  16. 16. 新的 Form Object 表單欄位型態在 form object 中定義。 表單數值在 form object 中檢查。 將表單的驗證邏輯由 controller 中抽離。 讓表單可以重用。
  17. 17. Form in template(view)<?php echo form_tag(Regist,array(method=>POST))?> <?php echo $Form­>renderHiddenFields() ?> <?php foreach($Form as $FormField):?> <?php if(!$FormField­>isHidden()):?>   <div>     <?php echo $FormField­>renderLabel()?>     <?php echo $FormField?>     <?php if($FormField­>hasError()):?>        <span><?php echo $FormField­>renderError()?></span>     <?php endif?>  </div> <?php endif?> <?php endforeach?><?php echo form_tag_end()?>
  18. 18. Form in action(controller)    public function executeRegist(sfWebRequest $Request){     $this­>Form = new RegisterForm(new Register());     if($Request­>isMethod(post)){          $this­>Form­>bind(                $Request­>getParameter($this­>Form­>getName())          );          if($this­>Form­>isValid()) {                $this­>Form­>save();          }     } }
  19. 19. i18n Symfony 提供了多國語言的支援。 幾個步驟就輕鬆搞定。
  20. 20. Admin Generator 這是一個快速後台產生器。 有用過 Ruby on Rails  或是 Django 的人一 定不陌生。 只需修改 config 就可以作一個具有權限控 管的後台了。
  21. 21. Web Debug Toolbar
  22. 22. Why Symfony?
  23. 23. 文件多 http://www.symfony­project.org/doc/1_4/ A Gentle Introduction to symfony Practical symfony The symfony Reference Book More with symfony
  24. 24. 活躍的社群 Mailing­list / forum / IRC More than 1300 plugins , 500 developers. 300K unique visitors per month  on the official web site  http://www.symfony­project.org/
  25. 25. 多到不行的 Config
  26. 26. Symfony 預設情況下不修改 Config 就能運作
  27. 27. 但是 Config 可以作很多事cache.yml security.yml_list: all: enabled:  true is_secure:   true lifetime:  3600 credentials: adminindex: edit: enabled:  true credentials: [admin,edit] lifetime:  3600 with_layout: false
  28. 28. Symfony 被批評的地方
  29. 29. 安裝麻煩 ?
  30. 30. 安裝方法 安裝 Symfony core lib pear channel­discover pear.symfony­project.com pear install symfony/symfony 建立專案 symfony generate:project myproject沒有解開壓縮檔的步驟,這果然很麻煩。
  31. 31. 設定 db schema 好麻煩
  32. 32. 從已存在的 DB 中建立 Model 在 DB 宣告好 foreign key 。 匯入 schema.yml symfony docteint:build­schema 建立 model , form , filters symfony doctrine:build –all­classes 不用宣告 has_many , belongs_to 。 Table 名稱不用是複數,這好麻煩。
  33. 33. Symfony 效能太差 ?
  34. 34. 其實是有解決方法的
  35. 35. 請不要用 Symfonydie(Hello World);
  36. 36. Symfony 已經足夠應付許多大型專案 Yahoo! Answers Yahoo! Bookmarks delicious.com
  37. 37. 還有疑慮嗎 ?
  38. 38. 24 天的實戰教程 幫你解除疑惑。http://www.symfony-project.org/jobeet/1_4/Doctrine/en/
  39. 39. Thanks

×