亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 62977 | 回復: 1
打印 上一主題 下一主題

理解Zend 框架 用PHP構(gòu)建完美的閱讀器 [復制鏈接]

論壇徽章:
2
丑牛
日期:2013-09-29 09:47:222015七夕節(jié)徽章
日期:2015-08-21 11:06:17
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2008-04-14 17:59 |只看該作者 |倒序瀏覽
我們程序員是自相矛盾的懶漢。我的意思是我們會花上數(shù)小時甚至幾天的時間來創(chuàng)建一個東西,讓我們用 30 秒鐘完成 5 分鐘才能完成的任務。因此,
Zend
框架的創(chuàng)建也許不是一件太讓人驚奇的事情。您尚未聽說過 Zend 框架嗎?不要急 —— 您會了解的。本文概要介紹了 Zend 框架,解釋了它的一般概念,并為 “理解 Zend 框架” 系列的其余部分做好準備,其余部分將通過遍歷一個新的在線 RSS/Atom 提要閱讀器的創(chuàng)建過程來深入到該框架的細節(jié)之中。在本文中不會有太多編碼,但在其余部分中您應該熟悉
PHP

Zend 框架
    眾所周知,幾年前,在眾多強大且易用的腳本語言中,PHP 占據(jù)著首要位置。大多數(shù)基于 UNIX® 和 Linux® 的 Web 服務器都安裝了該語言。如果您是一個程序員,您很容易獲得一個主機帳戶來使用該語言。Ruby 曾經(jīng)風靡一時,但現(xiàn)在已經(jīng)沒有多少人使用了。如果您曾經(jīng)想使用動態(tài)生成的內(nèi)容來構(gòu)建一個網(wǎng)站,但卻并不確定是否要使用諸如 J2EE 之類的應用服務器,那么您就極可能使用 PHP。它快速、易學、方便,您無需
學習
Perl。
    然后情況很快改變。Ruby on Rails 震驚了編程界。Ruby on Rails 是面向
對象
和基于模型-視圖-控制器 (MVC) 的典范,它提供了一種方式來實現(xiàn)我們都想實現(xiàn)的事情,即不費任何力氣地創(chuàng)建一個網(wǎng)站。當然,仍然存在兩個問題。一個問題是您需要學習一門新的編程語言。不管這門語言是什么樣的,這都不是一項簡單的任務。另一個問題是,如果您找到一臺能運行 Ruby on Rails 的主機,那是非常幸運的,而大多數(shù)情況下不可能。如果您(像我一樣)擁有一個 10 年的帳戶,僅因為其缺少新的編程語言,那么放棄起來會猶豫再三的。當然,您這些年來編寫的所有現(xiàn)有的 PHP 代碼也是一個問題。您真的愿意把它們?nèi)咳拥舨⒅匦麻_始嗎?當然不是!
    一個有進取心的 PHP 程序員需要做什么呢?那就是創(chuàng)建一個囊括大多數(shù)上述新優(yōu)勢的新框架。Zend 框架由此誕生了。
    Zend 框架提供了簡潔穩(wěn)定的代碼,也許最為重要的是,它是在明晰的知識產(chǎn)權下完成的。PHP 正在企業(yè)界跑馬圈地,但如果您是一家財富 500 強公司,您不會愿意冒險將模塊提交給一個也許是屬于其他公司知識產(chǎn)權的知識庫。
    準確地講 Zend 框架究竟是什么呢?Zend 框架具有以下特征:
是基于 PHP 建立的。
是面向?qū)ο蟮摹?
使用 MVC 范例。
具有開放源碼貢獻者。
有貢獻者負責保證他們的代碼不是他人的知識產(chǎn)權。
通過建立 MVC 模式,Zend 框架的目標是使編程
生活
更加輕松,這不僅體現(xiàn)在通用領域,而且對您始終想要做的具體的事情也是如此,比如訪問
數(shù)據(jù)庫
或輸出 PDF 文件。(也許您一直都不輸出 PDF 文件。但如果它更簡單的話,我想您會去這樣做的。)
   Zend 框架組件包括:
