Scott Keck-Warren @scott.keck-warren.com · 14h#PHP86: Partial Function Applications, which allow us to write the following. The `?` is an argument placeholder, so `str_replace('Scott', 'Alice', ?)` builds a function with the first two arguments, and the pipe puts the value in '?' Video: youtu.be/U9Jrcg1Ns1k #PHP #PHPC #PHP86 #phparch 001
Scott Keck-Warren @scott.keck-warren.com · 16hPHP 8.6's clamp() has a built-in range check, so you can't mix up the min and max values. I've done that more than once, so I'm VERY happy about this one. #PHP #PHP86 #CodeQuality www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 29/09/2026#PHPC tip: PHP 8.3 added `json_validate()`, so you can stop decoding a payload just to find out whether it parses. It skips building the object graph, so a large webhook body costs you a parse instead of a parse plus the memory. #PHP #PHP83 #CleanCode 000
Scott Keck-Warren @scott.keck-warren.com · 29/09/2026The PHP ecosystem keeps taking PHP and stuffing it inside something else. bun-php is the latest one. What's your favorite embedded PHP project? www.phparch.com/podcast/community-c… #PHP #Bun #WebAssembly 000
Scott Keck-Warren @scott.keck-warren.com · 29/09/2026array_multisort() takes SORT_ASC/SORT_DESC as ints, so 42 gets right through. PHP 8.6 adds a SortDirection enum in the global namespace, and the RFC hints at wider adoption. #PHP #PHP86 #TypeSafety www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 28/09/2026If someone says "Claude said so" to another one of my questions, I'm moving to the woods and living off the land. #ai #aihate 000
Scott Keck-Warren @scott.keck-warren.com · 28/09/2026Go look at your team's oldest open pull request. How many days? Mine used to be embarrassing. It sat because four of us were tagged, and all four of us assumed somebody else had it. scott.keck-warren.com/blog/2026/mak… #CodeReview #DeveloperLife #PHP 000
Scott Keck-Warren @scott.keck-warren.com · 28/09/2026@StanislavKhromov wanted PHPStan from a TypeScript project without shipping a separate PHP runtime next to it. So he embedded all of PHP in Bun. www.phparch.com/podcast/community-c… #PHP #PHPStan #Bun 100
Scott Keck-Warren @scott.keck-warren.com · 28/09/2026In PHP 8.4, fulfilling an interface property meant redefining the whole property hook. PHP 8.6 lets a readonly property do it and keeps the class much tighter. Big win for value objects. #PHP #PHP86 #OOP www.phparch.com/2026/09/stop-writin… 020
Scott Keck-Warren @scott.keck-warren.com · 27/09/2026Bun is a JavaScript runtime. bun-php runs PHP on top of it through WebAssembly: the whole PHP engine is compiled into a portable blob. #PHP #WebAssembly #Bun 210
Scott Keck-Warren @scott.keck-warren.com · 27/09/2026When people say PHP isn't secure, I point them to how every release improves security a little bit. PHP 8.6 makes sessions secure by default (check your SSO and payment callbacks before upgrading). #PHP #PHP86 #AppSec www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 26/09/2026#Laravel tip most people skip: `sole()`. `sole()` throws `MultipleRecordsFoundException` for more than one match and `RecordsNotFoundException` for none. Collections have it too, so `$collection->sole(fn ($item) => $item->active)` behaves the same way in memory. #PHP #CleanCode 010
Scott Keck-Warren @scott.keck-warren.com · 26/09/2026When Laravel started, there was no path to a pile of money, so the work happened for other reasons. JavaScript arrived after VC was established, and the incentives followed. www.phparch.com/podcast/community-c… #PHP #Laravel 000
Scott Keck-Warren @scott.keck-warren.com · 26/09/2026PHP 8.6 adds a time duration class with helpers for math. It got a quick mention in my video, and I think it'll make a lot of our code easier to read. #PHP #PHP86 #CleanCode www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 25/09/2026Taylor Otwell worked on Laravel for years before earning much from it. The ecosystem and the hosting platforms came after. www.phparch.com/podcast/community-c… #PHP #Laravel #OpenSource 020
Scott Keck-Warren @scott.keck-warren.com · 25/09/2026@dseguy has a fun project to use all the new #php86 features in a script. This is my part. It was based on one of my favorite subjects (state machines), and I had to force a bunch of the new features. :-) github.com/dseguy/phpen... #phpc #programming #coding #techtokgithub.comAdded state-machine-checker script by warren5236 · Pull Request #3 · dseguy/phpenomenalThis is an example script I had for an unpublished article, and I upgraded it to use PHP 8.6 features (some were a real stretch), but it has been used to visualize interactions in state machines. I... 010
Scott Keck-Warren @scott.keck-warren.com · 25/09/2026#[\Override] landed for methods in PHP 8.3, and PHP 8.6 extends it to class constants. Rename the parent's constant, and PHP throws an error. #PHP #PHP86 #Refactoring www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 24/09/2026@longhornphp is one of my favorite #phpc #conferences (I'm paying out of pocket for my ticket, hotel, and airfare to go), and they need your help. Get the word out, please!!! longhornphp.com/2026-future-... #php #coding #austintxlonghornphp.comLonghorn PHPRicky 001
Scott Keck-Warren @scott.keck-warren.com · 24/09/2026PHP has been a server language for three decades. JavaScript is hitting the same problems now, and everyone is solving them their own way, with no standards landing. www.phparch.com/podcast/community-c… #PHP #JavaScript #Bun 020
Scott Keck-Warren @scott.keck-warren.com · 24/09/2026PHP 8.6 deprecates is_integer(), is_long(), is_double(), and doubleval(). I grepped my app and found about 150 of them, which was a fun surprise. What's your count? #PHP #PHP86 #TechnicalDebt www.phparch.com/2026/09/stop-writin… 000
Scott Keck-Warren @scott.keck-warren.com · 23/09/2026My video/article on what's new in #php86 is ready for you to watch/read. www.phparch.com/2026/09/stop... #phpc #php #coding #webdevphparch.comStop Writing PHP Like This (8.6 Fixes It) | PHP ArchitectThis is how PHP 8.6 lets you write a string transformation, with no closures and no temp variables. $name = 'Scott Keck-Warren'; $fixed = $name |> str_replace('Scott', 'Alice', ?) |> strtolower(...);… 000
Scott Keck-Warren @scott.keck-warren.com · 23/09/2026Tagging four reviewers on a PR is how it sits for three days. Everybody assumes somebody else has it. Code review is now the task I pick up whenever I finish something, and our PRs stopped aging. scott.keck-warren.com/blog/2026/mak… #PHP #CodeReviewscott.keck-warren.comMake Code Review Your Default Next Task | Scott Keck-WarrenA review-first team gets every PR seen by automation and a human. Here's how I made human review the default action, tracked by a PR count right in my status line. 010
Scott Keck-Warren @scott.keck-warren.com · 23/09/2026PHP hands you Laravel and a clear way to do everything. JavaScript sends you to a different vendor for every piece. @StanislavKhromov sees Bun trying to fix that. www.phparch.com/podcast/community-c… #PHP #Bun #Laravel 000
Scott Keck-Warren @scott.keck-warren.com · 22/09/2026#PHPC tip: I keep reaching for match(true) when an if/elseif ladder exists only to pick a value. Every arm is a boolean condition, and the first true wins. It uses strict comparison, and it throws an error when nothing matches unless you give it a default. #CleanCode 000
Scott Keck-Warren @scott.keck-warren.com · 22/09/2026bun-php supports Composer out of the box, and @StanislavKhromov has a WordPress install running server-side on top of it with MySQL working. www.phparch.com/podcast/community-c… #PHP #WordPress #Bun 000
Scott Keck-Warren @scott.keck-warren.com · 21/09/2026Has a stakeholder ever turned your estimate into a hard deadline? You say "about 8 points," and somewhere between your desk and the client that turns into "done Thursday." How do you keep an estimate from becoming a promise on your team? #Agile #SoftwareDevelopment #DeveloperLife 100
Scott Keck-Warren @scott.keck-warren.com · 21/09/2026Someone compiled the entirety of PHP into WebAssembly. That blob drops into any JavaScript runtime and still does what PHP does anywhere else. www.phparch.com/podcast/community-c… #PHP #WebAssembly #Bun 000
Scott Keck-Warren @scott.keck-warren.com · 20/09/2026You gave someone an estimate, and they wrote it on the calendar as a commitment. The date slipped, and you felt like you'd lied. You didn't. An estimate is your best guess, and it's still a guess after someone turns it into a promise. #CareerDev #Agile #SoftwareDevelopment 001
Scott Keck-Warren @scott.keck-warren.com · 20/09/2026bun-php is mod_php with Bun standing where Apache used to. The runtime owns the request lifecycle; PHP hooks in as an embed. www.phparch.com/podcast/community-c… #PHP #Bun #WebAssembly 100
Scott Keck-Warren @scott.keck-warren.com · 19/09/2026#Laravel tip: firstOrCreate() and updateOrCreate() both save you from the "check if it exists, then insert" dance. firstOrCreate() finds the first row and creates it. updateOrCreate() runs the same lookup, then writes the second array over the match or creates it. 000
Scott Keck-Warren @scott.keck-warren.com · 19/09/2026Someone joked that the next version of Bun would run PHP. @StanislavKhromov built it anyway, and bun-php exists now. www.phparch.com/podcast/community-c… #PHP #SoftwareEngineering #WebDevelopment #PHPDeveloper #Bun #WebAssembly #JavaScript 010
Scott Keck-Warren @scott.keck-warren.com · 18/09/2026"Sometimes that silence is your sounding alert." Nia Luckey on why a quiet top performer is a signal, not a non-event. #Leadership #TeamDynamics www.phparch.com/podcast/community-c… 000
Scott Keck-Warren @scott.keck-warren.com · 17/09/2026Myth: "1 story point is about 4 hours, so an 8-point sprint is a 32-hour week." That little multiplication turn estimates into broken promises. Points measure effort, which is a property of the task. Hours belong to the person, and they swing with experience. #PHP #Agile #Scrum 010
Scott Keck-Warren @scott.keck-warren.com · 17/09/2026"You can only innovate so much without guardrails." Nia Luckey on innovation paralysis, and why Trust Hacked isn't about pointing fingers at leadership. #Leadership #Innovation www.phparch.com/podcast/community-c… 000
Scott Keck-Warren @scott.keck-warren.com · 16/09/2026A PM took our 8-point sprint, multiplied it by 4, and promised the client Thursday! Effort belongs to the task, time belongs to the person. A pagination feature has the same complexity no matter who builds it, but the hours swing with experience. #Agile #DeveloperProductivity 000
Scott Keck-Warren @scott.keck-warren.com · 16/09/2026You can't fix the persona; you can only build trust with it. That's Nia Luckey's reframe for the coworker dynamic you can't control. #Leadership #TeamDynamics www.phparch.com/podcast/community-c… 000
Scott Keck-Warren @scott.keck-warren.com · 15/09/2026PHPUnit tip: quit copy-pasting a test to cover more inputs. A data provider runs one test against every case you feed it. Add an edge case? Add a row. #PHP #PHPUnit #Testing 010
Scott Keck-Warren @scott.keck-warren.com · 15/09/2026"My whole message is it really starts with you." Nia Luckey on why trust repair is individual work before it's an org chart problem. #Leadership #TechLeadership www.phparch.com/podcast/community-c… 120
Scott Keck-Warren @scott.keck-warren.com · 14/09/2026Question: Have you shipped something real (not a toy script) in a language you don't actually know? I built a Python CLI with an LLM writing most of the code, and it works. The code generated without much trouble. #PHP #AI #DeveloperProductivity 100
Scott Keck-Warren @scott.keck-warren.com · 14/09/2026Nia Luckey's book Trust Hacked sits in the security, leadership, and audit sections at once, and it comes with calibration tools to measure where trust is breaking down on your team. #Leadership #CyberSecurity www.phparch.com/podcast/community-c… 000
Scott Keck-Warren @scott.keck-warren.com · 13/09/2026For years I measured myself by how much syntax I'd memorized. Then a model wrote me a working tool in a language I've never touched, and that scorecard stopped meaning anything. What's left is knowing whether the output is right. #CareerDev #AI #PHP 000
Scott Keck-Warren @scott.keck-warren.com · 13/09/2026"You're not going to rise to the level of your credentials. You're going to default to the level of your training." Nia Luckey on what actually happens in a crisis. #Leadership #IncidentResponse www.phparch.com/podcast/community-c… 010
Scott Keck-Warren @scott.keck-warren.com · 12/09/2026PHPUnit tip: default to `assertSame()` over `assertEquals()`. `assertEquals` uses loose comparison, so '1', 1, 1.0, and true all pass against 1. `assertSame` checks the type too (like ===), so a function that returns a string instead of an int fails. #PHP #PHPUnit #Testing 010
Scott Keck-Warren @scott.keck-warren.com · 12/09/2026Cassandra syndrome: you see the risk coming, and nobody listens. Nia Luckey put a name on a pattern most tech teams already live with. #Leadership #TechLeadership www.phparch.com/podcast/community-c… 000
Scott Keck-Warren @scott.keck-warren.com · 11/09/2026"We tend to get lost in the technical components and forget the human component." Nia Luckey on why security leadership needs a trust protocol, not just more tooling. #CyberSecurity #Leadership www.phparch.com/podcast/community-c… 001
Scott Keck-Warren @scott.keck-warren.com · 10/09/2026Myth: "With AI, the language you pick no longer matters." I found out it's half true. I built a working CLI in Python, a language I don't know, and generating the code was a non-issue. Then packaging, project layout, and ecosystem stalled me. #PHP #AI #DeveloperProductivity 010
Scott Keck-Warren @scott.keck-warren.com · 10/09/2026Daniel Scherzer is PHP 8.6's release manager and is teaching a Rust extension-building workshop at Longhorn PHP. Dave Stokes covers JSON data types on the DB side. #PHP #LonghornPHP www.phparch.com/podcast/community-c… 010
Scott Keck-Warren @scott.keck-warren.com · 09/09/2026Everyone says #AI makes the language you pick irrelevant. So I built a real CLI tool in Python to find out. Generating the code was a non-issue. What tripped me up was everything around it: packaging, project layout, and the #PHP ecosystem conventions. #DeveloperProductivity 020
Scott Keck-Warren @scott.keck-warren.com · 09/09/2026Longhorn PHP 2026 keynotes: PHP Foundation's Elizabeth Barron's "PHP is People: The Foundation, the Community, and You"; Eric Mann closes on "The Commit You Can't Take Back". #PHP #LonghornPHP www.phparch.com/podcast/community-c… 010
Scott Keck-Warren @scott.keck-warren.com · 08/09/2026PHP 8.4 tip: stop writing foreach-and-break to find one element. `array_find()` returns the first item matching a callback; `array_any()` and `array_all()` answer the yes/no questions. Clearer intent, less boilerplate. New in 8.4. #PHP #PHPDev #PHP84 000