{"id":1128,"date":"2026-04-06T23:41:00","date_gmt":"2026-04-06T23:41:00","guid":{"rendered":"https:\/\/danielribes.com\/blog\/?p=1128"},"modified":"2026-04-06T23:46:52","modified_gmt":"2026-04-06T23:46:52","slug":"domain-driven-design-in-php-2a-edicion","status":"publish","type":"post","link":"https:\/\/danielribes.com\/blog\/domain-driven-design-in-php-2a-edicion\/","title":{"rendered":"Domain-Driven Design in PHP &#8211; 2a edici\u00f3n"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Pues aqu\u00ed estaba yo liado con una aplicaci\u00f3n (proyecto personal) con Symfony 8 y me llega un correo de Leanpub con el mensaje:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">We&#8217;re excited to announce that the Second Edition of Domain-Driven Design in PHP is now available \u2014 and as an existing reader, you get it as a free update.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Es curioso como a veces algunas cosas tienden a coincidir. Llevo unos d\u00edas de vuelta a Symfony, poni\u00e9ndome al d\u00eda de las novedades de la versi\u00f3n 8, revisando tambi\u00e9n temas de testing en general, arquitectura\u2026 actualizando algunos proyectos personales para ir rodando todos estos temas y justo se publica una nueva versi\u00f3n del <strong>Domain-Driven Design in PHP<\/strong> de: <em>Carlos Buenosvinos, Christian Soronellas <\/em>y<em> Keyvan Akbary.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Me hice con la primera edici\u00f3n de este libro justo a los pocos meses de su publicaci\u00f3n, admito que esa primera edici\u00f3n no llegu\u00e9 a terminarla porque en esa \u00e9poca mis intereses (y por lo tanto el tiempo disponible para dedicarle) se fueron por otro lado, luego empec\u00e9 a trabajar mucho con Moodle\/Totara (que de DDD nada), meterme en temas de infraestructura y ya no volv\u00ed a \u00e9l.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero mi recuerdo de los primeros cap\u00edtulos que le\u00ed en ese momento ya era de uno de esos libros que da gusto leer no solo por lo que trata sino sobre todo por el nivel t\u00e9cnico y de conocimiento que transmite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Domain-Driven Design<\/strong> resulta especialmente interesante en escenarios donde la l\u00f3gica de negocio tiende a ser compleja. No es para un CRUD simple, ah\u00ed creo que ser\u00eda over-engineering. Pero cuando el sistema tiene reglas de negocio ricas, crece con el tiempo o se trabaja con equipos donde negocio y desarrollo necesitan hablar el mismo idioma, DDD aporta una estructura que hace que el c\u00f3digo refleje el problema real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo interesante es que PHP moderno facilita mucho m\u00e1s su implementaci\u00f3n que cuando sali\u00f3 la primera edici\u00f3n. Los <em>readonly<\/em> properties, los <em>enums,<\/em> el <em>constructor property promotion<\/em> y los<em> tipos estrictos<\/em> hacen que modelar Value Objects y Entidades sea limpio y expresivo, sin librer\u00edas extra, sin magia. El lenguaje ya te acompa\u00f1a.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es exactamente lo que mencionan los autores en el pr\u00f3logo de esta segunda edici\u00f3n, y para m\u00ed una de las razones por las que leer ahora este libro tiene m\u00e1s sentido que nunca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Promete ser una lectura interesante para mis pr\u00f3ximos d\u00edas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Domain-Driven Design in PHP &#8211; 2n Edition<\/strong><br><em>Discover DDD, Architectural Styles, Tactical Design Implementations, and Bounded Context Integration with PHP 8.5 examples<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>De:<\/strong><br><em>Carlos Buenosvinos<br>Christian Soronellas<br>Keyvan Akbary<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Leanpub: <a href=\"https:\/\/leanpub.com\/ddd-in-php\">https:\/\/leanpub.com\/ddd-in-php<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pues aqu\u00ed estaba yo liado con una aplicaci\u00f3n (proyecto personal) con Symfony 8 y me llega un correo de Leanpub con el mensaje: We&#8217;re excited to announce that the Second Edition of Domain-Driven Design in PHP is now available \u2014 and as an existing reader, you get it as a free update. Es curioso como [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1131,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[117],"tags":[18],"class_list":["post-1128","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-libros","tag-php"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"_links":{"self":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/1128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/comments?post=1128"}],"version-history":[{"count":6,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/1128\/revisions"}],"predecessor-version":[{"id":1135,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/posts\/1128\/revisions\/1135"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/media\/1131"}],"wp:attachment":[{"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/media?parent=1128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/categories?post=1128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/danielribes.com\/blog\/wp-json\/wp\/v2\/tags?post=1128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}