Symfony 官方:
http://www.symfony-project.com/
资料来源:
http://symfony-cn.thecodecentral.com/
"My first symfony project"
教你如何创建你的第一个Symfony项目进入教程
Askeet 教程:
Askeet是一组具趣味性和可用性Symfony的阶进教程,从12月1日到圣诞节每天发行一份。该教程目的在于让读者了解Symfony网路框架的各个层次,从而建立web 2.0的网路运用程序。Symfony的宗旨在于加速开发者开发和维护的时间,其座右铭“专给懒人使用的职业级网站制作工具”更加说明了这点。完成教程后,你将建立一个多功能的网路程序(其实到第十天功能已很多了)。
以下是教程的中文翻译,如果你发现错误或有意帮忙翻译,请与管理员联系。
第一天
原文:http://www.symfony-project.com/askeet/1
開始一個專案
挑戰
這個symfony 耶誕節日曆是一系列24堂的課程,每天印出一份,從12月1日到耶誕節。每一天都有新的課程。每一個課約需1小時,然後也要能練習做出一個符合web 2.0的應用程式,從A到Z。直到耶誕節,這最終的程式就能上線,當然是開放原始碼的,這程式是可用的,有趣的,有用的,有樂趣的。
24小時約等於一天,我們也認為一個開發者也僅需要一天來學習它。每一天,有新的特性會加入這個應用程式裏,在開發的過程中,我們也會展示如何使用 SYMYONY的功能,及美好的實作經驗。每一天,你將體驗到,用SYMFONY開發是快又有效的作法,然後你會想要知道更多。
不要被挑戰的字眼嚇到了,因為原作者們也是懶傢伙,在第21天-winter time,我們也沒安排,這也是個特色,讓社群 能自己加上一些功能,所以沒安排(目前的21天課程是搜尋引擎的課程),這天也是一個找下一個SYMFONY大師的日子。
專案
這個練習程式設計成直覺的“秀和講”的型式,像是待辦事項,電話簿,或是一個書店,把SYMFONY放在基礎之下,讓這個練習有很多特色。目標是証明SYMFONY真的可以完成很多複雜的應用。可以不費力的完成專業級的網站程式。
我們也由衷希望很多人能實際來用這個程式,SYMFONY是可堪大任的。所以這練習程式是帶入一個真實的服務,回應真實的需求,或創一個新的。登入這個網站就是一個現時的壓力測試,這也是需要大家,謙遜的讀者們,來 挖/書籤/網誌這個站,多多用它,看在真實生實中它能支撐多少的流量。
下一天的實際的內容是個密秘,今天的內容努力作好活在當下。也留給你一些想像的空間。不過,至少還是要給這個專案一個名,就讓我們叫它:askeet.
今天做什麼?
今天的目標是秀易一個網頁,設定一個專業的開發環境,含蓋了 symfony 的安裝,建一個程式,網站伺服器的設定,設定好版本控制系統。
如果你有看過之前的課程,這應該是簡單的,然後我們可以學點新的 我們假設你是用 Unix-like 系統,上面有 裝好Apache, MySQL and PHP 5。 假如你是在 Windows系統,也不要怕:它也可運行良好,你只是要打一些指令。
Symfony安裝
最簡單的方法是用 PEAR 包來裝 symfony ,不過,要能用頻道( channels)-然後存取 symfony 頻道,你需要升級到 PEAR 1.4.0 以上。(除非你用PHP 5.1.0,它已包含PEAR 1.4.5)
$ pear upgrade PEAR
注意:假如你有遇到任何使用 PEAR 的問題,請參考installation book的章節。
現在你能加入symfony’頻道
$ pear channel-discover pear.symfony-project.com
你已準備就緒來安裝最新的穩定版本,且把相依的套件也下載回來。
$ pear install symfony/symfony-beta
假如你沒有 phing 包,你也要裝它。
$ pear install http://phing.info/pear/phing-current.tgz
查看 symfony 是否裝好,你可以下指令下來檢查版本 :
$ symfony -V
假如你好奇,有那些新指令可下,你可打 symfony -T 來列出所有可能的選項,你也許想要知道如何從 tgz 的壓縮檔或 svn 源碼倉庫來安裝symfony。你可以從 installation book 章節讀到。也有社群貢獻了不用 PEAR 的安裝方式在symfony wiki上。
專案設定
在 symfony ,專案裏的多個程式可以共享一樣的資料模型。在 askeet 專案,我們也會揭露這個事實,將會有前端和後端兩組程式。專案是程式的殼(shell),它要最早被建立,做個專案,你要一個目錄和symfony的專案初始指令
$ mkdir /home/sfprojects/askeet
$ cd /home/sfprojects/askeet
$ symfony init-project askeet
現在,是時候了,下symfony init-app指令來建一個前端的程式
$ symfony init-app frontend
哇,很快
注意: Windows 使用者在跑 symfony 時,建新專案時在路徑上請不要有空白(spaces)-尤其是 Documents and Settings 這個目錄
網站服務的建立
網頁伺服器的設定
現在你可以改變你的 Apache 設定,讓你的新程式可以存取。在一個專業的內容,最好是將一個新的程式設成虛擬主機(virtual host),將在這裏說明。也許你喜歡將它設成別名(alias),你可參考 web server configuration book 章節,打開 Apache/conf/ 下的httpd.conf,在最後面加上這段。
<VirtualHost *:80>
ServerName askeet
DocumentRoot "/home/sfprojects/askeet/web"
DirectoryIndex index.php
Alias /sf /usr/local/lib/php/data/symfony/web/sf
<Directory "/home/sfprojects/askeet/web">
AllowOverride All
</Directory>
</VirtualHost>
注意: /sf 別名必須指向在你PEAR data的目錄,要確定一下這個路徑,你只要打 “pear config-show”, Symfony的程式必須要能存取這個目錄來取得圖檔和一些 javascript檔 ,才能適當地執行除錯的工具列和 AJAX 輔助工具。在 Windows ,你必須將這個別名指向如:Alias /sf “C:\php\pear\data\symfony\web\sf”
宣告網域名稱
domain name askeet 必須在本機宣告,假如你在 Linux ,你編輯/etc/hosts檔,如果 你在 Windows XP ,這個檔在C:\WINDOWS\system32\drivers\etc\,加上一列,
127.0.0.1 askeet