创建项目
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.0,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
创建项目
安装Symfonyob娱乐下载
在过去,Symfony项目ob娱乐下载是使用作曲家, PHP应用程序的依赖管理器。但是,目前的建议是使用ob娱乐下载Symfony安装程序,在创建第一个项目之前必须安装该软件。
最佳实践
使用Symfonob娱乐下载y安装程序创建新的基于Symfony的项目。
读了安装和设置Symfony框架ob娱乐下载文章学习如何安装和使用Symfony安装程序。ob娱乐下载
创建博客应用程序
现在一切都正确设置好了,您可以基于Symfony创建一个新项目。ob娱乐下载在命令控制台中,浏览到您有权限创建文件的目录并执行以下命令:
1 2 3 4 5 6
$cdProjects / $ob娱乐下载 symfony新博客#窗口c: \ >cdProjects / c:\ Projects \> Pob娱乐下载HP symfony新博客
请注意
如果安装程序不为您工作或不输出任何内容,请确保Phar扩展已在您的计算机上安装并启用。
这个命令创建一个名为博客
包含一个基于最新的Symfony稳定版本的新项目。ob娱乐下载此外,安装程序还检查您的系统是否满足执行Symfony应用程序的技术要求。ob娱乐下载如果没有,您将看到满足这些需求所需的更改列表。
构建应用程序
创建应用程序后,输入博客/
目录,你会看到一些自动生成的文件和目录:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16
blog/├─app/│├─config/│├─Resources/├─bin│├─console├─src/│├─AppBundle/ var/│├─cache/│├─logs/│├─sessions/├─tests/│├─vendor/├─web/
这个文件和目录层次结构是Symfony提出的用于构建应用程序的约定。ob娱乐下载每个目录的推荐用途如下:
应用程序/配置/
,存储为任何环境定义的所有配置;应用程序/资源/
,存储应用程序的所有模板和翻译文件;src / AppBundle /
,存储Symfony特定的ob娱乐下载代码(控制器和路由),您的域代码(例如Doctrine类)和所有的业务逻辑;var /缓存/
,存储应用程序生成的所有缓存文件;var /日志/
,存储应用程序生成的所有日志文件;var /会议/
,存储应用程序生成的所有会话文件;测试/ AppBundle /
,存储应用程序的自动测试(例如单元测试)。供应商/
,这是Composer安装应用程序依赖项的目录,你不应该修改它的任何内容;web /
,存储所有前端控制器文件和所有web资产,如样式表,JavaScript文件和图像。
应用程序包
当Symfob娱乐下载ony 2.0发布时,大多数开发人员自然采用了Symfony 1。X将应用程序划分为逻辑模块的方式。这就是为什么许多Symfony应ob娱乐下载用程序使用捆绑包将代码划分为逻辑特性:UserBundle、ProductBundle、InvoiceBundle等等。
但是捆绑是的意思成为一种可以作为独立软件重用的东西。如果UserBundle不能使用“目前的”在其他Symfonob娱乐下载y应用中,那么它不应该是自己的捆绑包。此外,如果InvoiceBundle依赖于ProductBundle,那么拥有两个单独的bundle没有任何好处。
最佳实践
仅为应用程序逻辑创建一个名为AppBundle的bundle。
在你的项目中实现一个AppBundle包将使你的代码更简洁,更容易理解。
请注意
没有必要在AppBundle前面加上你自己的供应商(例如AcmeAppBundle),因为这个应用程序包永远不会被共享。
请注意
创建新包的另一个原因是当你重写供应商包中的某些内容时(例如控制器)。看到如何使用包继承覆盖一个包的部分.
总而言之,这是遵循以下最佳实践的Symfony应用程序的典型目录结构:ob娱乐下载
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
blog/├─app/│├─config/│├─bin/│├─console├─src/│├─tests/│├─AppBundle/├─var/│├─cache/│├─logs/├─sessions/├─vendor/├─web/├─app.php├─app_dev.php
提示
如果您的Symfob娱乐下载ony安装没有预先生成的AppBundle,您可以手动执行以下命令生成它:
1
$ php bin/console生成:bundle——namespace=AppBundle——dir=src——format=annotation——无交互