设置一个程序
Symfony将所有相关的程序组织在一个工程中。一个工程的所有程序共享同一个数据库。为了设置一个程序,我们必须首先设置一个工程。
创建工程
每一个Symfony工程遵循一个预定义的目录结构。Symfony命令行通过使用正确的树结构与访问权限来初始化一个工程的框架,从而自动化一个工程的创建。所以创建一个工程,只是简单的创建一个目录,并且要求symfony将其组织成为一个工程。
创建一个工程,我们可以执行下面的命令:
mkdir ~/myproject
cd ~/myproject
symfony init-project myprojetc
symfony必须在工程的根目录下进行调用,因为这个命令执行的所有任务都是工程相关的。
Symfony将会创建如下的一个目录结构:
apps/
batch/
cache/
config/
data/
doc/
lib/
log/
plugins/
test/
web/
创建一个程序
现在还不可以访问这个工程,因为他要求至少有一个程序。为了初始化,我们可以使用symfony init-app命令,并且将程序名作为参数传递给他。
symfony init-app myapp
这个命令会在工程根目录下的apps目录下创建一个myapp目录,并且会使用默认的程序配置以及要保存我们网站文件的目录。
apps/
myapp/
config/
i18n/
lib/
modules/
templates/
同时也会在web目录下创建与每一个默认环境的前端控件器相对应的PHP文件。
web/
index.php
myapp_dev.php
index.php 是新程序的产品前端控件器。因为我们创建了工程的第一个程序,symfony创建了一个名为index.php的文件,而不是myapp.php(如果我们要添加一个名为mynewapp的新程序,新的产器前端控件器就是会被命名为mynewapp.php)。要在开发环境下运行我们的程序,调用前端控制 器myapp_dev.php。
配置网络服务器
web/目录下的脚本是程序的实体。为了可以从网络进行访问,必须配置网络服务器。在我们的开发服务器中,或者是在专业的主机环境下,我们也许可以访问Apache配置文件,并且我们可以设置一个虚拟主机。
设置虚拟主机
下面是的一个Apache配置的例子,我们在http.conf文件中添加了一个新的虚拟主机:
<VirtualHost localhost:80>
ServerName myapp.example.com
DocumentRoot "/home/mylxiaoyi/web/myproject/web"
DirectoryIndex index.php
Alias /sf /usr/share/php5/symfony/data/web/sf
<Directory "/usr/share/php5/symfony/data/web/sf">
AllowOverride All
Allow from All
</Directory>
<Directory "/home/mylxiaoyi/web/myproject/web">
AllowOverride All
Allow from All
</Directory>
</VirtualHost> |