Symfony 透過 symfony 指令列工具 (基於 Pake) 自動化專案結構建立。本文詳細說明從建立專案目錄、初始化專案、建立應用、配置 Web 伺服器、建立模組、到版本控制整合的完整流程。
mkdir /home/steve/myproject cd /home/steve/myproject symfony init-project myproject
產生標準目錄樹:apps/ batch/ cache/ config/ data/ doc/ lib/ log/ test/ web/。指令可於專案任意目錄執行。
symfony init-app myapp
於 apps/myapp/ 建立配置、國際化、函式庫、模組、模板目錄。web/ 產生前端控制器:
index.php:生產環境 (首個應用)myapp_dev.php:開發環境測試環境無前端控制器,透過單元測試執行。專案根路徑常數 SF_ROOT_DIR 定義於 index.php。
ServerName myapp.example.com DocumentRoot "/home/steve/myproject/web" DirectoryIndex index.php Alias /sf /$data_dir/symfony/web/sf AllowOverride All Allow from All
$data_dir 替換為 PEAR 資料目錄 (如 /usr/local/lib/php/data)。需啟用 mod_rewrite 支援美化 URL。重啟 Apache 後可透過 https://myapp.example.com/index.php/ (生產) 或 myapp_dev.php/ (開發) 存取。
symfony init-module myapp mymodule
於 apps/myapp/modules/mymodule/ 建立 actions/ config/ lib/ templates/ validate/。立即可透過 https://myapp.example.com/index.php/mymodule 存取。編輯 templates/indexSuccess.php 輸出內容即可見效。
svnadmin create $SVNREP_DIR/myprojectsvn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branchesrm -rf cache/* log/*; svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunkmv myproject myproject.origin; svn co file:///$SVNREP_DIR/myproject/trunk myprojectsvn propedit svn:ignore . → 加入 cache log; chmod 777 cache logWindows 建議使用 TortoiseSVN 客戶端。完成上述步驟即擁有完整版控專案基礎。