Zend_Controller
此模塊為應用程序提供全面的控制。它將請求轉(zhuǎn)化為特定的行為并確保其執(zhí)行。
Zend_Db
此模塊基于 PHP 數(shù)據(jù)對象 (PDO) 并提供一種通用方式來訪問數(shù)據(jù)庫。
Zend_Feed
此模塊使使用
RSS
和 Atom 提要變得簡單。
Zend_Filter
此模塊提供字符串過濾函數(shù),如 isEmail() 和 getAlpha()。
Zend_InputFilter
對于 Zend_Filter,此模塊是用來操作數(shù)組的,如表單輸入。
Zend_HttpClient
此模塊使您能輕易地執(zhí)行 HTTP 請求。
Zend_Json
此模塊使您能夠輕易地將 PHP 對象轉(zhuǎn)換成 JavaScript 對象符號,反之亦然。
Zend_Log
此模塊提供通用日志功能。
Zend_Mail
此模塊使您能夠發(fā)送文本文件和多部分 MIME 電子郵件。
Zend_Mime
此模塊被 Zend_Mail 用來解碼 MIME 消息。
Zend_Pdf
此模塊用來創(chuàng)建新的 PDF 文檔,及加載和編輯現(xiàn)有文檔。
Zend_Search
此模塊使您能在現(xiàn)有文本上執(zhí)行復雜搜索。例如,您可以建立一個搜索引擎,該引擎可以基于相關性或其他因素返回結(jié)果。
Zend_Service_Amazon、Zend_Service_Flickr 以及 Zend_Service_Yahoo
這些模塊提供對這些 Web 服務 API 的簡單訪問。
Zend_View
此模塊處理 MVC 模式的 “視圖” 部分。
Zend_XmlRpc
此模塊使您能夠輕易地創(chuàng)建 XML-RPC 客戶機。(已為將來計劃好服務器功能。)
現(xiàn)在來看一下我們的目標和在實現(xiàn)這個目標的過程中將做些什么。
項目
為了展示 Zend 框架的所有的內(nèi)幕,需要一個涵蓋 Zend 大部分功能的項目。那很好,因為我最喜愛的項目仍然是在線提要閱讀器。為什么呢?因為我還未找到一個能夠真正實現(xiàn)我想要實現(xiàn)的功能的項目。每當我掌握一門新技術時,我就試著制作一個比我以前用的要更好的提要閱讀器。所以我們要創(chuàng)建一個新的在線 RSS/Atom 提要閱讀器服務。
這個世界真的需要另一個在線提要閱讀器嗎?也許。但我不介意我是其惟一的使用者。并且要點是:Zend 框架目標在于使我能用于項目上的東西足夠簡單。我用它們僅僅是因為我想,而不是因為我花了價值成百上千美元的研究來證明它。那么這個作為新聞管理器的寶貝應該實現(xiàn)些什么呢?目前來講,它應當具備以下功能:
使用戶能夠保存提要或訂閱的集合。
使用戶能夠閱讀提要和單個條目。
使用戶能夠保存單個帖子。
使用戶能夠針對特定的文本來搜索已保存的條目。
使用戶能夠容易地閱讀沒有 RSS 提要的頁面。
使用戶能夠打印帖子集合。
在本系列中,我將向您展示如何通過 Zend 框架來實現(xiàn)所有這些功能。本系列包括:
第 1 部分:基礎
本文在總體上解釋了這個項目和 Zend 框架。
第 2 部分:添加數(shù)據(jù)庫

