symfony權(quán)威指南

出版時(shí)間:2008-7  出版社:電子工業(yè)出版社  作者:(法)扎尼諾托,(法)波唐西耶著  頁數(shù):358  字?jǐn)?shù):471  譯者:江樂,王唯真,杭健,王天石譯  
Tag標(biāo)簽:無  

內(nèi)容概要

本書介紹了symfony這個(gè)領(lǐng)先的PHP開發(fā)框架,展示如何利用symfony的眾多功能更快更有效率地開發(fā)Web應(yīng)用程序,即使你只懂一點(diǎn)PHP也沒有關(guān)系。在本書里,你將了解如何使用symfony建立Web應(yīng)用程序。本書分成五篇:“基礎(chǔ)知識(shí)”篇,包含所有的基本概念和開始symfony的基本知識(shí);“核心架構(gòu)”篇,講述模型視圖控制器(MVC)在symfony中的實(shí)現(xiàn),以及如何用這樣的三層結(jié)構(gòu)模型建立頁面和應(yīng)用程序;“特殊功能”篇,解釋如何使用symfony加快“漂亮”的URL、表單、驗(yàn)證、Ajax交互、緩存和國際化應(yīng)用程序的開發(fā);“開發(fā)工具”篇,介紹 symfony提供的加快日常開發(fā)的工具,代碼生成、單元測試框架、命令行任務(wù)和插件;“成為symfony專家”篇,揭示symfony代碼里的一些秘密,講述了如何調(diào)整框架的行為?! ”緯哪康脑谟诮档涂蚣苋腴T的難度,為PHP開發(fā)者提供1.0版的參考書,讓這個(gè)框架能被企業(yè)接受。

作者簡介

  Francois Zaninotto是一名互聯(lián)網(wǎng)應(yīng)用項(xiàng)目顧問和項(xiàng)目經(jīng)理。1997年畢業(yè)于法國商業(yè)學(xué)校Ecole des Mines計(jì)算機(jī)科學(xué)專業(yè)。在選擇從事互聯(lián)網(wǎng)行業(yè)之前他嘗試了多份工作:兒童機(jī)構(gòu)的社工、自行車出租店經(jīng)理、輪胎制造商的Web項(xiàng)目經(jīng)理、為這個(gè)輪胎制造商撰寫到德國旅游的導(dǎo)游文章,以及Médecins Sans Frontières的物流師和某消費(fèi)信用公司的IT架構(gòu)師。他于2003年加入Sensio網(wǎng)絡(luò)公司,此后負(fù)責(zé)了許多互聯(lián)網(wǎng)和Intranet的Web應(yīng)用項(xiàng)目,解決了很多復(fù)雜的可用性問題(Usability),涉及許多應(yīng)用敏捷開發(fā)模式模式模型和先進(jìn)的Web技術(shù).symfony項(xiàng)目開始之后,他負(fù)責(zé)編寫文檔.symfony在線書籍和教程?! abien Potencier 是天生的企業(yè)家.從10歲開始,他就總是夢想著成立和運(yùn)營公司.他在法國商業(yè)學(xué)校EcoledesMines取得工程學(xué)學(xué)位和在巴黎高等商業(yè)學(xué)院(HECParis)取得企業(yè)MBA學(xué)位之后開始職業(yè)生涯.1998年,他剛畢業(yè)的那年,F(xiàn)abien和他的同學(xué)成立了他的第一家公司.這是一家專注于簡化技術(shù)和開源技術(shù)的網(wǎng)絡(luò)公司,它的名字是Sensio.他靠自己敏銳的專業(yè)知識(shí)和無止盡的求知欲獲得了很多法國大公司的項(xiàng)目.隨著Sensio的不斷發(fā)展(寫這本書的時(shí)候,它有30多名員工),F(xiàn)abien開始從事其他業(yè)務(wù):一個(gè)在Lille(法國)的室內(nèi)卡丁車賽道,一個(gè)汽車配件電子商務(wù)網(wǎng)站,還有一個(gè)在法國最著名的賽道的自動(dòng)駕駛訓(xùn)練生意.Fabien是symfony框架的主要開發(fā)者,他負(fù)責(zé)所有代碼的95%.現(xiàn)在,F(xiàn)abien把大部分時(shí)間花在Sensio的CEO和symfony項(xiàng)目負(fù)責(zé)人的工作上。

書籍目錄

