2018年4月

[译]架构风格 - 《Domain-Driven Design in PHP》第2章

本篇博文由本博客(http://www.veitor.net)经原文翻译,转载请注明出处。

为了能够构建一个复杂的应用程序,其中一个关键点就是需要有一个适合该程序的架构设计。领域驱动设计的一个优势就是它不受任何架构风格的约束。相反,我们可以自由的去为核心领域内的每一个限界上下文选择最合适的架构,为每一个领域问题提供多种架构选择。

- 阅读剩余部分 -

[译]开始使用领域驱动设计 - 《Domain-Driven Design in PHP》第1章

本篇博文由本博客(http://www.veitor.net)经原文翻译,转载请注明出处。

有什么大惊小怪的呢?如果你已经阅读了Vaughn Vernon和Eric Evans关于这个话题的书籍,那么你可能对我们即将要谈论的会很熟悉,因为我们大量借鉴了他们书中的定义和解释。 领域驱动设计(DDD)是帮助我们成功理解和构建软件模型设计的一种方法。 它为我们提供了策略(strategic)和战术(tactical)建模工具,以帮助设计符合我们业务目标的高质量软件。

- 阅读剩余部分 -

记一次Safari中无法跨域设置cookie的坑

问题重现步骤:
有两个不同域名的页面a.com/a.php和b.com/a.php两个域名,其中b.com/a.php会在其b.com下设置cookie,a.com/a.php页面中通过iframescript src等方式嵌入b.com/a.php页面。保持b.com下的cookie为空,正常chrome等浏览器访问a.com/a.php时,嵌入的b.com/a.php可以正常对b.com域名下设置cookie,而safari中设置不了。

一开始以为是自己在b.com页面中设置cookie方式有问题,对cookie的name、value、expire、path、secure、httponly等都检查了好多次都没找出原因。并且当时会出现偶尔可以设置偶尔不可以设置的现象,后来逐一条件排查下来是要在b.com域名下cookie清空的条件下会产生这问题,如果b.com下有任意的一个或多个cookie项,那么safari就能正常写进去。

我主要是在iphone上进行的测试,后经查也有人反馈在pc上的safari也有这问题,那最后基本可以定位这问题的原因了。
试过通过在b.com下设置各种cors header头,加各种P3P header均没有效果。
这估计还是因为safari的cookie策略导致的。。最后。。只能根据问题现象,使用很屎的中转办法了,提前在b.com下设置任意一个cookie来确保该域名下至少有cookie,后续才能设置成功。

查找过的相关文章:
https://blog.csdn.net/zhx19920405/article/details/51417250
https://stackoverflow.com/questions/32713992/safari-does-not-allowed-cross-domain-cookies-in-iframe