草庐IT

依赖树

全部标签

php - 依赖注入(inject)容器处理 PHP 网站的哪些部分?

在阅读了一万亿篇有关依赖注入(inject)容器的含糊教程后,我觉得我仍然没有完全理解要点。当涉及特定于应用程序的事物(如模型、Controller等)时,我应该如何管理依赖项的自动注入(inject)?我碰巧有一个大型网站,可能有30-40种不同类型的模型……我真的需要创建一个应用程序依赖管理器来处理这些不同类型的每一种吗?有人告诉我,DIC不是针对领域的东西,而是针对框架的东西,我也听到了相反的说法。哪个是“正确的”?奖励问题:如果DIC不适用于领域层对象(如模型),您如何将依赖项传递给领域层对象? 最佳答案 也许不完全是您要找

PHPUnit 依赖注入(inject)到测试用例中

我想知道是否可以通过例如将依赖项注入(inject)从PHPUnit_Framework_TestCase派生的类中一些上下文测试套件-以PHPUnit可以处理的方式,而不管它是否已通过phpunit.xml配置文件或其他方式手动调用?请考虑以下示例:现在我想为实现AnyGreeter的类提供一些通用测试,例如:getGreeter();$message=$greeter->greet("world");$this->assertContains("world",$message);}publicfunctionsetGreeter(AnyGreeter$greeter){$this-

php - 我这里需要依赖注入(inject)容器吗

我需要在程序启动时设置以下依赖项://Setupdependencies$fileSettings=array(12,'extra_lines','close_on_save');$exporter=newExporter('exporterpath/filename.txt',$fileSettings);$outputStream=newOutputStream();$businessModel=newBusinessModel('param1','param2');//Runapplication$application=newApplication($exporter,$out

php - 什么是与 PHP 框架的依赖注入(inject)相结合的良好 DAO 模式?

我正在开发一个基于依赖注入(inject)的PHP框架。我的数据对象是可注入(inject)组件,就像其他任何组件一样。我有一个抽象的DAO类,每个模型都应该扩展它,它有:基本的crud方法对DI容器的引用,用于实例化对象简而言之,事情是这样的abstractclassAbstractDao{protected$fields;protected$container;//Thisisthe(injected)DIcontainer,usedtocreateinstances.protected$driver;//Theinjecteddatabasedriver(i.e.PDO)publ

php - 如何在 PHP 中正确注入(inject)依赖项

我在依赖注入(inject)方面遇到了一些问题,我想解决一下。首先要提到的是我实现的依赖注入(inject)容器(DIC),它能够使用ReflectionClass通过构造函数注册和解析依赖项。$container=newDiC;$container->register('session','CSession');$container->register('response','CResponse');$container->register('model','CSomeModel');$container->register('view','CSomeView');$containe

php - 我们可以使用具有稀疏 SVN check out 功能的 Composer 来共享依赖项吗?

我们当前的开发设置使用包含多个项目的单个Subversion存储库,每个项目都有分支、标签和主干。然后,我们使用“稀疏结帐”来选择要使用的项目和这些项目的分支。结果是工作副本的目录结构与存储库的目录结构相匹配,包括分支信息,我们从不使用svnswitch。(这种工作方式对于使用SVN的人来说可能很熟悉,但对于那些不使用SVN的人来说可能会感到惊讶。)我们正在考虑使用Composer来管理外部和内部依赖项,但我不确定这如何与稀疏结帐工作方式一起工作。我希望通过某种方式使用现有结帐中的目录来满足依赖关系,而不是每个“根项目”都需要一个单独的副本。例如:站点/Foo/trunk依赖于libA

php - 你能在使用依赖注入(inject)的同时避免大量的私有(private)变量吗?

我一直在阅读/观看很多推荐Material,最近是这个-MVCforadvancedPHPdevelopers.出现的一件事是单例是不好的,它们在类之间创建依赖关系,而依赖注入(inject)很好,因为它允许单元测试和解耦。在我编写程序之前,一切都很好。我们以网店的产品页面为例。首先我有我的页面:classPage{public$html;publicfunction__construct(){}publicfunctioncreatePage(){//dosomethingtogeneratethepage}publicfunctionshowPage(){echo$this->ht

php - 使用自定义 Doctrine 2 数据类型的依赖注入(inject)

我有与DependencyinjectionwithcustomDoctrine2hydrator几乎相同的问题,但我需要将服务注入(inject)自定义数据类型,而不是水合器。所引用问题中的解决方案依赖于复制和修改Doctrine源代码,因为Doctrine会自行初始化类。希望另一种方法适用于自定义数据类型?这是一个Symfony3应用程序,如果可以在那里应用一些魔法的话。 最佳答案 根据初始问题中的评论:困难在于Doctrine如何实例化自定义数据类型。doctrine的Type::addType($name,$classNam

php - Laravel、依赖注入(inject)和 Eloquent

将laravel的依赖注入(inject)系统与CRUD模型等多实例对象一起使用的正确/最佳方法是什么?当前在PHP领域的某些角落流行说以下代码“不好”functionsomeMethod(){/*..stuff...*/$object=new\App\SomeModel;$object->some_prop='somevalue';$object->save();/*..otherstuff...*/}这很糟糕,因为此方法现在依赖于新的对象实例化。当前的时尚认为应该通过某种依赖注入(inject)系统注入(inject)对象,例如Laravel的automaticconstructo

php - 在 CI 中使用 select2 在 php 中具有依赖性的多项选择

我正在使用select2插件进行选择。我有多个表格,每个表格中都有员工姓名和三个位置部门和职位的多选框,其中每个员工有多个位置,每个位置可以有多个部门和职位,意味着部门和职位取决于位置尊重每一位员工。部门和职位在optgroup中显示部门和职位作为选项显示的位置问题我将所有值保存到我的数据库中。当我在编辑部分时,如何显示关于员工的位置、部门和职位的所有选定值。 最佳答案 简单...保存的值和进入数组所以,你只需要提出这个条件echo'$name'; 关于php-在CI中使用select2