教程
展示如何使用 Zend_DB 模塊創(chuàng)建并操縱用來存儲訂閱信息、已保存條目和其他信息的中央數(shù)據(jù)庫。
第 3 部分:提要
現(xiàn)在我們把提要加入到這個整體中來,使用戶能夠創(chuàng)建一個帳戶、訂閱特定的提要,并顯示這些提要。此教程使用 Zend_Feed 和 Zend_Inputfilter 模塊,后者用來檢驗電子郵件地址并去除提要條目中的
HTML
標記。
第 4 部分:當沒有提要時:Zend_HTTPClient 模塊
并非所有的站點都有提要,但在同一個地點追蹤所有的東西還是有用的。這篇文章展示了如何使用 Zend_HTTPClient 模塊來創(chuàng)建代理將數(shù)據(jù)拖入提要閱讀器界面中。
第 5 部分:創(chuàng)建 PDF 文件
此教程解釋如何使用 Zend_PDF 模塊來用保存的文章、圖像和搜索結(jié)果創(chuàng)建定制的 PDF 文件。
第 6 部分:發(fā)送電子郵件
這篇文章解釋如何使用 Zend_Mail 模塊提醒用戶有新的帖子和訂閱的提要,甚至使用 HTML 格式的電子郵件發(fā)送這些帖子。
第 7 部分:搜索
這篇文章解釋如何使用 Zend_Search 模塊針對一個特定的搜索條件搜索現(xiàn)有的和已保存的日志條目,并返回排列好的結(jié)果。
第 8 部分:添加相關的信息和服務
此教程解釋如何使用 Zend_Service 模塊從其他服務特別是從 Amazon、Flickr 和 Yahoo! 獲取信息。此界面將使用
Ajax
從當前日志條目或者用戶指定的搜索條件中獲取相關的書、照片和搜索結(jié)果。
第 9 部分:添加 Ajax
Zend 框架通過本地 PHP 對象同 JavaScript 對象符號 (JSON) 之間的自動互換使得在應用程序中添加異步的 JavaScript +
XML
(Ajax) 交互變得簡單。這篇文章展示了如何將此功能添加到提要閱讀器中,還簡單描述了 JSON。
安裝
Zend 框架不需要任何特別的安裝,但您需要牢記一些需求。Zend 框架需要 PHP V5,它同 V5.0.4 及以上版本兼容,所以您可以使用而不是必須用 V5.1。但無論如何,您必須確保庫目錄包含在 include_path 中,Zend 框架將從中尋找其所有的文件。要想這樣,請確保在 php.ini 文件中設置 include_path,如:
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;e:\sw\zendframework\library"這樣就可以了。
MVC 模式
提到圖形設計,我不可能知其不可為而為之,因為這不是我所擅長的。然而,給我一個其他有天賦的人拼湊好的設計,我可以用那個界面完成您想完成的任何事情。因而,能夠分解好一個基于
網(wǎng)絡
的應用程序的設計相關的工作是非常有利的,這樣,設計人員、編碼人員和 DBA 都可以做他們各自擅長的事情。這就是 MVC 模式的實質(zhì),它將一個項目分解成三層。
模型-視圖-控制器的定義
按照定義,模式是多年演化而來的做事情的方法,因為它們是某一問題的好的解決方案。模型-視圖-控制器 (MVC) 模式也不例外。由于具體的創(chuàng)建過程有所不同,所以您偶爾會發(fā)現(xiàn)一些定義之間存在差異。例如,一些對 MVC 的定義中將控制器的角色定義成簡單地改變狀態(tài),其所有的業(yè)務邏輯都集成在模型層。最后,惟一重要的事情是,應用程序以最有效的方式完成了您想要它完成的事情。


