草庐IT

php - 在 PHP 和 Laravel 中使用工厂模式

工厂是否应该负责寻找模型以及创建模型?例如:如果我有一个产品模型,它的工厂是否应该有这样的方法:$product=$productFactory->findByID(32);$product=$productFactory->all();$product=$productFactory->findByName($productName);$product=$productFactory->create($data); 最佳答案 嗯,其实工厂模式是一种创建型模式,它使用工厂方法来处理创建对象的问题,即使没有指定静态类,这意味着它创建在

php - 在 Laravel 中使用 PHP Faker 在使用工厂播种数据库时生成 "unique with"条目

所以类似于uniquewith验证规则(参见:https://github.com/felixkiss/uniquewith-validator),我想知道如何生成一个条目,其中一列与另一列是唯一的。我想按如下方式播种我的数据库。例子:“步骤”表中有12个步骤。每个步骤应该有5个类别,每个类别都存储在“step_categories”表中。这些类别中的每一个都被分配了一个唯一的订单号1到5,每个“step_id”都是唯一的。请在此处查看此图片以了解数据库的外观示例:https://imgur.com/a/XYA5yyn我必须手动为上面的图像示例在数据库中创建条目。我不想每次都手动生成这

php - Zend Framework 2 - 在 Module.php 中用工厂替换闭包

我正在使用ZendFramework2开发一个系统,并在application.config.php中打开keyconfig_cache_enabled闭包收到错误:Fatalerror:Calltoundefinedmethodset_stateClosure::__()in/home/user/www/myProject.com/data/cache/module-config-cache.app_config.phponline185.更好地搜索我发现不建议在Module.php中使用闭包,因为那是导致配置缓存中出现此错误的原因,考虑到这一点我读了一些建议将闭包替换为工厂。这就是

php - 阻止绕过工厂直接创建类的可能性

在我们的MVC系统中所有模型的基类中,我创建了一个工厂方法BaseCLass::getNew(),它在通过SomeChildClass::getNew()调用时返回所请求子类的一个实例。现在,我正在寻找一种方法来强制程序员使用这个工厂。即,通常我希望直接创建任何类,如下所示:newSomeChildClass会在创建时抛出异常,只有工厂创建的类才能使用。有什么想法可以实现吗?我们的代码是用PHP编写的,但即使您使用不同的语言思考,您的想法也很有可能会有值(value)。编辑:我不能将我的构造函数设为私有(private),因为我继承的类中的框架构造函数是公共(public)的,而php

php - 工厂方法和私有(private)变量

我正在使用一个工厂类来创建另一个类的实例,比如Product类。如何在工厂类的Product类中设置私有(private)变量?我应该这样做吗?我打算做的是公开setter方法,然后在完成后卡住或锁定实例。但我觉得这是错误的做事方式。你会如何处理这样的问题?编辑:是的,我想使用@derekerdmann的不可变对象(immutable对象)方法。但我可能应该先提供更多信息。我正在用php为类似HTML的语言编写一个解析器,这样您就可以获得节点,而节点又可以包含其他节点。所以工厂是一个生成节点层次结构的解析器。如果你好奇这里是代码http://http://bazaar.launchpa

php - Laravel 模型工厂和 Eloquent;设定日期

所以我的应用程序中有一个App\Post模型,定义如下:namespaceApp;classPostextendsModel{useSoftDeletes;protected$dates=['created_at','updated_at','published_at','deleted_at'];//etc...}我创建了一个模型工厂,这是Laravel5.1的一个不错的新功能,用于定义Post的蓝图,如下所示:$factory->define('App\Post',function($faker){return['title'=>$faker->sentence,'content'

PHP 工厂方法

我正在阅读工厂方法。有人可以解释为什么建议将工厂方法放在单独的工厂类中吗?我从这里提取示例:http://www.devshed.com/c/a/PHP/Design-Patterns-in-PHP-Factory-Method-and-Abstract-Factory/classETF{var$data;function__construct($data){$this->data=$data;}functionprocess(){}functiongetResult(){}}classVirtualCheckextendsETF{}classWireTransferextendsET

php - 工厂中的依赖注入(inject)

我是DI的新手,但我真的很想尝试使用它。有些事情我不明白。这是一个简单的工厂伪代码,我经常使用。classPageFactory{publicfunction__construct(/*dependencylist*/){...//savereferencetothedependencies}publicfunctioncreatePage($pagename){switch($pagename){caseHomePage::name:returnnewHomePage(/*dependencylist*/);caseContactPage::name:returnnewContact

java - 使用实例工厂方法动态创建原型(prototype)bean

我有一种情况,我想通过工厂对象动态创建一个对象,但该对象需要通过spring上下文创建,以允许依赖项的Autowiring。我知道有很多其他方法可以解决这个问题-例如使用服务定位器模式-但如果可能的话我想这样做。假设我有两个对象:classOuterObject{ListinnerObjs;...}classInnerObjectimplementsInnerObjectInterface{@AutowiredSomeDependencysomeDependency;...}我想创建一个工厂来做一些事情:classOuterObjectFactory{privateinnerObjec

具有通用静态工厂的 Java 泛型益智游戏

我最近开始为一个项目编写通用对象映射器,但遇到了一些我不太了解的问题。鉴于以下情况:publicclassG{publicG(Classc){}publicvoidm(Xx){}publicstaticGcreate(Classc){returnnewG(c);}publicstaticvoidmain(String[]args){Objecto="";//irrelevant!Gt=create(o.getClass());t.m(o);}}我得到以下编译错误:m(capture#402of?)inGcannotbeappliedto(java.lang.Object)我似乎无法找到