第1篇  基礎(chǔ)知識(shí) 第1章  symfony介紹	  1.1  symfony簡介	   1.1.1  symfony的功能	   1.1.2  誰開發(fā)了symfony?為什么要開發(fā)symfony	   1.1.3  symfony社區(qū)	   1.1.4  symfony適合我嗎	  1.2  基本概念	   1.2.1  PHP 5	   1.2.2  面向?qū)ο蟪绦蛟O(shè)計(jì)(OOP)	   1.2.3  魔術(shù)方法(Magic Methods)	   1.2.4  PHP擴(kuò)展與應(yīng)用程序庫(PEAR)	   1.2.5  對象關(guān)系映射(ORM)	   1.2.6  快速應(yīng)用程序開發(fā)(RAD)	   1.2.7  YAML	  1.3  總結(jié)	 第2章  探索symfony代碼	  2.1  MVC模式	   2.1.1  MVC層次	   2.1.2  MVC以外的層分離方式	   2.1.3  symfony的MVC實(shí)現(xiàn)方式	   2.1.4  symfony核心類	  2.2  代碼組織	   2.2.1  項(xiàng)目結(jié)構(gòu):應(yīng)用程序、模塊與動(dòng)作	   2.2.2  目錄結(jié)構(gòu)	  2.3  常用工具	   2.3.1  參數(shù)存儲(chǔ)器   2.3.1  (Parameter Holoder)	   2.3.2  常量(Contant)	   2.3.3  類自動(dòng)載入(Class Autoloading)	  2.4  總結(jié)	 第3章  運(yùn)行symfony	  3.1  安裝沙盒(Sandbox)	   3.2  安裝symfony庫	  3.2.1  PEAR方式安裝symfony	   3.2.2  從SVN庫中獲得symfony	  3.3  配置一個(gè)程序	   3.3.1  建立一個(gè)項(xiàng)目	   3.3.2  建立一個(gè)應(yīng)用程序	  3.4  配置Web服務(wù)器	   3.4.1  設(shè)置虛擬主機(jī)	   3.4.2  配置一個(gè)共享服務(wù)器	  3.5  安裝問題	   3.5.1  常見問題	   3.5.2  symfony資源	  3.6  源代碼版本控制	  3.7  總結(jié)	 第4章  頁面創(chuàng)建基礎(chǔ)	  4.1  建立模塊框架	  4.2  增加一個(gè)頁面	   4.2.1  增加一個(gè)動(dòng)作	   4.2.2  增加一個(gè)模板	   4.2.3  從動(dòng)作傳遞信息給模板	  4.3  通過表單從用戶獲取數(shù)據(jù)	  4.4  鏈接到另一個(gè)動(dòng)作	  4.5  從請求中取得信息	  4.6  總結(jié)	 第5章  配置symfony	  5.1  配置系統(tǒng)	   5.1.1  YAML語法與symfony慣例	   5.1.2  救命,YAML文件把我的程序搞死了	  5.2  配置文件概述	   5.2.1  項(xiàng)目配置	   5.2.2  應(yīng)用程序配置	   5.2.3  模塊配置	  5.3  環(huán)境	   5.3.1  什么是環(huán)境	   5.3.2  配置層疊	  5.4  配置緩存	  5.5  從代碼里訪問配置信息	   5.5.1  sfConfig類	   5.5.2  自定義應(yīng)用程序配置與app.yml	  5.6  使用配置文件的技巧	   5.6.1  在YAML文件里使用常量	   5.6.2  在配置文件里使用腳本	   5.6.3  瀏覽你的YAML文件	  5.7  總結(jié)	第2篇  核心架構(gòu) 第6章  深入了解控制器層	  6.1  前端控制器	   6.1.1  前端控制器的工作細(xì)節(jié)	   6.1.2  默認(rèn)的前端控制器	   6.1.3  調(diào)用其他的前端控制器來切換環(huán)境	   6.1.4  批處理文件	  6.2  動(dòng)作(Action)	   6.2.1  動(dòng)作類	   6.2.2  另一種動(dòng)作類語法	   6.2.3  從動(dòng)作里獲取信息	   6.2.4  動(dòng)作結(jié)束	   6.2.5  跳到另一個(gè)動(dòng)作	   6.2.6  幾個(gè)動(dòng)作共享的代碼	  6.3  訪問請求	  6.4  用戶會(huì)話	   6.4.1  訪問用戶會(huì)話	   6.4.2  Flash屬性	   6.4.3  會(huì)話管理	  6.5  動(dòng)作安全	   6.5.1  訪問限制	   6.5.2  訪問授權(quán)	   6.5.3  復(fù)合證書	  6.6  檢驗(yàn)和處理錯(cuò)誤的方法	  6.7  過濾器	   6.7.1  過濾器鏈	   6.7.2  建立自己的過濾器	   6.7.3  過濾器激活和參數(shù)	   6.7.4  過濾器實(shí)例	  6.8  模塊配置	  6.9  總結(jié)	 第7章  深入了解視圖層	  7.1  模板	   7.1.1  輔助函數(shù)(Helpers)	   7.1.2  頁面布局	   7.1.3  模板快捷變量	  7.2  代碼片段(Code Fragments)	   7.2.1  局部模板(Partial)	   7.2.2  組件(Component)	   7.2.3  槽(Slot)	  7.3  視圖配置	   7.3.1  view.yml文件	   7.3.2  響應(yīng)對象	   7.3.3  視圖配置	  7.4  組件槽(Component Slot)	  7.5  輸出轉(zhuǎn)義(Output Escaping)	   7.5.1  開啟輸出轉(zhuǎn)義	   7.5.2  轉(zhuǎn)義策略	   7.5.3  轉(zhuǎn)義輔助函數(shù)	   7.5.4  轉(zhuǎn)義數(shù)組與對象	  7.6  總結(jié)	 第8章  深入了解模型層	  8.1  為什么使用ORM和抽象層	  8.2  symfony的數(shù)據(jù)庫   8.2  設(shè)計(jì)(schema)	   8.2.1  設(shè)計(jì)示例	   8.2.2  基本設(shè)計(jì)語法	  8.3  模型類	   8.3.1  基礎(chǔ)類和自定義類	   8.3.2  對象和Peer類	  8.4  訪問數(shù)據(jù)	   8.4.1  獲得列值	   8.4.2  獲得相關(guān)聯(lián)的數(shù)據(jù)	   8.4.3  保存和刪除數(shù)據(jù)	   8.4.4  通過主鍵來獲得記錄	   8.4.5  通過Criteria獲得數(shù)據(jù)	   8.4.6  直接使用SQL查詢語句	   8.4.7  使用特殊日期列	  8.5  數(shù)據(jù)庫連接	  8.6  擴(kuò)展模型	   8.6.1  增加新的方法	   8.6.2  覆蓋現(xiàn)有方法	   8.6.3  使用模型行為	  8.7  擴(kuò)展設(shè)計(jì)(schema)語法	   8.7.1  屬性	   8.7.2  列的詳細(xì)資料	   8.7.3  外鍵	   8.7.4  索引	   8.7.5  空列	   8.7.6  i18n表	   8.7.7  超越schema.yml:   8.7.7  schema.xml	  8.8  不要重復(fù)建立模型	   8.8.1  基于已有的設(shè)計(jì)建立   6.1.3  一個(gè)SQL數(shù)據(jù)庫結(jié)構(gòu)	   8.8.2  基于已有數(shù)據(jù)庫建立   6.1.3  YAML數(shù)據(jù)模型	  8.9  總結(jié)	第3篇  特殊功能 第9章  鏈接和路由系統(tǒng)	  9.1  什么是路由	   9.1.1  URL是服務(wù)器指令	   9.1.2  URL是界面的一部分	   9.1.3  URL如何工作	  9.2  URL重寫	  9.3  鏈接輔助函數(shù)	   9.3.1  超鏈接、按鈕和表單	   9.3.2  鏈接輔助函數(shù)的可選參數(shù)	   9.3.3  偽裝的GET和POST選項(xiàng)	   9.3.4  把請求參數(shù)強(qiáng)制設(shè)置為   6.1.3  GET變量	   9.3.5  使用絕對路徑	  9.4  路由配置	   9.4.1  規(guī)則和模式	   9.4.2  模式限制	   9.4.3  設(shè)置默認(rèn)值	   9.4.4  用規(guī)則名字來加快   6.1.3  路由速度	   9.4.5  增加.html擴(kuò)展名	   9.4.6  不使用routing.yml創(chuàng)建規(guī)則	  9.5  在動(dòng)作中處理路由	  9.6  總結(jié)	 第10章  表單	  10.1  表單輔助函數(shù)	   10.1.1  主要的表單標(biāo)簽	   10.1.2  標(biāo)準(zhǔn)的表單元素	   10.1.3  日期輸入控件	   10.1.4  編輯富文本(rich text)	   10.1.5  選擇國家和語言	  10.2  對象的表單輔助函數(shù)	   10.2.1  生成對象的下拉列表	   10.2.2  創(chuàng)建一個(gè)基于外鍵列的下拉列表	   10.2.3  更新對象	  10.3  表單驗(yàn)證	   10.3.1  驗(yàn)證器	   10.3.2  驗(yàn)證文件	   10.3.3  重新顯示表單	   10.3.4  在表單中顯示出錯(cuò)信息	   10.3.5  重新填充表單數(shù)據(jù)	   10.3.6  標(biāo)準(zhǔn)symfony驗(yàn)證器	   10.3.7  具名驗(yàn)證器(Named Validator)	   10.3.8  重新指定驗(yàn)證方法	   10.3.9  驗(yàn)證文件到底是什么樣子	  10.4  復(fù)雜的驗(yàn)證	   10.4.1  創(chuàng)建一個(gè)定制的驗(yàn)證器	   10.4.2  用數(shù)組表示表單域	   10.4.3  驗(yàn)證空域	  10.5  總結(jié)	 第11章  集成Ajax	  11.1  基本的JavaScript輔助函數(shù)	   11.1.1  模板中的JavaScript	   11.1.2  更新一個(gè)DOM元素	   11.1.3  輕松地降級(jí)Graceful Degradation)	  11.2  Prototype	  11.3  Ajax輔助函數(shù)	   11.3.1  Ajax鏈接	   11.3.2  Ajax驅(qū)動(dòng)的表單	   11.3.3  周期性調(diào)用遠(yuǎn)程函數(shù)	  11.4  遠(yuǎn)程調(diào)用參數(shù)	   11.4.1  根據(jù)響應(yīng)狀態(tài)更新不同的元素	   11.4.2  根據(jù)位置更新元素	   11.4.3  根據(jù)條件更新元素	   11.4.4  確定Ajax請求方法	   11.4.5  授權(quán)腳本運(yùn)行	   11.4.6  創(chuàng)建回調(diào)函數(shù)	  11.5  創(chuàng)建視覺效果	  11.6  JSON	   11.7  用Ajax完成復(fù)雜的交互	   11.7.1  自動(dòng)完成	   11.7.2  拖放	   11.7.3  可排序列表	   11.7.4  就地編輯	  11.8  總結(jié)	 第12章  緩存	  12.1  緩存響應(yīng)	   12.1.1  全局緩存設(shè)置	   12.1.2  緩存一個(gè)動(dòng)作	   12.1.3  緩存一個(gè)局部模板、組件或者組件槽	   12.1.4  緩存模板片段	   12.1.5  動(dòng)態(tài)配置緩存	   12.1.6  使用極速緩存(Super Fast Cache)	  12.2  從緩存里刪除項(xiàng)目	   12.2.1  刪除整個(gè)緩存	   12.2.2  清除指定的緩存	   12.2.3  緩存目錄結(jié)構(gòu)	   12.2.4  手工清除緩存	  12.3  緩存測試與監(jiān)測	   12.3.1  建立一個(gè)臨時(shí)工作環(huán)境	   12.3.2  監(jiān)測性能	   12.3.3  基準(zhǔn)化分析(Benchmarking)	   12.3.4  識(shí)別緩存的部分	  12.4  HTTP    1.1與客戶端緩存	   12.4.1  增加ETag頭信息來避免發(fā)送重復(fù)的內(nèi)容	   12.4.2  增加Last-Modified頭信息避免發(fā)送仍然有效的內(nèi)容	   12.4.3  通過增加Vary頭信息來保存一個(gè)頁面的多個(gè)緩存版本	   12.4.4  通過增加Cache-Control頭信息來允許客戶端緩存	  12.5  總結(jié)	 第13章  國際化(i18n)與本地化(l10n)	  13.1  用戶的國家和   13.1  語言(User Culture)	   13.1.1  設(shè)置默認(rèn)的國家和語言	   13.1.2  改變用戶的國家和語言	   13.1.3  自動(dòng)確定用戶的國家和語言	  13.2  標(biāo)準(zhǔn)與格式	   13.2.1  根據(jù)用戶culture值輸出數(shù)據(jù)	   13.2.2  從本地化輸入獲取數(shù)據(jù)	  13.3  數(shù)據(jù)庫中的文本信息	   13.3.1  創(chuàng)建本地化數(shù)據(jù)庫設(shè)計(jì)(schema)	   13.3.2  運(yùn)用生成的i18n對象	  13.4  界面翻譯	   13.4.1  翻譯的配置	   13.4.2  運(yùn)用翻譯輔助函數(shù)	   13.4.3  運(yùn)用字典文件	   13.4.4  管理字典	   13.4.5  處理其他需要翻譯的元素	   13.4.6  處理復(fù)雜的翻譯需求	   13.4.7  在模板外調(diào)用翻譯輔助函數(shù)	  13.5  總結(jié)	第4篇  開發(fā)工具 第14章  生成器(Generator)	  14.1  基于模型生成代碼	   14.1.1  腳手架與管理界面	   14.1.2  初始化或生成代碼	   14.1.3  數(shù)據(jù)模型示例	  14.2  腳手架	   14.2.1  生成腳手架	   14.2.2  初始化腳手架	  14.3  管理界面	   14.3.1  初始化管理界面模塊	   14.3.2  初探生成的代碼	   14.3.3  generator.yml配置文件	  14.4  配置生成器	   14.4.1  字段	   14.4.2  視圖定制	   14.4.3  list視圖相關(guān)的定制	   14.4.4  edit視圖相關(guān)的定制	   14.4.5  處理外鍵	   14.4.6  增加交互	   14.4.7  表單驗(yàn)證	   14.4.8  使用證書限制用戶動(dòng)作	  14.5  修改生成模塊的外觀	   14.5.1  使用自定義樣式表	   14.5.2  增加自定義頭部與尾部	   14.5.3  自定義主題	  14.6  總結(jié)	 第15章  單元測試和功能測試	  15.1  自動(dòng)化測試	   15.1.1  單元測試和功能測試	   15.1.2  測試驅(qū)動(dòng)的開發(fā)方法	   15.1.3  lime測試框架	  15.2  單元測試	   15.2.1  單元測試概述	   15.2.2  單元測試方法	   15.2.3  測試參數(shù)	   15.2.4  測試單元任務(wù)	   15.2.5  測試樁(Stub)、測試資源(Fixture)和自動(dòng)加載	  15.3  功能測試	   15.3.1  功能測試概要	   15.3.2  用sfTestBrowser對象瀏覽	   15.3.3  運(yùn)用斷言	   15.3.4  運(yùn)用CSS選擇器	   15.3.5  在測試環(huán)境中工作	   15.3.6  功能測試任務(wù)	  15.4  為測試命名	  15.5  特別的測試需求	   15.5.1  在測試框架(Test Harness)   15.5.1  中進(jìn)行測試	   15.5.2  存取數(shù)據(jù)庫	   15.5.3  測試緩存	   15.5.4  測試客戶端交互	  15.6  總結(jié)	 第16章  應(yīng)用程序管理工具	  16.1  日志	   16.1.1  PHP日志	   16.1.2  symfony日志	  16.2  調(diào)試	   16.2.1  symfony調(diào)試模式	   16.2.2  symfony異常	   16.2.3  Xdebug擴(kuò)展	   16.2.4  網(wǎng)頁調(diào)試工具條	   16.2.5  手動(dòng)調(diào)試	  16.3  填充數(shù)據(jù)庫	   16.3.1  fixture文件格式	   16.3.2  導(dǎo)入數(shù)據(jù)	   16.3.3  使用關(guān)聯(lián)表	  16.4  部署應(yīng)用程序	   16.4.1  為FTP傳輸凍結(jié)項(xiàng)目	   16.4.2  使用rsync進(jìn)行增量   16.4.2  文件傳輸	   16.4.3  忽略無關(guān)文件	   16.4.4  管理投入使用的應(yīng)用程序	  16.5  總結(jié)	 第17章  擴(kuò)展symfony	  17.1  Mixins	   17.1.1  理解多重繼承	   17.1.2  Mixing類	   17.1.3  聲明一個(gè)類是可擴(kuò)展的	   17.1.4  注冊擴(kuò)展(Extension)	   17.1.5  更精確的擴(kuò)展	  17.2  factory	  17.3  橋接其他框架組件	  17.4  插件	   17.4.1  查找symfony插件	   17.4.2  安裝插件	   17.4.3  解讀插件	   17.4.4  如何寫一個(gè)插件	  17.5  總結(jié)	第5篇  成為symfony專家 第18章  性能	  18.1  調(diào)整服務(wù)器	  18.2  調(diào)整模型	   18.2.1  優(yōu)化Propel整合	   18.2.2  限制化合(Hydrate)   18.2.2  對象數(shù)量	   18.2.3  用Join讓結(jié)果數(shù)量最小化	   18.2.4  避免使用臨時(shí)數(shù)組	   18.2.5  繞過ORM	   18.2.6  數(shù)據(jù)庫加速	  18.3  調(diào)整視圖	   18.3.1  使用最快的代碼片段	   18.3.2  加速路由過程	   18.3.3  略過模板	   18.3.4  限制默認(rèn)的輔助函數(shù)	   18.3.5  壓縮響應(yīng)	  18.4  調(diào)整緩存	   18.4.1  選擇性地清除部分緩存	   18.4.2  生成緩存頁	   18.4.3  使用數(shù)據(jù)庫存儲(chǔ)系統(tǒng)   18.4.3  進(jìn)行緩存	   18.4.4  繞過symfony	   18.4.5  緩存函數(shù)調(diào)用的結(jié)果	   18.4.6  在服務(wù)器上緩存數(shù)據(jù)	  18.5  屏蔽未使用過的功能	  18.6  優(yōu)化你的代碼	   18.6.1  核心編譯	   18.6.2  sfOptimizer插件	  18.7  總結(jié)	 第19章  管理symfony配置文件	  19.1  symfony配置參數(shù)	   19.1.1  默認(rèn)的模塊和動(dòng)作	   19.1.2  激活可選特性	   19.1.3  功能特性配置	  19.2  擴(kuò)展自動(dòng)載入功能	  19.3  定制文件結(jié)構(gòu)	   19.3.1  基本的文件結(jié)構(gòu)	   19.3.2  定制文件結(jié)構(gòu)	   19.3.3  修改項(xiàng)目的Web根目錄	   19.3.4  連接symfony庫	  19.4  理解配置處理器	   19.4.1  默認(rèn)的配置處理器	   19.4.2  加入你自己的處理器	  19.5  控制PHP參數(shù)	  19.6  總結(jié)

