BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Meetup//Meetup Calendar 1.0//EN CALSCALE:GREGORIAN METHOD:PUBLISH NAME:PHPDX X-WR-CALNAME:PHPDX BEGIN:VTIMEZONE TZID:America/Los_Angeles TZURL:http://tzurl.org/zoneinfo-outlook/America/Los_Angeles X-LIC-LOCATION:America/Los_Angeles BEGIN:DAYLIGHT TZOFFSETFROM:-0800 TZOFFSETTO:-0700 TZNAME:PDT DTSTART:19700308T020000 RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU END:DAYLIGHT BEGIN:STANDARD TZOFFSETFROM:-0700 TZOFFSETTO:-0800 TZNAME:PST DTSTART:19701101T020000 RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU END:STANDARD END:VTIMEZONE BEGIN:VEVENT UID:event_312508476@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260108T163000 DTEND;TZID=America/Los_Angeles:20260108T183000 SUMMARY:PHPdx IN PERSON with MergePHP: Mastering Agentic PHP Development w ith MCP DESCRIPTION:PHPDX\n2026 join us IN PERSON at the new time\, 5:00pm Pacific . You can still [join us ONLINE](https://www.youtube.com/@MergePHP/streams )\n\n**Agenda**:\n4:30 - Welcome mingle and setup\n5:00 - Presentation\n6: 00 - Head to Ava Roasteria for food and/or drinks.\n\n**Presentation**\nAI coding assistants are powerful\, but they're only as good as the context they have access to. Without real-time documentation\, even the best model s can hallucinate APIs or miss modern best practices. Enter the Model Cont ext Protocol (MCP)\, an open standard bridging AI agents with live\, autho ritative data. We'll cover MCP's core concepts\, then build a functional s erver using the Official PHP SDK that connects directly to [PHP.net](http: //php.net/) documentation. We'll also implement Composer package search fo r intelligent dependency discovery. Join me to see how this Master Control Program...unlike the TRON original... is actually here to help.​\n\nPre sented by Hunter Skrasek\n\n**Join us live on YouTube at:**\n[https://www. youtube.com/@MergePHP/streams](https://www.youtube.com/@MergePHP/streams) URL;VALUE=URI:https://www.meetup.com/pdx-php/events/312508476/ STATUS:CONFIRMED CREATED:20251220T005714Z LAST-MODIFIED:20251220T005714Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_312774110@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260212T163000 DTEND;TZID=America/Los_Angeles:20260212T183000 SUMMARY:PHPdx IN PERSON with MergePHP: Domain Driven PHP DESCRIPTION:PHPDX\n2026 join us IN PERSON at the new time\, 5:00pm Pacific . You can still [join us ONLINE](https://www.youtube.com/@MergePHP/streams )\n\n***Stay tuned for location***\n\n**Agenda**:\n4:30 - Welcome mingle a nd setup\n5:00 - Presentation\n\n**Presentation**\nIn the modern PHP ecosy stem\, we often let frameworks dictate our application's architecture. We start with composer create-project and immediately begin molding our busin ess logic to fit the constraints of a specific "Way." But what happens whe n the framework becomes a hurdle rather than a helper?\n\nThis session exp lores the Art of Domain-Driven Design (DDD) by stripping away the safety n et of frameworks. We will start from a "naked" PHP environment\, demonstra ting how to build a robust\, testable\, and scalable application using onl y pure PHP and the principles of DDD. By focusing on Entities\, Value Obje cts\, Aggregates\, and Domain Services without the noise of an ORM or a he avy container\, you will learn to see your business logic as the primary c itizen of your codebase.\n\nOnce we have established the "Pure Domain" fou ndation\, we will pivot to the pragmatic reality of modern development: In tegration. We will discuss how to take these framework-agnostic principles and safely "plug" them into popular frameworks like Laravel or Symfony. Y ou’ll learn how to treat the framework as a replaceable infrastructure d etail—leveraging its power for routing and delivery while keeping your c ore logic untainted and portable.\n\nPresented by Chris Miller\n\n**Join u s live on YouTube at:**\n[https://www.youtube.com/@MergePHP/streams](https ://www.youtube.com/@MergePHP/streams)\n\\-\\-\\-\nWant to present at Merge PHP? Sign up to speak with the link below. Technical talks are appreciated ! Make a note if it's a full-length or shorter lightning talk.\nMergePHP i s:\n\n* AtlantaPHP\n* AustinPHP\n* AZ PHP\n* BostonPHP\n* Houston\n* Kansa s City PHP\n* PDX (Portland\, OR)\n* San Diego PHP\n* SeattlePHP\n* UtahPH P\n* Vegas PHP\n* Vancouver PHP\n\nSubscribe to our Channel: [https://www. youtube.com/c/MergePHP](https://www.youtube.com/c/MergePHP)\nFollow us on Mastodon:[ https://phpc.social/@merge](https://phpc.social/@merge)\nSpeake r Signups: [https://mphp.io/speakers](https://mphp.io/speakers)\nSuggest S peakers: [https://mphp.io/suggest](https://mphp.io/suggest) URL;VALUE=URI:https://www.meetup.com/pdx-php/events/312774110/ STATUS:CONFIRMED CREATED:20260107T211422Z LAST-MODIFIED:20260107T211422Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjcfbqb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260312T160000 DTEND;TZID=America/Los_Angeles:20260312T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjcfbqb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjcgbmb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260409T160000 DTEND;TZID=America/Los_Angeles:20260409T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjcgbmb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjchbsb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260514T160000 DTEND;TZID=America/Los_Angeles:20260514T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjchbsb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjcjbpb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260611T160000 DTEND;TZID=America/Los_Angeles:20260611T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjcjbpb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjckbmb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260709T160000 DTEND;TZID=America/Los_Angeles:20260709T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjckbmb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjclbrb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260813T160000 DTEND;TZID=America/Los_Angeles:20260813T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjclbrb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjcmbnb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20260910T160000 DTEND;TZID=America/Los_Angeles:20260910T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjcmbnb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT BEGIN:VEVENT UID:event_gnmxhtyjcnblb@meetup.com SEQUENCE:1 DTSTAMP:20260108T160055Z DTSTART;TZID=America/Los_Angeles:20261008T160000 DTEND;TZID=America/Los_Angeles:20261008T180000 SUMMARY:MergePHP DESCRIPTION:PHPDX\nMergePHP meets the second Thursday of every month at 16 :00 Pacific URL;VALUE=URI:https://www.meetup.com/pdx-php/events/gnmxhtyjcnblb/ STATUS:CONFIRMED CREATED:20231109T233447Z LAST-MODIFIED:20231109T233447Z CLASS:PUBLIC END:VEVENT X-ORIGINAL-URL:https://www.meetup.com/PDX-PHP/events/ical/ X-WR-CALNAME:PHPDX END:VCALENDAR