创建项目

编辑本页

警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.3,现已不再维护。

本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。

创建项目

安装Symfony欧宝娱乐app下载地址

在过去,Symfony项目欧宝娱乐app下载地址是使用作曲家, PHP应用程序的依赖管理器。但是,目前的建议是使用欧宝娱乐app下载地址Symfony安装程序,在创建第一个项目之前必须安装该软件。

最佳实践

使用Symfon欧宝娱乐app下载地址y安装程序创建新的基于Symfony的项目。

读了安装一章的Symfon欧宝娱乐app下载地址y Book,以了解如何安装和使用Symfony安装程序。

创建博客应用程序

现在一切都正确设置好了,您可以基于Symfony创建一个新项目。欧宝娱乐app下载地址在命令控制台中,浏览到您有权限创建文件的目录并执行以下命令:

1 2 3 4 5 6 7
# Linux, Mac OS XcdProjects / $欧宝娱乐app下载地址 symfony新博客#窗口c: \ >cdProjects / c:\ Projects \> P欧宝娱乐app下载地址HP symfony新博客

请注意

如果安装程序不为您工作或不输出任何内容,请确保Phar扩展已在您的计算机上安装并启用。

这个命令创建一个名为博客包含一个基于最新的Symfony稳定版本的新项目。欧宝娱乐app下载地址此外,安装程序还检查您的系统是否满足执行Symfony应用程序的技术要求。欧宝娱乐app下载地址如果没有,您将看到满足这些需求所需的更改列表。

提示

欧宝娱乐app下载地址出于安全原因,Symfony发行版是数字签名的。如果您想验证您的Symfony安装的完整性,请查看欧宝娱乐app下载地址公共校验和存储库并遵循这些步骤验证签名。

构建应用程序

创建应用程序后,输入博客/目录,你会看到一些自动生成的文件和目录:

1 2 3 4 5 6 7 8 9 10 11
blog/├─app/│├─console│├─cache/│├─config/│├─logs/│├─Resources/├─src/│├─vendor/├─web/

这个文件和目录层次结构是Symfony提出的用于构建应用程序的约定。欧宝娱乐app下载地址每个目录的推荐用途如下:

  • 应用程序/缓存/,存储应用程序生成的所有缓存文件;
  • 应用程序/配置/,存储为任何环境定义的所有配置;
  • 应用程序/日志/,存储应用程序生成的所有日志文件;
  • 应用程序/资源/,存储应用程序的所有模板和翻译文件;
  • src / AppBundle /,存储Symfony特定的欧宝娱乐app下载地址代码(控制器和路由),您的域代码(例如Doctrine类)和所有的业务逻辑;
  • 供应商/,这是Composer安装应用程序依赖项的目录,你不应该修改它的任何内容;
  • web /,存储所有前端控制器文件和所有web资产,如样式表,JavaScript文件和图像。

应用程序包

当Symf欧宝娱乐app下载地址ony 2.0发布时,大多数开发人员自然采用了Symfony 1。X将应用程序划分为逻辑模块的方式。这就是为什么许多Symfony应欧宝娱乐app下载地址用程序使用捆绑包将代码划分为逻辑特性:UserBundle、ProductBundle、InvoiceBundle等等。

但是捆绑是的意思成为一种可以作为独立软件重用的东西。如果UserBundle不能使用“目前的”在其他Symfon欧宝娱乐app下载地址y应用中,那么它不应该是自己的捆绑包。此外,如果InvoiceBundle依赖于ProductBundle,那么拥有两个单独的bundle没有任何好处。

最佳实践

仅为应用程序逻辑创建一个名为AppBundle的bundle。

在你的项目中实现一个AppBundle包将使你的代码更简洁,更容易理解。从Symfony 2.6欧宝娱乐app下载地址开始,Symfony官方文档使用AppBundle名称。欧宝体育电话

请注意

没有必要在AppBundle前面加上你自己的供应商(例如AcmeAppBundle),因为这个应用程序包永远不会被共享。

请注意

创建新包的另一个原因是当你重写供应商包中的某些内容时(例如控制器)。看到如何使用包继承覆盖一个包的部分

总而言之,这是遵循以下最佳实践的Symfony应用程序的典型目录结构:欧宝娱乐app下载地址

12 3 4 5 6 7 8 9 10 11 12 13
blog/├─app/│├─console│├─cache/│├─config/│├─logs/│├─Resources/├─src/│├─vendor/├─web/├─app.php├─app_dev.php

提示

如果您的Symf欧宝娱乐app下载地址ony安装没有预先生成的AppBundle,您可以手动执行以下命令生成它:

1
$ php应用/控制台生成:bundle——namespace=AppBundle——dir=src——format=annotation——无交互

扩展目录结构

如果您的项目或基础设施需要对Symfony的默认目录结构进行一些更改,您可以这样做欧宝娱乐app下载地址重写主目录的位置:缓存/日志/而且web /

此外,Symfony3在发欧宝娱乐app下载地址布时将使用一个略有不同的目录结构:

12 3 4 5 6 7 8 9 10 11 12
blog-欧宝娱乐app下载地址symfony3 /├─app /│├─配置/│└─资源/├─bin /│└─控制台├─src /├─var /│├─缓存/│└─日志/├─供应商/└─web /

这些更改非常肤浅,但是现在,我们建议您使用Symfony目录结构。欧宝娱乐app下载地址

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。