草庐IT

可依赖的jar

全部标签

php - 如何使用依赖注入(inject)容器进行延迟加载?

我是依赖注入(inject)容器等方面的新手。我有一个User对象,我想用容器构建它。在我的例子中,用户可能有大量与他/她关联的Comment对象,但我不会在每个请求中都需要它们。以前,我会让用户模型自己创建和加载评论模型,但我意识到这是一种不好的做法。如果我不想在构建用户时加载所有评论(例如,如果我想延迟加载评论),我该如何使用DI和DIC实现这一点?注意:我知道已经构建了解决方案,但在了解它们的工作原理之前我不想使用它们。这是一道理论题,学习基础知识,然后我很可能会转向一个既定的框架。 最佳答案 我不认为在模型中加载依赖项是依赖

php - 无法让 PHPUnit 依赖项工作

我正在开发一个API,但在编写一些测试用例时遇到了问题。我已经编写了一组通用测试用例来测试所有实体。这些包括一般操作,例如创建、修改和删除。/***@dataProviderprovideCreateData*@dependsLoginTest::testLogin*/publicfunctiontestCreate/***@dataProviderprovideModifyData*@dependstestCreate*/functiontestModify数据提供者提供API实体列表及其各自的属性,测试会动态测试所有实体,而无需我们在未来发生变化时维护测试。上面的代码目前工作正常,

php - 从php构造函数获取构造参数依赖

使用phpReflectionClass我可以找到必须在类构造函数中注入(inject)哪些参数才能创建新实例。$class=newReflectionClass($this->someClass);$constructor=$class->getConstructor();$parameters=$constructor->getParameters();是否还有一种方法可以获取这些参数的依赖关系。因此,如果someClass的构造函数如下所示:publicfunction__construct(Dependency$dependency){$this->dependency=$de

php - OOP 类方法依赖

在一个类中让方法相互依赖可以吗,封装在一起的方法?这会影响单元测试吗?或者术语Unit是针对整个类而不是类自己的方法。做这样的事情是可以的:checkBaz($baz)){$this->baz=$baz;}}publicfunctionsetBar($bar){if($this->checkBar($bar)){$this->bar=$bar;}}}我在想,如果我想使用一个从这个类到另一个类的绑定(bind)方法,我必须稍微重写这个方法,我在想如果以某种方式封装方法是不是开销很大,比如将功能插入到方法参数中,这是OOP中的常见做法,还是我应该坚持认为类是高内聚方法和属性的封装,并将其视

PHP 依赖注入(inject) - 在构造函数中包含类名

我是OO的新手,但正在四处阅读并尝试学习以“正确”的方式做事。我一直在阅读依赖注入(inject),并且可以理解为什么它是一件好事,但是我对语法并不完全清楚。例如看这个BasicPHPObjectOrientedInstantiationandDependencyInjection关于SO的问题我复制了完全相同的代码(按照答案建议进行更改)然后打印出方法返回的内容:$author=newAuthor('Mickey','Mouse');print$author->getFirstName();$question=newQuestion('whatdayisit?',$author);p

PHP - 如果自动加载,为什么要使用依赖注入(inject)?

请原谅这个问题可能很天真,但我真的很困惑。似乎使用依赖注入(inject)来解耦代码是一种很好的做法,这样您的类就可以加载它们的依赖关系。请想象下面的类Foo依赖类BarnamespaceClasses;classFoo{protectedbarInstance;publicfunction__construct(Bar$barInstance){$this->barInstance=$barInstance;}}但是,如果您要自动加载您的类,那么下面的代码肯定会在不需要DI的情况下做完全相同的事情吗?namespaceClasses;useClasses/Bar;classFoo{p

从零开始画自己的DAG作业依赖图(一)--前期准备

背景:由于业务场景需要展示作业之间的依赖关系,由于一些开源的插件和当前的业务逻辑有一些冲突,个人打算尝试从零开始,一点点实现自己的DAG图。同时用博客记录自己实现过程和总结,不正确的地方,欢迎指正提升。场景分析:数据开发中常常有作业之间的依赖,在执行作业的时候,可能会出现有些作业失败,或者重试,这时候,运维或者开发的人,需要有一个很直观的图去展示作业之间的依赖,这时候DAG依赖流程图就是一个很好的展现形式。大数据场景下,可能会出现很多节点,甚至可能达到上千,甚至上万的节点,节点之间的边有可能也会很多,大的数据下,图的渲染时间需要考虑在内用户有可能在看了图之后,想直接重跑或者查看某个节点的上下游

PHP 避免静态类以避免依赖,但我需要在任何地方使用全局

很多次我听说要避免静态类因为theywillinsertdependenciesthatwillrenderyourcodeunusableinotherprojects,andwillnotallowtounittestit.假设我们有一个典型的classDB来访问数据库,如果这样的类是static我们可以在我们的代码中的任何地方调用它:DB::execQuery(...);但是这会产生依赖性,所以让我们让DB类不是静态的,在这种情况下我们的代码中会有某处:$db=newDB();然后我们可以调用我们的代码$db->execQuery(...);但是现在当在function中使用$d

php - 实体、存储库和组合 - 依赖注入(inject)

我正在尝试了解DDD,但有些关于实体和存储库的内容我无法理解。从这里的其他问题中,我意识到将存储库注入(inject)实体是一个坏习惯。但是如何在组合对象时避免注入(inject)存储库?让我们来看一个简单的情况——事件和事件应用程序。这看起来很简单。$event->add($application);$eventRepository->save($event);我相信$application是一个实体,所以我相信应该有一些$applicationRepository。这是否意味着我应该将$applicationRepository注入(inject)到$eventRepository

Php,依赖注入(inject) - 杀死静态方法,但不需要 instatize

这是一个基本的类构造,在使用DI之前(我知道,它的结构有点不正确,请尽量关注问题)classMobile{publicfunctiongetWeight(){return4;}}classUser{publicstaticfunctiongetWeight(){$mobile=newMobile();return$mobile->getWeight();}}更新后,使用DI:classUser{public$mobile;publicfunctiongetWeight(){return$this->mobile->getWeight();}}如果我们检查一下,使用getWeight()