在windows上使用symfony创建简易的CMS系统(一)

http://blog.csdn.net/kunshan_shenbin/article/details/7164675

1. 创建工作目录,生成项目文件

>md cms

>cd cms

>symfony generate:project cms

>symfony generate:app frontend

>symfony generate:app backend

2. Apache下配置项目(新建虚拟主机)

 

  1. <VirtualHost *:1300>  
  2.     DocumentRoot "D:\Work\PHP\cms\web"  
  3.     DirectoryIndex index.php  
  4.     <Directory "D:\Work\PHP\cms\web">  
  5.         AllowOverride All  
  6.         Allow from All  
  7.     </Directory>  
  8.   
  9.     Alias /sf D:\xampp\php\data\symfony\web\sf  
  10.     <Directory "D:\xampp\php\data\symfony\web\sf">  
  11.         AllowOverride All  
  12.         Allow from All  
  13.     </Directory>  
  14. </VirtualHost>  

注意:

 

以上配置需要添加在httpd-vhosts.conf文件中,并在httpd.conf中打开对相应端口的监听。

当然,我们也可以通过修改hosts文件添加相应的域名解析。这里略过( 使用localhost ) 。

重启Apache后,通过访问http://localhost:1300/ 可以看到symfony工程欢迎页面。


从这里开始,我们可以选择一个顺手的IDE打开工程,以便更好的发开项目。

3. 配置并创建数据库

打开工程下config中的databases.yml文件,修改数据库连接的参数。

 

  1. # You can find more information about this file on the symfony website:  
  2. # http://www.symfony-project.org/reference/1_4/en/07-Databases  
  3.   
  4. all:  
  5.   doctrine:  
  6.     class: sfDoctrineDatabase  
  7.     param:  
  8.       dsn:      mysql:host=localhost;dbname=cms  
  9.       username: root  
  10.       password: root  


定义schema ( cms/config/doctrine/schema.yml )

 

 

  1. Category:  
  2.   columns:  
  3.     name: string(50)  
  4.     description: string(1000)  
  5.       
  6. Content:  
  7.   actAs:  
  8.     Timestampable: ~  
  9.   columns:  
  10.     title: string(255)  
  11.     body: clob  
  12.     view_count: integer  
  13.     recommend_level:  
  14.       type: enum  
  15.       values: [0, 1, 2]  
  16.       default: 2  
  17.     category_id: integer  
  18.   relations:  
  19.     Category:  
  20.       local: category_id  
  21.       foreign: id  
  22.       foreignAlias: Contents  
  23.         
  24. Comment:  
  25.   columns:  
  26.     body: clob  
  27.     user_id: integer  
  28.     content_id: integer  
  29.   relations:  
  30.     Content:  
  31.       local: content_id  
  32.       foreign: id  
  33.       foreignAlias: Comments  


运行如下指令:

 

>symfony doctrine:build --all

 

4. 导入测试数据

打开cms/data/fixtures/fixtures.yml文件,输入测试数据

  1. # # Populate this file with data to be loaded by your ORM's *:data-load task.  
  2. # # You can create multiple files in this directory (i.e. 010_users.yml,  
  3. # # 020_articles.yml, etc) which will be loaded in alphabetical order.  
  4. # #   
  5. # # See documentation for your ORM's *:data-load task for more information.  
  6. #   
  7. # User:  
  8. #   fabien:  
  9. #     username: fabien  
  10. #     password: changeme  
  11. #     name:     Fabien Potencier  
  12. #     email:    fabien.potencier@symfony-project.com  
  13. #   kris:  
  14. #     username: Kris.Wallsmith  
  15. #     password: changeme  
  16. #     name:     Kris Wallsmith  
  17. #     email:    kris.wallsmith@symfony-project.com  
  18.   
  19. Category:  
  20.   c1:  
  21.     name: 巴西  
  22.     description: 南美球队  
  23.   c2:  
  24.     name: 英国  
  25.     description: 欧洲球队  
  26.   c3:  
  27.     name: 加纳  
  28.     description: 非洲球队  
  29.       
  30. Content:  
  31.   t1:  
  32.     title: 卡卡助攻  
  33.     body: ......  
  34.     view_count: 6  
  35.     recommend_level: 0  
  36.     Category: c1  
  37.     Comments: [m1, m2]  
  38.   t2:  
  39.     title: 鲁尼没有大作为  
  40.     body: ......  
  41.     view_count: 10  
  42.     recommend_level: 1  
  43.     Category: c2  
  44.       
  45. Comment:  
  46.   m1:  
  47.    body: 很赞  
  48.   m2:  
  49.    body: 太不尽人意了。  

运行如下指令:

> symfony doctrine:data-load

 

5. 接下来我们开始着手生成后台的管理页面:

>symfony doctrine:generate-admin backend Category

>symfony doctrine:generate-admin backend Content

>symfony doctrine:generate-admin backend Comment

通过如下地址访问页面(开发环境入口)

http://localhost:1300/backend_dev.php/category

http://localhost:1300/backend_dev.php/content

http://localhost:1300/backend_dev.php/comment

然后运行如下指令添加css等样式资源:

>symfony plugin:publish-assets

再次访问后页面会比原来漂亮很多。

posted @ 2013-11-09 10:50  kael_oy  阅读(297)  评论(0编辑  收藏  举报