160 likes | 296 Views
PhpGedView Under the Hood PGV-- 新的起點. A technical overview of PhpGedView 技术概述 By John Finlay PGV Founder and Project Manager PGV 創始人和項目經理 編者注: John Finlay 先生 原意親自出席南京會議,後因故未能前來, 但還是與大會配合,安排特定時間用遠程視頻通信方式,和與會技術人員 直接對話,講解 PGV 系統,並即席解答問題。 因本文集編輯時間倉促,我們來不及向 John Finlay 先生另約文稿,
E N D
PhpGedView Under the HoodPGV--新的起點 A technical overview of PhpGedView 技术概述 By John Finlay PGV Founder and Project Manager PGV創始人和項目經理 編者注:John Finlay先生 原意親自出席南京會議,後因故未能前來, 但還是與大會配合,安排特定時間用遠程視頻通信方式,和與會技術人員 直接對話,講解PGV系統,並即席解答問題。 因本文集編輯時間倉促,我們來不及向John Finlay先生另約文稿, 只好把他講解用的PPT 做了中譯,轉換為DOC文本登載。
PGV Origins 起源 • Early 2002 looking for a simple way to take a GEDCOM file and create a genealogical website • 2002年初,為尋找一種簡單的方法去處理GEDCOM文件,並創建一個家譜網站 • Previous Standard was static HTML files (maintenance mess) • 以往的做法是用靜態的HTML文件實現(缺點是維護困難) • So PGV began as an experiment to see if it was practical to have a GEDCOM be the data source for a dynamically generated website • PGV開始作為一個實驗,探索以GEDCOM為數據源建成動態網站的可能性
Platform 平台 • PHP – for ubiquity and ease of deployment • PHP - 普遍性和易於開發 • Open Source – help the broad community, and genealogists expect things to be free • 開源 – 滿足社會大眾和譜牒學界能有免費軟件使用的期望 • As demand grew so did the need for a database backend which allowed for complicated searching and queries • 隨著需求的增長,對後台數據庫的要求將隨之增多,以滿足複雜的搜索和查詢的要求
Features 特性 • Produces just about every genealogical chart used today生成幾乎所有當今使用的家譜圖表 • Easily navigate your family tree • 很容易輕鬆地瀏覽你的家庭樹 • Supports over 25 languages and alternate dates and calendars • 支持超過 25種語言和多種日期格式 • Online editing and collaboration features to enable families to work together • 在線編輯和協作功能,使家庭成員能共同操作 • Advanced privacy settings give you fine-grained control over editing and viewing • 高級隱私的設置,使其可被精細地控制,編輯和查看
Advantages of PGV 優點 • Does not lose any data in translation from GEDCOM • 不丟失從 GEDCOM中的任何數據 • Supports multiple databases • 支持多種數據庫 • Supports very complicated genealogical data • 支持非常複雜的家譜資料
Data Model 數據模型 • The data model is based on the GEDCOM data model. • PGV的數據模型是基於GEDCOM上的數據模型。 • Person-centric 以人為本 • Lineage-linked 譜系掛鉤 • Diagrams of the GEDOCM 5.5 data model can be seen at the following URLs: • GEDCOM5.5 數據模型圖可以在以下網址找到: • http://homepages.rootsweb.com/~pmcbride/gedcom/55model1.gif • http://homepages.rootsweb.com/~pmcbride/gedcom/55model2.gif
Simplified View of Data Model數據模型的簡化視圖 Individual SpouseFamilies 配偶家庭 Family Child Families 親子家庭 One-to-many relationships 單對多的關係 Name Event Fact
Simple Code Example 簡單的 PHP源碼例子 <?php require_once('config.php'); include_once('includes/person_class.php'); print_header('My Page Title'); $person = Person::getInstance('I1'); print '<h2>'.$person->getFullName()."</h2>\n"; print $factarray['BIRT'].': '; print $person->getBirthDate()->Display(); print ' '.$person->getBirthPlace()."<br />\n"; print_footer(); ?>
Developer Resources 開發資源 • Many developer resources are available on the wiki here: • 許多開發資源可以在這裡找到: • http://wiki.phpgedview.net/en/index.php?title=Developer_resources
Themes主題 • PGV provides support for customizable themes • PGV支持自定義主題Modifiable through CSS and/or PHP • 通過 CSS和/或PHP修改 • Some details on the wiki for modifying your theme can be found here: • 修改主題的一些細節,可以在這裡找到: • http://wiki.phpgedview.net/en/index.php?title=How_to_modify_your_theme
Modules模塊 • PGV allows for third-party plugins or modules • PGV允許第三方插件或模塊The module structure is similar to that for other PHP CMS systems such as PHPNuke. • 模塊結構類似其他PHP CMS系統如PHPNuke。Documentation on how to create your own module can be found online at: • 有關如何創建自己的模塊的文檔可以在這裡找到:http://wiki.phpgedview.net/en/index.php?title=Developers_Guide:Creating_a_Module
Web Services網上服務 • PGV includes both a REST and a SOAP based web service • PGV支持REST,SOAP Web上服務 • The REST web service is used by the GDBI project for remote access • GDBI項目利用REST Web服務實現遠程編輯。 • Add data is exposed as GEDCOM • Web服務以GEDCOM向客戶端返回數據
GEDCOM 家譜數據編碼 • You won’t be in PGV long before you meet up with GEDCOM • PGV的數據以 GEDCOM格式表現 • GEnealogical Data COMmunication • GEDCOM的全稱是家譜數據通信 • An encoding format for genealogical data GEDCOM是家譜數據的一種編碼格式 • Find out all of the technical details about GE • 有關GEDCOM的技術細節可從下列網站找到 • http://wiki.phpgedview.net/en/index.php?title=GEDCOM
GEDCOM Parsers解析器 • If you work with the web services or the raw PGV database, you will need a GEDCOM parser • 通過 Web服務器或直接訪問PGV數據庫, • 你需要GEDCOM分析器JavaGedcom • PhpGedcom – Coming Soon to PGV! • PhpGedcom – 趕快進來使用 PGV
Challenges挑戰 • Performance with Large Datasets ( > 10000 Individuals) • 能在大型數據集下操作(>10000個人) • Complicated / outdated code base • 複雜/過期的源碼 • Time – completely volunteer developers mean that time is the biggest challenge • 時間 - 完全志願的開發者,最需要的是時間。
Future Development未來發展 • Build on a framework such as CakePHP or Symphony Completely OOP • 利用 CakePHP 或 Symphony 框架完成OOP構建。 • Rewrite Module system to allow for administrative management • 重寫允許後台管理的模塊系統 • AJAX everywhere AJAX的無處不在Click to edit/add 單擊實現編輯/添加 • New Family Search Integration • 與Family Search.org 新系統間的整合集成 • http://new.familysearch.org