模型層 由真實數(shù)據(jù)的表示組成。例如,在我們的提要閱讀器項目中,包含了用戶、提要和提要條目。它們在數(shù)據(jù)庫中的表示總體上 “建! 了它們的結(jié)構(gòu),從而組成了模型層。
視圖層 由一些邏輯組成,這些邏輯實際上定義了顯示的數(shù)據(jù)如何表現(xiàn)。它并不決定這些已顯示的數(shù)據(jù)是什么,而僅僅是它們?nèi)绾伪憩F(xiàn)。理想狀態(tài)下,該模塊不包含任何邏輯,只接受所給信息,并把它們顯示出來。
控制器 實際上定義了數(shù)據(jù)是什么。事實上,控制器是所有邏輯存放的地方。在 Zend 框架中,該層控制了要執(zhí)行的行為。例如,如果我想要顯示單個提要條目對象,那么職責被解析為:提要條目對象具有一個控制器,該控制器定義了當調(diào)用顯示行為時所發(fā)生的事情。該顯示行為回調(diào)以從模型(或者說是數(shù)據(jù)庫或其他持久性存儲器)中獲取需要的數(shù)據(jù),然后將這些字段 —— 如標題、內(nèi)容、持久鏈接等 —— 填入視圖中,該視圖可以將其簡單地顯示在瀏覽器中。
應當承認,對大多數(shù)程序員來說,這是一次啟程。盡管存在對象,但 PHP 始終是一門過程化的語言。盡管如此,這項交易是絕對值得的。按照 MVC 模式構(gòu)建應用程序遠要比構(gòu)建一個里面亂成一團的應用程序要簡單的多。
現(xiàn)在,讓我們來看看您需要做些什么。
編碼準則
當您為 Zend 框架編碼,或使用其編碼時,您應該遵循特定的準則。這些準則是為了使團隊項目變得更加簡單而設計的。換句話說,通過定義編碼規(guī)范,您不僅能避免接下來的問題,而且能夠使其他人更容易閱讀您的代碼。Zend 框架文檔中包含幾頁指導準則,比如:
確保文件整潔。換句話說,在文件頭、標準的四格縮進等前面不能有任何前導或者后置的空格,這些空格會調(diào)用 Web 服務器導致意外地發(fā)送內(nèi)容。
有且只有當類作為 Zend 框架的一部分時,而不僅僅是使用 Zend 框架時,類名才以 Zend_ 開頭。
在函數(shù)名中下劃線是禁止的。而是使用小寫開頭大小寫間隔的方式(如 getTodaysDate())。
只有當變量是 private 或 protected 類型時,才以下劃線開頭。
將所有的變量聲明為 private、protected 或者 public,而不要使用 var。
使用標準的 PHP 標記(如 ),而不是簡寫方式 ()。
確保您的代碼易于閱讀。換句話說,當使用一個句號 (.) 連接文本時,確保在句號前后加上空格以便于閱讀。同理,當聲明一個數(shù)組時,要在逗號后面加上空格。
如果您必須通過引用傳值,那只能在函數(shù)聲明中這樣做。調(diào)用時通過引用傳值是不允許的。
任何 PHP 文件都必須包括能被 PhpDocumentor 閱讀的文檔,并且編碼準則指定了特定的最少標記。
當然這并不是完整的編碼準則列表,但它應能讓您對所需要遵循的準則類型有所了解。查看文檔了解整個準則列表,以使您的代碼會更容易滿足使 PHP 項目更易共享的承諾。
結(jié)束語
Zend 框架提供了一種新的、特定于 IP 的方式來構(gòu)建 PHP 應用程序。因此,Zend 框架旨在改善您的 PHP 編碼體驗。在本系列中,我們將使用 Zend 框架來構(gòu)建一個 RSS/Atom 提要閱讀器。本系列以后的部分將涵蓋數(shù)據(jù)訪問、搜索、Web 服務以及該框架的其他部分。在第 2 部分中,將創(chuàng)建登錄系統(tǒng)并開始構(gòu)建數(shù)據(jù)庫。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/4206/showart_531208.html

論壇徽章:
0
2 [報告]
發(fā)表于 2013-08-09 23:23 |只看該作者
這個是不是和ibm的那篇是一樣的http://www.ibm.com/developerworks/cn/opensource/os-php-zend1/
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP