发新话题
打印

Symfony Askeet项目实战教程系列[转]

Symfony Askeet项目实战教程系列[转]

symfony advent calendar day one: starting up a project
教程系列:Symfony Askeet项目实战教程系列

前面我介绍过Symfony,其实我也是个PHP半瓢水(边学边实践,暂时没有选择RubyOnRails的原因:来年会做一些基于LAMP架构的外包项目)。

Symfony项目在圣诞来临之际,在社区内推出了一个惊喜(之前都搞得蛮神秘的,果然surprise):symfony advent calendar。本系列教程就是这个官方系列教程的简装实战学习版本。

首先安装Apache2.0.55,PHP5.1.0,MySQL5.0并做相应的配置(网上一大堆相关资料,不赘述了),我是分别安装在C:\jamp\apache2,c:\jamp\php5,c:\jamp\mysql5目录中(为啥叫jamp,因为还有其他与LAMP无关的jdk5,tomcat5之类的)
安装PHP 5.1.0时,缺省带的PEAR版本是1.3.6,如果采用PEAR方式安装Symfony,需要升级到1.4.0以上版本,目前是1.4.5,采用如下命令升级PEAR(非特别说明,以下命令基本上在C:\jamp\php5\目录下运行):
pear upgrade PEAR
记得将新的文件C:\jamp\php5\PEAR_ENV.reg运行,导入到注册表中(就是增加一堆环境变量):
REGEDIT4
[HKEY_CURRENT_USER\Environment]
"PHP_PEAR_SYSCONF_DIR"="C:\\jamp\\php5"
"PHP_PEAR_INSTALL_DIR"="C:\\jamp\\php5\\pear"
"PHP_PEAR_DOC_DIR"="C:\\jamp\\php5\\pear\\docs"
"PHP_PEAR_BIN_DIR"="C:\\jamp\\php5"
"PHP_PEAR_DATA_DIR"="C:\\jamp\\php5\\pear\\data"
"PHP_PEAR_PHP_BIN"="C:\\jamp\\php5\\php.exe"
"PHP_PEAR_TEST_DIR"="C:\\jamp\\php5\\pear\\tests"
找到symfony的PEAR安装频道:
pear channel-discover pear.symfony-project.com
安装symfony:
pear install symfony/symfony
如果想安装当前开发版本:
pear install symfony/symfony-beta
我的Symfony已经安装过0.4.2,现在只需要升级一下就可以了:
pear upgrade symfony/symfony
将C:\jamp\php5\symfony.bat中一段代码改成:
:run
rem IF EXIST "%C:\jamp\php5\pear%" (
%PHP_COMMAND% -d html_errors=off -qC "C:\jamp\php5\pear\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
rem ) ELSE (
rem   %PHP_COMMAND% -d html_errors=off -qC "%SYMFONY_HOME%\bin\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
rem )
goto cleanup
其实就这一行顶用:
%PHP_COMMAND% -d html_errors=off -qC "C:\jamp\php5\pear\symfony.php" %1 %2 %3 %4 %5 %6 %7 %8 %9
安装Phing:
pear install http://phing.info/pear/phing-current.tgz
很简单,Symfony就安装在C:\jamp\php5\PEAR\symfony\目录里了,检查一下安装的Symfony是否正确:
C:\jamp\php5>symfony -V
symfony version 0.4.3
看看Symfony常用的命令:
C:\jamp\php5>symfony -T
pake
clear-cache       > clear cached information
init-project     > initialize a new symfony project
init-app         > initialize a new symfony application
init-module       > initialize a new symfony module
init-propelcrud   > initialize a new propel CRUD module
generate-propelcrud > generate a new propel CRUD module
backup-data       > backup uploaded datas
fix-perms       > fix directories permissions
build-model       > create classes for current model
build-sql       > create sql for current model
build-schema     > create schema.xml from existing database
sync           > synchronise project with another machine
test           > launch project test suite

aliases:
cc             = pake clear-cache(这个经常需要使用到)
new           = pake init-project
app           = pake init-app
module         = pake init-module
一切OK. 开始干活,用这个Web2.0杀手级应用框架Symfony(Symfony官方网站语)来创建一个项目askeet(以下命令非特殊说明均在D:\webhome\askeet目录下),目录结构,代码哗啦啦就一大堆了(目录结构参见File structure explained),Action:
D:\webhome>mkdir askeet
D:\webhome>cd askeet
D:\webhome\askeet>symfony init-project askeet
>> dir+     D:\webhome\askeet\\batch
...
>> chmod 777 D:\webhome\askeet/web/uploads\\assets
>> chmod 777 D:\webhome\askeet\log
>> chmod 777 D:\webhome\askeet\cache
>> chmod 666 D:\webhome\askeet/web/uploads\\assets\.sf
>> chmod 666 D:\webhome\askeet/web/uploads\\.sf
>> chmod 666 D:\webhome\askeet/log\\.sf
接着创建一个前台应用,又是哗啦啦:
symfony init-app frontend
配置Apache(c:\jamp\apache2\conf\httpd.conf),还有Rewrite之类的配置就不描述了:

ServerName localhost
DocumentRoot "d:/webhome/askeet/web"
DirectoryIndex index.php
Alias /sf "C:\jamp\php\pear\data\symfony\web\sf"


  AllowOverride All


看看胜利果实吧:
http://localhost/

参考网址:
symfony advent calendar day one: starting up a project
Download and install symfony
Installing symfony
Project creation and the 'symfony' command
Installing Symfony Without PEAR
File structure explained
长不大昨办

TOP

发新话题