假设我想在Symfony中创建一个博客BlogBundle.但是这个BlogBundle依赖于其他捆绑包,如FOSUserBundle,KnpPaginator捆绑包,FMBbCodeBundle或者我最终使用的任何捆绑包.这是否意味着我无法在另一个项目中重用BlogBundle.的最佳实践可重复使用的捆绑 symfony的菜谱章说:
捆绑包不得嵌入第三方PHP库.它应该依赖于标准的Symfony自动加载.
但那究竟是什么意思呢?我不能使用任何不是我编程的东西吗?
如果是这种情况,我必须重新发明轮子,以解决我在开发捆绑包时遇到的最基本问题.例如,我必须提出自己的分页器来分页内容,创建我自己的用户管理器等等.我没有看到一点,因为我会浪费时间来解决已经做得更好的问题比我能做的更多.
或者食谱是否意味着我不能使用任何不在捆绑中的东西.这对我来说更有意义.
真的让我感到恼火的是,没有人真正做过博客或类似的东西,得到了很好的反馈,并且在顶级名单的任何地方都有提及.我知道,Symfony并不意味着有一个开箱即用的解决方案,而且还需要一些编码.我能找到的所有看起来非常受欢迎的捆绑包就是解析BB代码,处理用户管理以及其他难以做到的事情,但绝不会只做一件事.
我希望你明白我的意思,可以帮助我解决问题.提前致谢!
我正在开发一个 symfony/api 平台应用程序,允许用户跟踪体育比赛。我的实体看起来像这样(为简洁起见缩短):
用户.php
class User implements UserInterface
{
// ...
/**
* @ORM\OneToMany(targetEntity=MatchPlayer::class, mappedBy="user")
*/
private $matches;
// ...
}
Run Code Online (Sandbox Code Playgroud)
MatchPlayer.php
class MatchPlayer
{
// ...
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="matches")
* @ORM\JoinColumn(onDelete="SET NULL")
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity=Match::class, inversedBy="players")
*/
private $playedMatch;
/**
* @ORM\ManyToOne(targetEntity=Position::class, inversedBy="matches")
*/
private $position;
// ...
}
Run Code Online (Sandbox Code Playgroud)
匹配.php
class Match
{
// ...
/**
* @ORM\Column(type="smallint")
* @Groups({"match:read"})
*/
private $outcome;
/**
* @ORM\ManyToOne(targetEntity=Sport::class, inversedBy="matches")
*/
private $sport;
/**
* @ORM\OneToMany(targetEntity=MatchPlayer::class, mappedBy="playedMatch", cascade={"persist", …Run Code Online (Sandbox Code Playgroud)