415 12
发新话题
打印

运行Symfony - 在项目中使用Symfony框架

安装问题 Troubleshooting

这些通常会有错误说明,甚至会提供网络上针对此问题的资源连接。如果在安装中遇到问题,尽量把错误或例外丢到shell或者浏览器上。
Typical Problems

如果你还是无法运行symfony,检查以下几点:

一些PHP环境同时包含了PHP4和PHP5的命令。 因此,在命令行用php5替代php, 也就是说试着用php5 symfony代替symfony。你也许在.htaccess配置中需要增加SetEnv PHP_VER 5参数,或者把web/目录中的.php换成.php5。在PHP4命令行下试着访问symfony就会有类似下面的提示:

Parse error, unexpected ',', expecting '(' in .../symfony.php on line 19.

在php.ini中的内存限制,至少需要设置为16M。 通常的症状就是通过PEAR方式安装symfony的时候出现的错误信息。
Allowed memory size of 8388608 bytes exhausted

必须在php.ini中把zend.ze1_compatibility_mode参数设置为off。 否则通过浏览器去访问脚本的话会出现"implicit cloning"错误:


Strict Standards: Implicit cloning object of class 'sfTimer'because of 'zend.ze1_compatibility_mode'


在你的项目中位于Web服务器上的的log/和cache/目录必须是可写的。如果在没有正确设定的时候访问symfony程序会出现以下问题:


sfCacheException [message] Unable to write cache file"/usr/myproject/cache/frontend/prod/config/config_config_handlers.yml.php"


The include path of your system must include the path to the php command, and the include path of your php.ini must contain a path to PEAR (if you use PEAR).
有时,服务器上会有多个php.ini文件(例如,如果你使用WAMP包)。 用phpinfo()函数去了解程序所用的php.ini文件所在的确切位置。

NOTE 虽然不是强制性的,但是这里强烈推荐,为了运行得更顺畅,在php.ini中设置magic_quotes_gpc 和 register_globals 参数为off。

TOP

Symfony资源 Symfony Resources

你可以在这些地方找到一些已经发现的问题的答案:
symfony 安装论坛 (http://www.symfony-project.com/forum/) 这里有各种平台,环境配置,主机上安装symfony的问题讨论。
用户邮件列表档案(http://groups.google.fr/group/symfony-users) 也可以搜索。你也许会找到一些人遇到同样的问题。
symfony wiki (http://www.symfony-project.com/trac/wiki#Installingsymfony) 有由symfony用户提供的详细安装教程。
symfony专区 - PHP开发资源网(http://www.phpres.com) 有中国的PHPer集中讨论symfony应用的地方。
symfony研究@中国(http://www.symfony-project.cn)有中国的symfony用户提供的安装教程。
symfony中文讨论组(http://groups.google.com/group/symfony-cn)在这里,你可以用中文提问。

如果没有找到答案,试着把问题放到symfony社区。 你可以在论坛,邮件列表甚至在#symfony IRC频道得到大家的回应。

TOP

源代码版本空置 Source Versioning

设置程序完成后,推荐进行版本控制。 版本控制能跟踪对代码的所有修改,可以回退到以前的版本,更容易得给程序打补丁和更有效地进行团队合作开发。 Symfony原生支持CVS,虽然推荐使用Subversion (http://subversion.tigris.org/)。 下面的例子展示了Subversion的命令, 我们假设你已经有Subversion服务器并且希望在项目中建立一个新的版本库。 Windows使用者推荐用叫做TortoiseSVN (http://tortoisesvn.tigris.org/)的Subversion客户端。 在Subversion文档中可以找到关于版本控制命令的更多信息。

下面例子假设系统环境参数中已经定义了 $SVNREP_DIR。 如果还没有定义,你要以实际存放位置代替 $SVNREP_DIR。

让我们在myproject项目中建立一个新的版本库:
> svnadmin create $SVNREP_DIR/myproject

建立trunk, tags 和 branches作为版本库的基础结构(layout)用以下命令:

file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches

这会是你第一个版本号。 现在你需要把项目中的文件导入进版本库
> cd ~/myproject
> rm -rf cache/*
> rm -rf log/*
> svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk

输入以下命令检查已经提交的文件:
> svn ls file:///$SVNREP_DIR/myproject/trunk/

That seems good. Now the SVN repository has the reference version (and the history) of all your project files. This means that the files of the actual ~/myproject/ directory need to refer to the repository. To do that, first rename the myproject/ directory--you will erase it soon if everything works well--and do a checkout of the repository in a new directory:
> cd ~
> mv myproject myproject.origin
> svn co file:///$SVNREP_DIR/myproject/trunk myproject
> ls myproject

现在你可以改写~/myproject/下的文件并提交到版本库中去。 myproject.origin/目录已经没用了,别忘了把它删除掉。

还有一件事情需要配置。 如果你提交当前工作目录到版本库中, 也许会包含了一些无用的文件,例如项目中的cache 和 log目录。所以必须为这个项目设置一个SVN忽略列表。当然,You also need to set full access to the cache/ and log/ directories again:
> cd ~/myproject
> chmod 777 cache
> chmod 777 log
> svn propedit svn:ignore log
> svn propedit svn:ignore cache

SVN默认的文字编辑器会启动。如果没有,在Subversion中设置你想用的文字编辑器:
> export SVN_EDITOR=<name of editor>
> svn propedit svn:ignore log
> svn propedit svn:ignore cache

现在只要把 myproject/子目录的所有文件都添加到SVN中了,SVN会在提交的时候忽略掉列表中的文件:
*

保存,退出。 完成了。

TOP

总结性Summary
如果在本地服务器上想测试或者尝试一下symfony,最好安装一个已经预配置好环境的沙盒。
For a real development or in a production server, opt for the PEAR installation or the SVN checkout. This will install the symfony libraries, and you still need to initialize a project and an application. The last step of the application setup is the server configuration, which can be done in many ways. Symfony works perfectly fine with a virtual host, and it is the recommended solution.
如果在安装中遇到问题, 你能从symnfony网站上找到许多教程,回答,FAQ。 如果需要,你可以把问题提交到symfony社区,这样会很快得到答案。
当项目初始化好后, 开始版本控制流程是一个好习惯。
现在你已经准备好使用symfony了,现在是时候去建立一个基础的网页程序了。

<转载注明:PHP开发资源网(http://bbs.phpre.com/)>

TOP

ding...............................

TOP

 415 12
发新话题