问题标签 [symfony-flex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

composer-php - 由于最低稳定性,无法安装 api 配方

我想api-platform/api-platform在启用 flex 的 symfony 应用程序中使用。为此,我运行以下命令:

不幸的是,我收到此错误消息:

[InvalidArgumentException]
找不到任何版本的包 api-platform/api-pack 以获得最低稳定性(稳定)。检查包装拼写或您的最低稳定性

需要 [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-suggest] [--no-update] [--no-scripts] [- -update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o| --optimize-autoloader] [-a|--classmap-authoritative] [--apcu-autoloader] [--] []

为了避免这个问题,我尝试了几种解决方案:

解决方案 1

同样的错误

解决方案 2

同样的错误

解决方案 3

我尝试composer.lock通过更改该字段来更新文件,如下所示:

同样的错误

那么,有什么建议吗??

谢谢,

0 投票
2 回答
1254 浏览

php - Composer 使用命名空间加载单个类

我正在尝试将 symfony flex 与捆绑包一起使用。

我有这个目录结构

我想用这个命名空间加载 Kernel.php 类,App并用命名空间加载 AppBundle 中的类AppBundle

我尝试了许多作曲家配置,但无法加载它们。

但是我遇到了这样的错误:

更新

src/Kernel.php 类具有不同的命名空间,我无法更改它,因为其他类使用它,命名空间是App. 一些脚本使用use App\Kernel

src/AppBundle/AppBundle.php类有这个命名空间AppBundle

有办法做到这一点吗?

更新 2

我整理了一下:

0 投票
1 回答
214 浏览

symfony - 如何加载在 dev 子目录中声明的路由?(在开发环境中)

我正在用 Flex 测试 Symfony。我有一个运行良好的非常小的应用程序(幸运数字生成器)。我想通过 Flex 添加 web_profiler。

我启动这个命令: composer require web_profiler --dev

它工作正常,缓存已成功预热。但是当我查看我的主页时,出现了错误:“_wdt”路由不存在。

我检查了新config/routes/dev/web_profiler.yaml文件。它是由 Flex 创建的。它包含:

这似乎很好。我复制此代码并将其附加到我的config/routes.yaml. 错误消失。我知道我的config/routes/dev子目录中的 yaml 文件没有加载。

为什么我的文件/config/routes/dev subdirectory没有加载?我忘记加载我的开发配置文件的哪一步?

这是我的.env文件:

这是我的config/routes.yaml文件

这是配置子目录的屏幕截图。我认为我尊重标准: 这是配置子目录的截图

0 投票
2 回答
2493 浏览

php - 如何在 Symfony4 结构的参数文件中检索我的环境变量?

我使用 Symfony Flex 进行了全新的 Symfony 安装,新的骨架属于下一个 Symfony 4 目录结构。

我添加并配置了第一个第三方包:HWIOAuthBundle。此捆绑包用于使用两个秘密信息通过 Twitter 进行连接。

我在文件中声明了 myconsumer_id和 my 。consumer_secretconfig/packages/hwi_oauth.yaml

我的应用程序运行良好。但我不能在 github 上提交我的秘密!

我想要一个hwi_oauth.yaml像这样的文件:

我阅读了关于新 DotEnv 包的Symfony4 最佳实践。

使用环境变量虽然远非完美,但与我们目前所做的相比有很多好处。环境变量是管理依赖于环境的设置的一种更“标准”的方式(例如,不需要管理 parameters.yml.dist)。

正如最佳实践中所建议的,我将这两行附加到.env文件中:

但是我遇到了这个错误:

您请求了一个不存在的参数“twitter_consumer_id”。

我尝试了%kernel.twitter_consumer_id%, %env.twitter_consumer_id%%env(TWITTER_CONSUMER_ID)%但没有成功。

最后一个测试返回此错误消息:

在渲染模板期间引发了异常(“未找到环境变量:“TWITTER_CONSUMER_ID”。”)。

如何在参数文件中检索我的 ENV 变量hwi_oauth.yaml

0 投票
2 回答
1691 浏览

php - Symfony Flex - Doctrine 生成实体和实体运行时异常

我正在使用 Flex 测试新的 Symfony 4 模式,但在创建 Doctrine 实体或创建实体实体时遇到了大麻烦。

在之前的 Symfony 版本中,您可以使用以下命令创建实体:

php bin/console doctrine:generate:entities

php bin/console doctrine:generate:entities App:MyBundle:MyEntity

在这个版本中(带有新 Flex 框架的 Symfony 3.3-dev),新的文件夹结构“移除”了旧的 Bundle 结构,当执行上述命令在其中创建实体时,./src/Entity会返回如下错误:

[RuntimeException] 找不到“App\Entity\ExampleEntity”的基本路径(路径:“/mnt/c/.../src/Entity”,目标:“/mnt/c/.../src/Entity ”)。

问题是,这是生成实体的任何方式,或者是专注于路径而不是 PSR-4 自动加载指令的实体实体。

提前致谢!!!

0 投票
4 回答
3872 浏览

php - 使用 Symfony 4 的每个项目存储库有多个应用程序

我有三个旧应用程序(在 Symfony 2 上运行),每个应用程序都在单独的 git 存储库中开发并在各自的虚拟主机中配置:

  1. company.com公司网站。
  2. admin.company.com网站管理。
  3. api.company.comAPI公司服务。

尽管如此,它们共享相同的数据库。所以我们决定(公司)用 Symfony 4 的结构和方法将所有这些统一在一个应用程序中,主要是为了删除大量重复数据并改进其维护。

现在,我正在按计划将所有内容集成到一个应用程序/存储库中,但我开始处理一些性能和结构问题:

  • 因为我只有一个入口点,index.php所以我做了两个路由前缀以便能够访问子应用程序company.com/admin/company.com/api/所以每次都会加载所有路由:(
  • 对于每个请求,所有包和配置都是不必要的加载和处理。例如:当我访问 API 路径时,SonataAdminBundle它也会被加载:(
  • 缓存清除命令需要很长时间才能完成。
  • 测试正在崩溃,现在也需要很长时间才能完成。

我想保留早期的虚拟主机并仅加载每个域所需的捆绑包和配置:

  1. company.com仅为公司网站加载捆绑包、路由和配置 ( SwiftmailerBundle, ...)
  2. admin.company.com加载包、路由和配置仅用于网站管理 ( SecurityBundle, SonataAdminBundle, ...)
  3. api.company.com仅加载捆绑包、路由和配置以提供快速的 API 公司服务 ( SecurityBundle, FOSRestBundle, NelmioApiDocBundle, ...)

到目前为止,这就是我正在做的事情:

我已经检查了Kernel::registerBundles()方法中的当前主机前缀并且我只加载了所需的包,但我仍然有bin/console文件问题(它不起作用,因为HTTP_HOST没有为 CLI 定义变量)我想清除每个的缓存“子应用程序”等等。

我一直在对这个主题进行一些研究,但到目前为止我找不到任何对我的场景有帮助的东西(Symfony 4)。

是否可以在一个项目存储库下有许多应用程序独立运行(如单个应用程序)但共享一些配置?实现它的最佳方法是什么?

提前致谢。

0 投票
2 回答
331 浏览

php - 如何为 Symfony4 项目的 Codeception 提供内核的命名空间

我正在用 Coception 测试 Symfony4 的新目录结构。

Codeception 已安装和配置。由于捆绑策略的结束,我知道会发生错误,这是错误:

PHP致命错误:未捕获的错误:未找到类'内核'...\my_project\vendor\codeception\codeception\src\Codeception\Module\Symfony.php:146

Codeception 找不到 Kernel 类,因为它的新命名空间是 App 而不是空的命名空间。

内核现在位于 src 目录中,并在 App 命名空间中声明。

新的内核声明

src/Kernel.php

以前,内核被命名为 AppKernel 并且没有命名空间:

旧内核声明

app/AppKernel.php

我编辑了Symfony.php文件的第 265 行以更改正在返回的这一行Kernel

$class = $file->getBasename('.php');

通过这一行返回App\Kernel

$class = 'App\\'.$file->getBasename('.php');

此修改强制新结构的新名称空间。

我的功能测试运行完美,但我想避免修改供应商文件。

如何在没有这个hack的情况下强制 App 命名空间?似乎没有参数可以做到这一点,但我可以将代码接收封装在应用程序命名空间中,还是找到一个 hack 将它放在我的文件中,而不是在供应商文件中?

0 投票
2 回答
661 浏览

php - Symfony Flex:覆盖 FOSUser 登录表单

我阅读了两种覆盖 FOSUser 登录表单的方法:

  1. 在Docs中放置模板文件app/Resources/
  2. 覆盖子 Bundle Docs中的控制器

然而,使用Symfony Flex,项目结构发生了巨大变化。

至于选项#1:app/Resources不再有文件夹。我将模板存储在/templates.

关于选项 #2:不再有 AppBundle。

现在,我扩展了 FOSUser 的安全控制器:

应用程序仍然呈现 FOSUserBundle 表单。我有一种感觉,我必须以某种方式注册 avobe 控制器。在 FOSUser 配置中,没有针对此的指令。如何做到这一点?

0 投票
3 回答
1603 浏览

symfony - 无法安装探查器 symfony flex

运行后我无法使用 symfony 分析器composer req profiler 我在 4.0 beta 版中使用 symfony/skeleton,但我记得几个月前在 3.3 中测试它时遇到了同样的问题。

工具栏不起作用,请在此处留言:

加载 Web 调试工具栏时出错。打开网络分析器。

当单击“打开网络分析器”时,出现 404 错误。

如果有人解决了,谢谢你的帮助。如果没有,我会在它仍处于测试阶段时报告一个错误。

关于安装:使用 composer 创建了一个项目,4.0-beta 版中的 symfony/skeleton 包链接在这里:https ://github.com/symfony/skeleton

我的 php 版本是 7.1 ;我尝试从上面的命令安装探查器。

0 投票
0 回答
327 浏览

symfony - 如何从 symfony 3.3 生成管理类

如何使用 symfony flex 项目和 SonataAdmin 为一个实体生成管理类?

没有更多的捆绑包,因此“捆绑包名称:”无法生成管理类。

有什么想法或建议吗?