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

解决方案 »

  1.   

    專案設定注意:你需要是管理者的權限來做這些事,假如你不想設一個新主機名,你可以加一個加一個監聽(Listen statement)的埠來服務你的網站。這樣也可以允許你使用本機網域(localhost domain)
    測試新設定重啟 Apache ,在瀏灠器的網址列打http://askeet/注意: symfony 可用 mod_rewrite 模組來移除URLs 的/index.php/ 部分(網址列的字不用打那麼長,打愈長,愈容易出錯)。如果你不想用它,或是你的網站伺服器沒有提供這種便利性,你可以移除web/下的. htaccess。假如你的版本沒有將mod_rewrite編譯進來,檢查一下你是有裝mod_rewrite DSO,及你的設定檔 httpd.conf 裏,是否有 AddModule mod_rewrite.c
     LoadModule rewrite_module modules/mod_rewrite.so你可在 routing chapter學更多關於聰明的(smart) URLs你可以在開發環境裏這樣試一下,http://askeet/frontend_dev.php/網頁上的除錯列在右上角有秀出來,也有小小的圖示,証明了你的別名(sf/) 是設正確的译注:當然,如果你打算跑在 IIS 上(勸你還是不要跑IIS,這手冊相對來講較少講到IIS,你會蠻不方便的,早點脫離WINDOWS也是早點往頂尖程式員之路邁進,不過真要用 LINUX,還是用前人已經包好的快速包(如XAMPP),降低學習挫折,有感覺後,再從頭自己建置服務,筆者(tim)目前在UBUNTU下翻譯此教材,幾代人的投入,在LINUX下KEY中文還蠻方便的)請閱讀相對應的教材來設定它。
    版本控制懶傢伙的一個好原則是不用擔心現存的原始碼被破壞掉。我們想工作快點,如果修改的不恰當,我們想回復到上一個版本,我們要允許一個人以上一同來開發項目,我們也希望你可以存取所有每日的版本,我們將採行原始碼版本控制。我們用 Subversion 來達到目的。假設你已經裝好一個 subversion 服務器而且有權限來存取它首先,建一個倉庫來放 askeet 項目$ svnadmin create $SVNREP_DIR/askeet
    $ svn mkdir -m "layout creation" file:///$SVNREP_DIR/askeet/trunk file:///$SVNREP_DIR/askeet/tags然後,你必須做第一次匯入,cache/和log/這些檔就省略掉不用匯入了。 (只要對“原始碼”的部分匯入即可)$ cd /home/sfprojects/askeet
    $ rm -rf cache/*
    $ rm -rf log/*
    $ svn import -m "initial import" . file:///$SVNREP_DIR/askeet/trunk現在離開原來的程式目錄,用 checkout 從倉庫拿原始碼出來。$ cd /home/sfprojects
    $ mv askeet askeet.origin
    $ svn co file:///$SVNREP_DIR/askeet/trunk/ askeet/
    $ ls askeet
    $ rm -rf askeet.origin還有一件事要做,就是當你提交(commit ,回寫你的程式變更)你的工作目錄回倉庫時。你可能會有一些不用回寫的檔案,如剛剛的 cache 和log目錄下的檔案。所以你必須要指定一個忽略列表(ignore list )$ cd /home/sfprojects/askeet
    $ svn propedit svn:ignore cache
    *此時會出現 SVN 的預設文字編輯器,加入子目錄cache/,然後KEY*。儲存和離開即可對log/也是同樣的作法$ svn propedit svn:ignore log
    *現在,請確定你的網站伺服器對 cache 和 logs 目錄有寫入的權限,在指令列$ chmod 777 cache
    $ chmod 777 log注意: Windows 可以使用超級有名的 TortoiseSVN 來管理他們的subversion源碼倉庫。假如你要知道更多原始碼版本控制,請看手冊裏的 project creation 章節。注意:本項目 askeet 的 SVN 源碼倉庫是公開的,你可以透過http://svn.askeet.com/http://svn.askeet.com/存取它開始吧,取出它(checkout也是SVN的常用的動作)今天的 code 已經提交了,你可以用 release_day_1 這個標好籤來取出它。  $ svn co http://svn.askeet.com/tags/release_day_1/ askeet/明天見預告 大約也是一個小時,我們說了一大堆,沒做什麼新的事,但請注意我們明天的課程: 這個項目將做什麼 建一個資料庫模型,產生一個物件相關的映射 架構一個模組假如你要密切注意最近的 askeet 新聞,你可以訂閱askeet郵件群組,或是上論壇。明天一定要回來哦!! 明天見!!不贴了,大家看原址:
    http://symfony-cn.thecodecentral.com/
      

  2.   

    说了半天也没入正题,只是介绍如何安装。
    一点PHP代码都没见。
      

  3.   

    php的框架多如牛毛。。
    牛毛........
      

  4.   

    大家看它的网站吧。有详细资料。可惜大部分是中文。
    http://www.symfony-project.com/有demo:
    http://www.symfony-project.com/demo/