草庐IT

domain-driven-design

全部标签

php - 您将如何前往 Zend Framework 项目中的购物车 "design"?

我很了解ZF,也了解一点Magento,但我是电子商务的新手,我确信在设计购物车模型时可以遵循最佳实践。如何去设计一个购物车?我想到了两个模型,Model_Cart和Model_Cart_Item与Zend_Session结合使用以将购物车存储在session中。你有什么反馈?你会怎么做?关于编写购物车系统,我应该知道些什么?请注意,我需要一个简单的系统,我什至不需要处理数量 最佳答案 如果你的模型很容易序列化,你可以简单地将它们添加到session数据中,例如//storage$cartNamespace=newZend_Sess

php - 将 www.domain.com/example.com 重定向到 example.com

很多年前我读到有一个简单的php脚本可以将您的网站重定向到http://example.com/google.com到google.com它适用于正斜杠右侧的任何域。我忘记了这个脚本是什么或在哪里可以找到它 最佳答案 如果您在文档根目录中创建一个htaccess文件,并添加:RewriteEngineOnRewriteRule^/?([a-z0-9-.]+)$http://$1/[L,R] 关于php-将www.domain.com/example.com重定向到example.com,

php - 实现规范模式

尝试使用规范模式并遇到了让它在不同实现中工作的问题(例如,在内存、orm等中)。我的主要ORM是Doctrine,这意味着我的第一选择是让规范在ArrayCollections(用于InMemory实现)和ORM上工作时使用Criterias。不幸的是,它们在可以运行的查询种类方面相当有限(无法执行连接)。举个例子,假设我有一个UserHasBoughtProduct规范,它在构造函数中指定了一个产品ID。该规范非常简单,可以在天真的级别编写。publicfunctionisSpecifiedBy(User$user){foreach($user->getProducts()as$pr

php - .htaccess 重写规则 : two domains using same server and directory

作为背景知识,我们有两个域:mydomain.commydomain.czmydomain.cz指向mydomain.com的服务器并使用相同的目录。我们在.htaccess(两个域共享)中有一个RewriteRule,如下所示:RewriteRule^([0-9]+)/?$project.php?id=$1[NC,L]#HandleprojectrequestsRewriteRule^([0-9]+)/?$project_cz.php?id=$1[NC,L]#Handleprojectrequests此RewriteRule在使用来自mydomain.com/project.php?

php - RAD Visual Web Application Creator/Builder/Designer for PHP

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。4年前关闭。Improvethisquestion我想看看你们中是否有人知道(免费和开源将是理想的)工具/应用程序,它可以帮助非常快速地构建一个phpweb应用程序,而无需在编写代码上投入太多时间,更喜欢拖放/点击工作-用于逻辑设计的流程设计器(请参阅下面的Outsystems中的敏捷)。另外,业务逻辑的可视化设计器很棒,因为它可以帮助开发人员更好地可视化逻辑。有很多GUI构建器、表单构建器,但我正在为整个Web应用程序开发过程寻找一个

php - 这是在 PHP 中实现 "Design by contract"模式的正确方法吗?

我发现了“按契约(Contract)设计”模式以及如何在PHP中实现。我找不到如何在PHP中执行此操作的真实示例。第一个问题是我的做法是否正确?第二个是为什么不接受断言回调?用于可重用断言的静态类Asserts:classAsserts{publicstaticfunctionabsentOrNotNumeric($value){return!isset($value)?true:is_numeric($value);}}用法:assert_options(ASSERT_ACTIVE,true);assert_options(ASSERT_BAIL,true);assert_optio

php - 什么是 MediaWiki 中 AuthPlugin 上下文中的 "domain"?

我在写我自己的AuthPlugin对于MediaWiki,并引用thedoc和thecode官方提供。域有几个函数:AuthPlugin::domainList()//Getalistofdomains(inHTMLFormoptionsformat)used.AuthPlugin::getDomain()//Gettheuser'sdomain.AuthPlugin::setDomain($domain)//Setthedomainthispluginissupposedtousewhenauthenticating.但是,我不明白什么是域,它应该是什么?它是AuthPlugin扩展

php - 领域驱动设计和 ORM 限制

我看到的大多数DDD示例都是用Java编写的,并且绝大多数使用Hibernate来持久化和获取实体。我真的对两者都没有任何经验,我假设Hibernate是一个足以解决依赖关系、处理值对象等的工具。我选择的ORM是Doctrine2,据我所知,这是PHP目前拥有的最好的工具,但我认为它不足以支持DDD原则。这是领域层的一个例子:/***Simplevalueobject*/classProductId{private$value;function__construct($value){$this->value=$value;}publicfunctionvalue(){return$th

php - DDD - 实体创建和验证责任

最近几天对DDD(领域驱动设计)很感兴趣,但是搞不清楚实体的创建者和验证者的职责。我将打破这个问题以涵盖不同的场景。常规实体(可能带有值对象)。作为一个例子,让我们以一个由电子邮件标识的用户为例。我有一个UserFactory,它接收一组数据(可能来自POST表单),并向我返回一个新的UserEntity。工厂是否应该验证数据的完整性(例如:作为电子邮件给出的字符串是真实的电子邮件,密码字段1和字段2中的密码匹配等)?工厂是否应该验证不存在这样的用户(我们不想用同一封电子邮件注册两个用户)?如果是,它应该自己完成还是使用UserRepository?聚合实体。假设我们有一个Post实体

php - 如何在持久化之前处理域实体验证?

一个实体(比方说一个UserEntity)对其属性有严格的规则,它可以存在于2种状态-持久化(这意味着它有一个id)和预持久化(这意味着它还没有id)。根据thisquestionabouthowtohandlerequiredproperties的回答,一个“真正的”UserEntity应该只用传递给它的构造函数的id创建。但是,当我需要根据浏览器发送的信息创建一个新的UserEntity时,我需要能够在保存到数据库之前验证信息。在过去,我会简单地创建一个空白的UserEntity(没有id),设置新属性,然后验证它-但是,在这种新的、更安全的实体思考方式中,我不应该创建一个没有id