Linux ACLs
Feb 26, 2016
When basic unix permissions can't express the access requirements you need to impose on a filesystem, you need to turn to the more powerful Access Control List (ACL). Enabled by default on most filesystems in most Linux distributions these days, ACLs provide a rich toolset for handling complex permissions. While they may be intimidating at first, they are actually quite easy to understand.
Continue reading ›
Introducing Auth, and updates to DI and HttpRouting
Oct 21, 2015
Auth is an extensible authentication library for PHP. It offers a decoupled approach to authentication with a request/handler based architecture. It's still in alpha with version 0.1 just being made available.
Other PHP packages that have been updated are:
- DI version 0.3, now supports bundled service definitions
- HttpRouting version 0.4.1
- Heavily refactored to represent routes as objects and provide extensible route matching
- Dispatcher now provides helper methods for adding routes for specific HTTP methods (
get()
, post()
, put()
, etc.)
Introducing DI, Events, and HttpRouting
May 4, 2015
Three new PHP libraries are available. DI is a dependency injection container. Events is an event dispatching/handling/logging library. HttpRouting is an HTTP request routing library. They are all available for installation via composer as mattferris/di
, mattferris/events
, and mattferris/http-routing
respectively.
aims version 2.1 released
May 15, 2014
This minor release of aims is now available for download as a tgz and a .deb.
Changes in this release:
- ability to use custom chains
- negated filtering on interfaces, hosts and protocols
- new "any" clause for better readability
snappify version 0.2 released
October 29, 2013
Snappify version 0.2 is now available for download. Changes in this version include:
- status now shows new and deleted symlinks
- diff now works on new files
- updated readme
aims version 2.0 released
September 15, 2013
The second major release of aims is now available for download as a tgz and a .deb.
This major version release brings many new changes:
- incorporates a robust new parser called mexpar
- streamlined rule structure and syntax
- intelligent rule checking
- new and improved API
- simplified command line syntax
Check out the all-new online documentation.
snappify version 0.1 released
Febrary 25, 2013
The first release of snappify is now available for download. snappify is a *nix snapshot management utility.
Formation version 0.1 released
January 31, 2013
The first release of Formation is now available for download. Formation is a PHP libary that makes validating form data easier.
Defining Aggregates for an Expressive Domain Model
January 27, 2013
When I started to apply the concepts of Domain-Driven Design to my projects, the decision of what entity to choose as the root of an aggregate seemed to be relatively straightforward. On smaller projects with simple domain models the choice can be fairly obvious, but on large projects or those with more complex domain models the choice is a lot less clear. Most likely, your aggregate roots will change along with refactoring of your model as you understanding of the domain improves.
Continue reading ›
LiveEdit version 0.2 released
January 20, 2013
LiveEdit version 0.2 is now available for download. Changes in this version are:
- New
send
data type
- Ability to override options using HTML attributes
- Bug fixes
aims version 1.2 released
December 23, 2012
aims version 1.2 is now available for download as a tgz and a .deb.
Changes in this version are:
unload
mode to flush rules (aims -m unload)
-V
option to print the version
- example rulesets
As part of the 1.2 release, there is now online documentation for aims as well as new documentation for the aims module API.
Virtual Getters vs Actual Getters
December 15, 2012
Writing getters and setters sucks, especially if you have a lot of properties in your classes. A method I've used in the past is to create a Base class from which all other classes are extended. This base class uses the magic method __call()
to provide virtual getters and setters.
Continue reading ›