问题标签 [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.
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
通过更改该字段来更新文件,如下所示:
同样的错误
那么,有什么建议吗??
谢谢,
php - Composer 使用命名空间加载单个类
我正在尝试将 symfony flex 与捆绑包一起使用。
我有这个目录结构
我想用这个命名空间加载 Kernel.php 类,App
并用命名空间加载 AppBundle 中的类AppBundle
。
我尝试了许多作曲家配置,但无法加载它们。
但是我遇到了这样的错误:
更新
src/Kernel.php 类具有不同的命名空间,我无法更改它,因为其他类使用它,命名空间是App
. 一些脚本使用use App\Kernel
src/AppBundle/AppBundle.php
类有这个命名空间AppBundle
有办法做到这一点吗?
更新 2
我整理了一下:
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
文件
php - 如何在 Symfony4 结构的参数文件中检索我的环境变量?
我使用 Symfony Flex 进行了全新的 Symfony 安装,新的骨架属于下一个 Symfony 4 目录结构。
我添加并配置了第一个第三方包:HWIOAuthBundle。此捆绑包用于使用两个秘密信息通过 Twitter 进行连接。
我在文件中声明了 myconsumer_id
和 my 。consumer_secret
config/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
?
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 自动加载指令的实体实体。
提前致谢!!!
php - 使用 Symfony 4 的每个项目存储库有多个应用程序
我有三个旧应用程序(在 Symfony 2 上运行),每个应用程序都在单独的 git 存储库中开发并在各自的虚拟主机中配置:
company.com
公司网站。admin.company.com
网站管理。api.company.com
API公司服务。
尽管如此,它们共享相同的数据库。所以我们决定(公司)用 Symfony 4 的结构和方法将所有这些统一在一个应用程序中,主要是为了删除大量重复数据并改进其维护。
现在,我正在按计划将所有内容集成到一个应用程序/存储库中,但我开始处理一些性能和结构问题:
- 因为我只有一个入口点,
index.php
所以我做了两个路由前缀以便能够访问子应用程序company.com/admin/
,company.com/api/
所以每次都会加载所有路由:( - 对于每个请求,所有包和配置都是不必要的加载和处理。例如:当我访问 API 路径时,
SonataAdminBundle
它也会被加载:( - 缓存清除命令需要很长时间才能完成。
- 测试正在崩溃,现在也需要很长时间才能完成。
我想保留早期的虚拟主机并仅加载每个域所需的捆绑包和配置:
company.com
仅为公司网站加载捆绑包、路由和配置 (SwiftmailerBundle
, ...)admin.company.com
加载包、路由和配置仅用于网站管理 (SecurityBundle
,SonataAdminBundle
, ...)api.company.com
仅加载捆绑包、路由和配置以提供快速的 API 公司服务 (SecurityBundle
,FOSRestBundle
,NelmioApiDocBundle
, ...)
到目前为止,这就是我正在做的事情:
我已经检查了Kernel::registerBundles()
方法中的当前主机前缀并且我只加载了所需的包,但我仍然有bin/console
文件问题(它不起作用,因为HTTP_HOST
没有为 CLI 定义变量)我想清除每个的缓存“子应用程序”等等。
我一直在对这个主题进行一些研究,但到目前为止我找不到任何对我的场景有帮助的东西(Symfony 4)。
是否可以在一个项目存储库下有许多应用程序独立运行(如单个应用程序)但共享一些配置?实现它的最佳方法是什么?
提前致谢。
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 将它放在我的文件中,而不是在供应商文件中?
php - Symfony Flex:覆盖 FOSUser 登录表单
我阅读了两种覆盖 FOSUser 登录表单的方法:
然而,使用Symfony Flex,项目结构发生了巨大变化。
至于选项#1:app/Resources
不再有文件夹。我将模板存储在/templates
.
关于选项 #2:不再有 AppBundle。
现在,我扩展了 FOSUser 的安全控制器:
应用程序仍然呈现 FOSUserBundle 表单。我有一种感觉,我必须以某种方式注册 avobe 控制器。在 FOSUser 配置中,没有针对此的指令。如何做到这一点?
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 ;我尝试从上面的命令安装探查器。
symfony - 如何从 symfony 3.3 生成管理类
如何使用 symfony flex 项目和 SonataAdmin 为一个实体生成管理类?
没有更多的捆绑包,因此“捆绑包名称:”无法生成管理类。
有什么想法或建议吗?