symfony框架簡單流程
1創建一個專案目錄 symfony init-project 專案名
2建立一個程式 init-app 程式名
3建立一個模塊框架 init-module 程式名 模塊名 (需手動添加動做和摸版)
3設置虛擬主機
<VirtualHost 127.0.0.1>
ServerAdmin website1@domain
DocumentRoot "C:\www/danfei/web"
ServerName
www.danfei.com
ErrorLog logs/www.sandbox.com-error_log
CustomLog logs/www.sandbox.com_log common
Alias /sf "C:\program files/php/PEAR/pear/data/symfony/web/sf"
<Directory "C:\www/danfei/web">
AllowOverride All
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
<Directory "C:\program files/php/PEAR/pear/data/symfony/web/sf">
AllowOverride All
Order deny,allow
Allow from all
</Directory>
5數據庫鏈接結構 databases.yml
鏈接數據庫的配置文件
修改config/databases.yml,其param:下的參數部分分別爲:
phptype: 要使用的數據庫類型
hostspec: 要用的數據庫所在的域名
database: 要使用的數據庫的名字
username: 鏈接數據庫所用的用戶名
password: 鏈接數據庫所用的密碼
2 修改config/propel.ini,所須要修改的部分以下:
propel.database: 須要使用的數據庫類型
propel.database.createUrl: 須要使用的數據庫所在的主機地址,其格式爲mysql://username:password@domain/,分別爲用戶名,密碼以及域名
propel.database.url: 須要使用的數據庫的地址,其格式爲:mysql://username:password@domain/database,分別爲用戶名,密碼以及數據庫的名字
all:
propel:
class: sfPropelDatabase
param:
phptype: mysql
host: localhost
database: danfei
username: root
password: root
6數據表模結構 schema.yml
propel:
question:
_attributes: { phpName: Question }
id:
user_id: { type: integer, foreignTable: user, foreignReference: id }
title: { type: longvarchar, required: true }
body: { type: longvarchar, required: true }
created_at:
updated_at:
answer:
_attributes: { phpName: Answer }
id:
question_id: { type: integer, foreignTable: question, foreignReference: id }
user_id: { type: integer, foreignTable: user, foreignReference: id }
body: { type: longvarchar }
created_at:
user:
_attributes: { phpName: User }
id:
nickname: { type: varchar(50), required: true, index: true }
first_name: { type:varchar(100) }
last_name: { type:varchar(100) }
created_at:
interest:
_attributes: { phpName: Interest }
question_id: { type: integer, foreignTable: question, foreignReference: id }
user_id: { type: integer, foreignTable: user, foreignReference: id }
created_at:
relevancy:
_attributes: { phpName: Relevancy }
answer_id: { type: integer, foreignTable: answer, foreignReference: id }
user_id: { type: integer, foreignTable: user, foreignReference: id }
score: { type: integer }
created_at:
7物件模型創建 propel-build-model
8數據SQL生成 propel-build-sql
9數據表插入 propel-insert-sql
10動做程式框架生成 propel-generate-crud front question Question(自動生成一個默認的動做和摸版)
11外觀界面 apps/frontend/templates/layout.php
12頁面修改與CSS加載 frontend/config/view.yml
13清除緩存 symfony cc
14重製定默認主頁 apps/frontend/config/routing.yml homepage:
15動做數據傳遞模版 apps/frontend/modules/程式/actions/actions.class.php
16表單驗證
methods:
post: [author, email, body]
get: [author, email, body]
fillin:
enabled: on
names:
author:
required: Yes
required_msg: 做者不能爲空
email:
required: No
validators: emailValidator
body:
required: No
validators: emailValidator
emailValidator:
class: sfEmailValidator
param:
email_error: 電子郵件地址不正確
17動做頁面 Action結尾 摸版頁面 Success結尾
18由一個CRUD生成器建立的動做列表以下:
名字 描述
list 顯示一個數據表的全部記錄
index 轉向到list
show 顯示一個指定記錄的全部數據域
edit 顯示一個表單來建立一個新的記錄或是編輯一個已存在的記錄
update 經過在請求中指定的參數來修改一個記錄,而後轉向到show
delete 從數據表中刪除一個指定的記錄
19數據導入
在askeet/data/fixtures/下建立新test data file(你須要手動建立目錄)
在askeet/batch/下創建一個文件load_data.php:
define('SF_ROOT_DIR', realpath(dirname(__FILE__).'/..'));
define('SF_APP', 'frontend');
define('SF_ENVIRONMENT', 'dev');
define('SF_DEBUG', true);
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'apps'.DIRECTORY_SEPARATOR.SF_APP.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config.php');
$databaseManager = new sfDatabaseManager();
$databaseManager->initialize();
$data = new sfPropelData();
$data->setDeleteCurrentData(false); //不加此項將在導入時先刪除以前的數據
$data->loadData(sfConfig::get('sf_data_dir').DIRECTORY_SEPARATOR.'fixtures');
20動做方法的名字老是execute'Xxx'()的形式,其中名字的第二部分是動做的名字,而且第一個字母大寫。
21.app下的setting.yml
修改apps\frontend\config\settings.yml裏的內容參數爲off:
prod:
.settings:
no_script_name: off
歡迎關注本站公眾號,獲取更多信息