Recent blog posts from the community:

Tinker-like REPL for Mezzio

March 31, 2021 -

Today in the Laminas Slack, somebody asked if there was an equivalent to Laravel’s Tinker REPL. The short answer is "no", but I had a suggestion for them. PHP REPL The first part of my answer to the question was suggesting they use the PHP REPL. PHP has had a REPL since version 5.1.0, which you can invoke using php -a. Once you’ve started, you can do anything you’d normally do in PHP, including such things as including files, declaring namespaces, declaring classes, etc.

Improving Organizations - Many readings, videos for resources

March 30, 2021 -

Many readings, videos and thoughts for resources to Improve Organizations I’ve read many books and articles and watched videos over the last 14 years that informed and shaped my thinking. I’ve put these into the order that I came across them and added some comments. Note: I moved this section out of my 2020 article “Time is valuable, Project to Product, reducing waste and Software Development Process“ Agile and XP Programming Thank you to my University of Minnesota, Morris professors for teaching this approach and unit testing!

Laminas CI Automation

March 12, 2021 -

The Laminas Project has close to 200 repositories between the main project, Laminas API Tools, and Mezzio. It’s a lot to maintain, and keeping on top of incoming patches can be a gargantuan task, much less creating releases. That’s why this past year, we’ve spent a bunch of time on streamlining our processes; we want to be able to review, merge, and release changes quickly and confidently. To that end, we have developed a number of GitHub Actions to make these processes as easy as possible for our maintainers.

Properties in C++20

March 4, 2021 -

C++ doesn’t support getter/setter style properties. But you can get pretty darn close with templates or macros. #include <iostream> #include "properties.h" using namespace std; class User { private: int mId; int mWeight; int mPurse; int mBank; public: // Non-auto property only supporting get (runtime check) Property<int> Id{{ .get = mId }}; Property<int> Purse {{ .set = mPurse }}; Property<int> Bank {{ .set = mBank }}; Property<int> Wealth {{ .get = [this]() { return mPurse + mBank; }}}; // Auto-properties Property<string> FirstName; Property<string> LastName; // Non-auto property Property<string> FullName {{ .

Getting local domain claims through ADFS 2.0

February 26, 2021 -

Getting local domain claims through ADFS 2.0 I don’t have much time, so this is a short post. I had to setup ADFS 2.0 to pass claims. Hopefully, someone will figure out how to update that version someday :-). We found that the built in edit claims works well for global domains, but they weren’t coming through for local domains. I found one post on the internet and it had a great comment at the bottom.

Latest jobs posted:

Submit a job listing