Last week I had one of those “quick hack that works for years” finally reach its half life, with the result being a few hours with a blank homepage. Today’s article is going to be a pilgrimage through the various parts of WordPress I had to touch to fix this The Right way. “The Right Way” is, of course, a [...]
astorm
I need a quick “non-quickies” post to unjam a page generation issue with this website so why not use it as an excuse to talk about how I create this website? I have a WordPress install that runs locally on my computer. Once a day I use a command line script to generate a full static site from this system and then rsync those [...]
astorm
This entry is part 5 of 5 in the series Shopware's Development Environment. Earlier posts include Composer Path Repositories, Shopware's psh.phar Command Line Tool, Shopware: Code that's theirs, Code that's yours, and Composer vs. History. This is the most recent post in the series. I didn’t intend to write a four article series on [...]
astorm
This entry is part 1 of 1 in the series Async PHP. This is the first post in the series. One luxury afforded to the average PHP programmer is never having to worry about threads or asynchronous programming. Unlike other dynamic languages of its era (ruby, python, etc.), PHP has no built-in concept of a thread. PHP also came along early [...]
astorm
Coming up through the dynamic languages and having my “typed” language be C, I mostly missed out on the whole “generics” thing. Cue the late 2010s and generics are a thing in TypeScript and every so often there’s a push to get generics into PHP. A few years back I figured it was time to learn what was going [...]
astorm
This entry is part 4 of 4 in the series Magento 2 and Composer. Earlier posts include Magento 2: Composer, Marketplace, and Satis, Magento 2: Composer Plugins, and Magento 2: Composer and Components. This is the most recent post in the series. A few weeks ago I set out to put Magento composer package support into pestle, and then I got [...]
astorm
This entry is part 1 of 7 in the series Sylius for Magento and PHP Developers. Later posts include Symfony's Service Container, Symfony: Autowiring Services, A Brief Look at Every Symfony Service Configuration, Symfony Routes and Stand Alone Controllers, Symfony Routing Configuration Keys, and Basic and Advanced Sylius Routing. I [...]
astorm
Generators landed back in PHP 5.5 and I’ve mostly ignored them. I had a vague understanding that they were a feature that allowed you to build iterators that didn’t require loading up a huge data structure with all your information. This also seemed to be the gist of most online generator tutorials. So, in the practical world [...]
astorm
This entry is part 12 of 12 in the series Modern PHP. Earlier posts include Bypassing a Slow Composer Repository, Slow Composer Followup, Getting Started with PHP Composer and Magento, PHP: The Right Way; A Review, PSR and Code Style Guidelines, Sellvana: Developer's Alpha Review, PHP Primer: Type Hints, PHP Primer: Namespaces, PHP [...]
astorm
This entry is part 11 of 12 in the series Modern PHP. Earlier posts include Bypassing a Slow Composer Repository, Slow Composer Followup, Getting Started with PHP Composer and Magento, PHP: The Right Way; A Review, PSR and Code Style Guidelines, Sellvana: Developer's Alpha Review, PHP Primer: Type Hints, PHP Primer: Namespaces, PHP [...]
astorm
In 1995, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides — via their publisher Addison-Wesley — released a book titled Design Patterns. This book describes 23 different approaches for
astorm
On a "what they do level", interfaces are pretty simple. Consider the following PHP class
astorm
Today we're going to give you a quick overview of PHP type hints. While the debate over how strongly PHP should be typed rages on, many PHP frameworks have started using type hints as metadata for implementing features like dependency injection. Whatever you think
astorm
After spending a bit of time poking around a Magento 1 codebase (I still do that -- say hi if you need my help), I was reminded that Magento 2 is going to be some developer's first major experience with PHP namespaces. Beyond Magento
astorm
Laravel's error handling is one of its most noticeable developer facing features. Like many modern PHP frameworks, Laravel ships with its error reporting set to E_ALL, and strives for Notice free PHP code. Additionally, Laravel includes the Whoops framework, which creates readable stack traces
astorm
If you're a long time reader, you're probably aware of my article on Magento's many 404 pages. It's been one of the more useful articles I've written here — I own the Google results for the phrase "Which 404 page" in Magento land.
astorm
If you haven't heard, PHP Composer is a package management system for PHP. It's closest thing the PHP community has to something like Ruby Gems. The goal of package management systems is to make it super simple to add a new library and/or third
astorm
Last week's Bypassing a slow Composer Repository post shook a few interesting things from the internet underbrush.
astorm
This week I had a long standing to do item I was looking forward to tackling
astorm
Two weeks ago, a new online retail company announced itself to the world. Sellvana promises that
astorm