摘要
准备工作
1. 配置LAMP或WAMP环境,安装PHP开发IDE;
2. 安装Symfony,可以通过PEAR的方式或者官网推荐的composer的方式。
具体步骤
1.建立工程project_name: php symfony generate:project project_name;
在Web下建立项目文件夹project_name(根据具体项目,此处仅作为演示),在该文件夹下手动建立目录 结构/lib/vendor,lib和vendor此时均为空的 文件夹;拷贝symfony-1.4.zip压缩包,解压到 project_name/lib/vendor下,重命名为symfony。打开cmd窗口,输入 php ..\project_nam\lib\vendor\symfony\data\bin\symfony generate:project project_name命令,symfony自动创建项目和相关文件;
2.创建应用程序:
命令行输入php symfony generate:app app_name;
3. 配置 httpd.conf和/hosts文件
# 请确保下面这行在配置文件只出现一次
NameVirtualHost 127.0.0.1:8080
# 这是针对 本项目project_name的配置
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
ServerName project_name.localhost
DocumentRoot "G:\PHP\project_name_web"
DirectoryIndex index.php
<Directory "G:\PHP\project_name\web">
AllowOverride All
Allow from All
</Directory>
Alias /sf C:/php/pear/data/symfony/web/sf
<Directory "C:/php/pear/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost></span>
C:/php/pear/data/symfony/web/sf
便是我的symfony安装路径。
4.Eclipse,导入项目
打开Eclipse,New-> PHP Project -> Create project at existing location.,选择project_name文件夹(注意网站的默认文件夹为project_name/web,与项目文件夹不同)。
5.配置project_name/config/database.yml
在Eclipse中 打开project_name/config,根据本机设置,填写 dsn, username(数据登陆用户名),password(登陆数据库的密码),一般的安装教程
中会设root 和 123456 :)。
6.填写project/doctrine/schema文件,定义数据表
这步要特别注意YML文件的格式,语法可以参考官网,但一定要注意缩进,不然你会被莫名其妙的错误折腾死。缩进一律以空格形式,以下列作为参考
为了突出空格的重要性,示例中的缩进和空格以“▊”来表示:
User:▊▊columns:
▊▊▊id:
▊▊▊▊type:▊integer(4)
▊▊▊▊primary:▊true
▊▊▊▊autoincrement: true
▊▊▊username:▊string(255)
▊▊▊password:▊string(255)
▊▊▊latitude:▊float
▊▊▊longitude:▊float
有几点比需要注意:
1.数据表名(User)必须要顶格(前面不能有空格),后面要有冒号!
2. 修饰(columns:、indexs等)比数据表名要缩进,不能顶格;
3. 项目名(数据表的列名,如id、username、password等)要比修饰字段缩进;4. 项目的属性名(type, primary等)要比项目名缩进;
5. 属性和属性的值之间,必须是冒号和空格!
在直接复制别人的YML文件时要格外注意缩进和空格,各位看官牢记!
7. 建立数据表
在cmd窗口输入 php symfony doctrine:build--all (注意all前面是两个短线)建立数据库,可以通过MySQL查看到新建的数据表;
8.填写project/data/fixtures.yml 文件,填充测试数据
User:
User_1:
username: jwage
password: changeme
User_2:
username: fabpot
password: changeme
User_3:
username: dwhittle
password: changeme
上例中,User顶格,表示插入哪张表,User_1、User_2和User_3是三条记录,username: jwage 是 “属性”:“值”对,冒号后有空格。string属性的值无需用引号,若是日期(date)或时间戳(timestamp)类型,则一般用单引号。
9.数据载入
10.搭建后台(根据具体项目需要,可以略过)
若要在后台(后台应用名称取名为backend_app_name)创建管理module_name模块的cmd命令为:
php symfony doctrine:generate-admin backend_app_name module_name
此时可以通过:http://localhost:8080/project_name/backend_dev.php/module_name 进行后台查看。
11. 更新插件
命令输入 symfony plugin:publish-assets 更新插件,这样后台显示效果会好一点。