如何在Symfony 4上创建库包?
在Symfony 3中,我使用此命令:php bin/console generate:bundle
但在新版本中无效.并且可以使用像Symfony 3这样的捆绑包,例如,如果不可能如何在Symfony 4中模拟,我有博客包和电报僵尸网络捆绑包?
当我调用logger
service时,在日志文件中获取此信息消息它是否有效,但是在日志文件中写入此消息:
php.INFO:User不推荐使用:"logger"服务是私有的,从容器中获取它自Symfony 3.2以来就已弃用,并且将在4.0中失败.您应该将服务公之于众,或者直接停止使用容器并改为使用依赖注入.{"exception":"[object](ErrorException(code:0):User弃用:\"logger \"服务是私有的,从Symfony 3.2开始从容器中获取它并在4.0中失败.你应该制作服务公共,或者直接停止使用容器并改为使用依赖注入./home///####PROJECT/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Container.php:275 )"} []
我的symfony版本:3.4.1
Symfony运行正常但我在浏览器中打开后出现此错误所有我的控制器都为空响应
FatalThrowableError
Type error: Return value of Doctrine\Common\Annotations\AnnotationRegistry::registerLoader() must be an instance of Doctrine\Common\Annotations\void, none returned
Run Code Online (Sandbox Code Playgroud)
这是我的配置文件,我使用多个数据库
# Doctrine Configuration
doctrine:
dbal:
default_connection: admin
connections:
admin:
driver: pdo_mysql
host: '%database_host%'
port: '%database_port%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
charset: UTF8
public_branch:
driver: pdo_mysql
host: '%database_host1%'
port: '%database_port1%'
dbname: '%database_name1%'
user: '%database_user1%'
password: '%database_password1%'
charset: UTF8
orm:
auto_generate_proxy_classes: '%kernel.debug%'
default_entity_manager: admin
entity_managers:
admin:
connection: admin
auto_mapping: true
public_branch:
connection: public_branch
mappings:
AdminBundle: ~
PublicBranchBundle: ~
Run Code Online (Sandbox Code Playgroud)
我能做什么?
我将Symfony项目从4.1升级到4.2,并在事件探查器中得到12次通知:
自Symfony 4.2起,不支持没有根节点的树生成器,并且5.0中不再支持该树生成器。
日志的跟踪为:
{?
/home/user/foo/bar/project/vendor/symfony/config/Definition/Builder/TreeBuilder.php:30 {?
› if (null === $name) {
› @trigger_error('A tree builder without a root node is deprecated since Symfony 4.2 and will not be supported anymore in 5.0.', E_USER_DEPRECATED);
› } else {
}
/home/user/foo/bar/project/vendor/sensio/framework-extra-bundle/DependencyInjection/Configuration.php:32 {?
› {
› $treeBuilder = new TreeBuilder();
› $rootNode = $treeBuilder->root('sensio_framework_extra', 'array');
}
}
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我想设置 id 手册我在我的测试实体中编写此代码:
我可以对像我的代码这样的实体使用 setId() 吗?
我的代码在这里:
/**
* Test
* @ORM\Table(name="test")
*/
class Test
{
/**
* @var int
* @ORM\Column(name="id", type="integer")
*/
private $id;
/**
* @var string
* @ORM\Column(name="name", type="string", length=255)
*/
private $name;
/**
* Set id
* @param integer $id
* @return Test
*/
public function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Get id
* @return integer
*/
public function getId()
{
return $this->id;
}
// other methods
}
Run Code Online (Sandbox Code Playgroud)
这是设置 id …
在我的Linux服务器中,我有MariaDB版本10.0并且不支持json类型(在10.2版本中支持)并且我无法更新它,因为没有在官方ubuntu存储库中发布.
当我运行doctrine:migration:migrate
创建表的命令时,我从MariaDB获取json类型的语法错误
MariaDB:10.0.34 - PHP:7.1 - Symfony:4.0.6
我该怎么办?
我使用Laravel WebDAV 包装器,它使用Saber将媒体上传到使用 Nginx 进行基本身份验证的 WebDAV 服务器,但根据文档中设置的默认包,我在以下位置使用了此配置filesystem.php
:
'dav' => [
'driver' => 'webdav',
'baseUri' => 'https://dav.example.com/',
'userName' => 'test',
'password' => 'test',
],
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 Laravel Storage 存储文件时出现此错误:
无法进行必要的数据回滚