章節(jié)摘錄

  第1章 symfony介紹  symfony能做什么?使用symfony需要掌握哪些知識(shí)?本章將回答這些問題?! ?.1 symfony簡介  開發(fā)框架(framework)可以自動(dòng)化地完成一些特定的開發(fā)模式來簡化應(yīng)用程序開發(fā)過程。開發(fā)框架還使程序代碼結(jié)構(gòu)化,使用開發(fā)框架,開發(fā)人員可以寫出更好、更易讀、更容易維護(hù)的代碼??傊?,開發(fā)框架簡化了編程,因?yàn)樗褟?fù)雜的操作封裝成了簡單的語句?! ymfony是一個(gè)完整的Web應(yīng)用開發(fā)框架,它為加速Web應(yīng)用開發(fā)提供了幾個(gè)關(guān)鍵功能。首先,它把Web應(yīng)用的業(yè)務(wù)規(guī)則,服務(wù)邏輯以及表現(xiàn)頁面分割開來。它還提供了大量的工具和類,以縮短開發(fā)復(fù)雜Web應(yīng)用的時(shí)間。另外,它把一些常用的任務(wù)變成了自動(dòng)化的方式執(zhí)行,從而使開發(fā)人員能夠完全專注于每個(gè)程序獨(dú)特的地方。這三個(gè)優(yōu)點(diǎn)綜合起來就意味著每次開發(fā)新的Web應(yīng)用的時(shí)候不用從頭做了!  symfony完全由PHP 5編寫。它經(jīng)過了廣泛的測試并被用于很多實(shí)際的項(xiàng)目,事實(shí)上一些高訪問量的電子商務(wù)網(wǎng)站正在使用symfony。symfony與包括MySQL,PostgreSQL,Oracle還有Microsoft SQL Server在內(nèi)的大多數(shù)數(shù)據(jù)庫系統(tǒng)兼容。symfony能夠在*nix與Windows平臺(tái)上運(yùn)行。我們現(xiàn)在來看一下symfony具體有哪些功能?! ?.1.1 symfony的功能  symfony是為了滿足下面的需求而開發(fā)的:  在大多數(shù)平臺(tái)上都能夠很容易安裝和配置(保證能運(yùn)行在標(biāo)準(zhǔn)*nix和Windows平臺(tái)上)?! 〔灰蕾嚹撤N特定的數(shù)據(jù)庫。  多數(shù)情況下容易使用,并且有足夠的彈性來實(shí)現(xiàn)更復(fù)雜的功能?! ∽裱瓚T例重于配置原則——開發(fā)人員只需要配置與慣例不同的部分。  能夠適應(yīng)大多數(shù)Web最佳實(shí)踐與設(shè)計(jì)模式。  可供企業(yè)使用——能夠適應(yīng)現(xiàn)有的IT策略與體系,并且足夠穩(wěn)定適合長期項(xiàng)目?! 》浅R鬃x的代碼、帶有phpDocumentor注釋,維護(hù)起來很輕松。  易于擴(kuò)展,允許與非symfony的庫進(jìn)行整合?! ∽詣?dòng)化Web項(xiàng)目功能  Web項(xiàng)目的大部分功能在symfony中都能自動(dòng)實(shí)現(xiàn),如下:  內(nèi)建的國際化層能夠?qū)崿F(xiàn)數(shù)據(jù)與界面翻譯,以及內(nèi)容本地化。  表現(xiàn)(presentation)部分使用了模板和布局,不懂任何框架知識(shí)的網(wǎng)頁設(shè)計(jì)師也可以掌握。輔助函數(shù)封裝了大量的代碼從而減少了表現(xiàn)部分的代碼?! ”韱沃С肿詣?dòng)驗(yàn)證和重新提交,這確保了數(shù)據(jù)庫里的數(shù)據(jù)質(zhì)量,用戶體驗(yàn)也更好。  輸出轉(zhuǎn)義能夠保護(hù)程序不受到利用錯(cuò)誤數(shù)據(jù)的攻擊?! 【彺婀芾砉δ軠p少了網(wǎng)絡(luò)帶寬和服務(wù)器負(fù)載?! ∈褂抿?yàn)證與證書功能能很方便地實(shí)現(xiàn)受限制區(qū)域和用戶權(quán)限的管理。  路由與智能的URL使網(wǎng)頁的網(wǎng)址容易被搜索引擎索引?! ?nèi) 建的E-mail與API管理使Web應(yīng)用比傳統(tǒng)的瀏覽器交互更靈活。  數(shù)據(jù)列表提供了自動(dòng)的分頁、排序和篩選功能,用起來十分方便?! actories,plug-ins,還有mixins提供了高層次的擴(kuò)展性。  容易使用的Ajax交互,以一行代碼(輔助函數(shù)helper)就能封裝跨瀏覽器支持的JavaScript?! ¢_發(fā)環(huán)境與工具  symfony可以完全定制以滿足有自己代碼規(guī)范與項(xiàng)目管理規(guī)則的企業(yè)。它自帶了一些開發(fā)環(huán)境,還有多種工具來實(shí)現(xiàn)自動(dòng)化軟件工程任務(wù):  代碼生成工具,非常適合于原型設(shè)計(jì)與一鍵式后臺(tái)管理。  內(nèi)建的單元測試與功能測試框架,為測試驅(qū)動(dòng)的開發(fā)提供了理想的工具?! ≌{(diào)試工具條,能夠把當(dāng)前頁面開發(fā)者需要的所有信息顯示出來,從而加快調(diào)試速度。  命令行工具,能夠?qū)崿F(xiàn)兩臺(tái)服務(wù)器之間自動(dòng)化部署。  能夠有效地即時(shí)更新配置?! ∪罩竟δ?,讓管理員能夠掌握程序的一舉一動(dòng)?! ?.1.2 誰開發(fā)了symfony?為什么要開發(fā)symfony  symfony的第一個(gè)版本由項(xiàng)目發(fā)起者同時(shí)也是本書的合著者Fabien Poten?ier于2005年10月發(fā)布。Fabien是Sensio(http://www.sensio.com/)的CEO,Sensio是一個(gè)法國的網(wǎng)絡(luò)機(jī)構(gòu),以其對Web開發(fā)的創(chuàng)新見解而知名?! ≡缭?003年,F(xiàn)abien研究了當(dāng)時(shí)的PHP開源開發(fā)工具,發(fā)現(xiàn)沒有一個(gè)能夠滿足前面所述這些需求。PHP 5發(fā)布的時(shí)候,他發(fā)現(xiàn)現(xiàn)有的工具已經(jīng)都很成熟,足以整合到一個(gè)全功能的框架里。隨后他花了1年的時(shí)間開發(fā)了symfony的核心,這個(gè)核心基于Mojavi MVC(Model-View-Controller)框架,Propel ORM(object-relational mapping),還有Ruby on Rails的模板輔助方法?! abien最初是為了Sensio的項(xiàng)目而開發(fā)symfony,因?yàn)橐粋€(gè)高效的開發(fā)框架能大大加快開發(fā)效率。它使得Web開發(fā)更直觀,開發(fā)的程序更健壯更容易維護(hù)。這個(gè)框架最初在一個(gè)出售女性內(nèi)衣的零售商的電子商務(wù)網(wǎng)站項(xiàng)目中應(yīng)用并取得了成功,隨后被用到了其他的項(xiàng)目中?! ≡诔晒Φ貙ymfony運(yùn)用于幾個(gè)項(xiàng)目之后,F(xiàn)abien決定用開源的許可證(license)來發(fā)布symfony。他這么做了,把自己的工作成果捐獻(xiàn)給社區(qū),并且收集用戶的意見來改進(jìn)框架,展示Sensio的經(jīng)驗(yàn),因?yàn)檫@樣做本身也是一種樂趣?! ∽⒁狻槭裁词恰皊ymfony”而不是“FooBarFramework”呢?因?yàn)镕abien想用一個(gè)簡單的名字,包含代表Sensio的“s”還有代表framework的“f”,并且容易記憶,不跟其他的開發(fā)工具名字相似。另外,他不喜歡大寫字母。盡管不是標(biāo)準(zhǔn)的英語,F(xiàn)abien選擇了“symfony”,并且symfony也是這個(gè)項(xiàng)目的名稱。另外一個(gè)項(xiàng)目名稱是“baguette”。  要成為一個(gè)成功的開源項(xiàng)目,symfony需要大量的英文文檔,這樣才能使更多的開發(fā)者使用symfony。Fabien請Sensio的職員Fran?ois Zaninotto(本書的另一位作者)仔細(xì)研讀源代碼以撰寫電子版的手冊。寫作花了不少時(shí)間,但是當(dāng)項(xiàng)目公開的時(shí)候,它優(yōu)秀的文檔吸引了不少開發(fā)者。接下來的事情已經(jīng)人盡皆知,就什么也不用說了?! ?.1.3 symfony社區(qū)  當(dāng)symfony的網(wǎng)站(http://www.symfony-project.com/)推出后,全世界許多的開發(fā)者下載、安裝、閱讀了在線文檔,并開發(fā)了他們自己的第一個(gè)用symfony實(shí)現(xiàn)的程序,社區(qū)開始熱鬧起來?! ‘?dāng)時(shí)Web應(yīng)用程序開發(fā)框架正開始流行,開發(fā)者們十分需要全功能的PHP開發(fā)框架。symfony由于良好的代碼質(zhì)量和大量詳實(shí)的文檔而成為一個(gè)引人注目的解決方案,這也是它相對于其他框架的優(yōu)勢。很快就有志愿者參與進(jìn)來,提出修改或改善的意見,校對文檔,并參與其他一些必要的工作。  社區(qū)歡迎所有愿意參與的人加入symfony開發(fā),并提供公開的源代碼倉庫和ticket系統(tǒng)。目前symfony的代碼主干主要還是由Fabien維護(hù),這保證了代碼的質(zhì)量。  現(xiàn)在,symfony的論壇、郵件列表,以及IRC頻道為整個(gè)社區(qū)提供了令人滿意的支持,平均每個(gè)問題會(huì)有4個(gè)回復(fù)之多。每天都有人安裝symfony。Wiki和snippets部分也匯集了大量的用戶提交的文檔。每個(gè)星期平均會(huì)出現(xiàn)5個(gè)新的symfony項(xiàng)目,而且這個(gè)數(shù)字還在不斷地增加?! ymfony社區(qū)是這個(gè)框架的第三個(gè)力量,我們希望讀了本書后你能加入到這個(gè)社區(qū)中來?! ?.1.4 symfony適合我嗎  不論你是PHP 5專家或Web應(yīng)用程序開發(fā)的新手,你都能用symfony。決定是否使用symfony的主要因素是你的項(xiàng)目的規(guī)模。  如果你想開發(fā)一個(gè)只有5到10個(gè)網(wǎng)頁的簡單網(wǎng)站,少量的數(shù)據(jù)庫訪問,并且不需要保證速度或者提供文檔,那么你只要用PHP就夠了。這種情況下使用Web開發(fā)框架并沒有太大的價(jià)值,而且面向?qū)ο蠡蛘進(jìn)VC模型會(huì)使開發(fā)速度變慢。另外,symfony在只能以CGI模式運(yùn)行PHP的虛擬主機(jī)環(huán)境下并不能很有效率地運(yùn)作。  另一方面,如果你要開發(fā)一個(gè)復(fù)雜一點(diǎn)的,有更多業(yè)務(wù)邏輯的Web應(yīng)用程序,那么僅僅使用PHP是不夠的。如果你打算以后維護(hù)或擴(kuò)展你的應(yīng)用程序,那么你的代碼應(yīng)該是簡潔、易讀和高效的。如果你打算在用戶界面中方便地使用最新的技術(shù)(例如Ajax),你不可能只是寫幾百行JavaScript代碼。如果你想愉快而且快速地開發(fā),那么僅使用PHP可能會(huì)令你失望。上面這些,就是symfony適合你的原因?! ‘?dāng)然,如果你是一個(gè)專業(yè)的Web開發(fā)人員,已經(jīng)知道了Web應(yīng)用框架的所有優(yōu)點(diǎn),并且需要一個(gè)成熟的、具有詳細(xì)文檔和一個(gè)大社區(qū)支持的Web應(yīng)用框架。那么不要再猶豫了,symfony就是你的解決方案。

編輯推薦

  開發(fā)新Web應(yīng)用程序并不需要重新發(fā)明輪子,所以說框架應(yīng)該是你開發(fā)工具箱中的重要工具。它幫助你遵循代碼標(biāo)準(zhǔn),寫出健壯的、可維護(hù)的代碼,專注于業(yè)務(wù)規(guī)則而不是在重復(fù)的任務(wù)上浪費(fèi)時(shí)間。本書將為你介紹symfony這個(gè)領(lǐng)先的PHP開發(fā)框架,向你展示如何利用symfony的眾多功能來更快更有效率地開發(fā)Web應(yīng)用程序,即使你只懂一點(diǎn)PHP也沒有關(guān)系。  在本書中,你會(huì)了解模型一視圖一控制器架構(gòu)以及它在symfony這類框架中的重要作用。我們還會(huì)介紹框架的安裝和配置,教你如何建立頁面、處理模板管理請求和用戶會(huì)話,以及與數(shù)據(jù)庫的溝通。通過symfony的表單數(shù)據(jù)管理來簡化開發(fā),利用Ajax增強(qiáng)用戶體驗(yàn),為全球用戶開發(fā)國際化應(yīng)用程序,以及使用智能URL?! ∥覀兓撕芏嗥榻Bsymfony提供的專業(yè)環(huán)境的開發(fā)工具,向你展示如何利用單元測試、腳手架、插件、命令行,以及可擴(kuò)展配置。由于框架經(jīng)常導(dǎo)致性能問題,本書還提供了很多監(jiān)視和提高應(yīng)用程序性能的技巧和技術(shù),包括緩存和專家級(jí)的配置調(diào)整?! ∥覀兎浅V匾晫?shí)用性,全書包含了大量的代碼示例、專家建議、最佳實(shí)踐和插圖?! ∽鳛閟ymfony項(xiàng)目的建立者和主要貢獻(xiàn)者,我們希望提供足夠的教育資源來滿足快速增長的用戶社區(qū)的需要。我們認(rèn)為這本書達(dá)到了這個(gè)目的,希望你也這么認(rèn)為。  Francois和Fabien

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


    symfony權(quán)威指南 PDF格式下載


用戶評(píng)論 (總計(jì)7條)

 
 

  •   缺貨!喂獲得此贈(zèng)品……
  •   超值的贈(zèng)品
  •   根本就沒誰贈(zèng)送給我這本書。
  •   希望對自己有用哦!
  •   內(nèi)容很新啦
  •   還好 就是有點(diǎn)羅嗦了 適合新讀者
  •   沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品沒有贈(zèng)品
 

250萬本中文圖書簡介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7