Looking for more information on how to do PHP the right way? Check out PHP: The Right Way

SitePoint PHP Blog:
Flyweight Design Pattern and Immutability: A Perfect Match
Oct 22, 2015 @ 11:56:32

The SitePoint PHP blog has a tutorial they've posted (from author Andrew Carter) looking at the Flyweight design pattern and immutability, how they're a "perfect match". The flyweight pattern makes it possible to reuse objects after they've been created with one requirement: they must be immutable.

The fundamental principle behind the flyweight pattern is that memory can be saved by remembering objects after they have been created. Then, if the same objects need to be used again, resources do not have to be wasted recreating them. [...] You can think of the flyweight pattern as a modification to a conventional object factory.

One important feature of flyweight objects is that they are immutable. This means that they cannot be changed once they have been constructed. This is because our factory can only guarantee that it has remembered the correct object if it can also guarantee that the object it originally created has not been modified.

The post includes code examples of how to implement the pattern with a simple File object that fetches data from a file when created. He then creates the factory class, with a getFile method that takes in the path and creates the immutable File object from it. It's then stored in an internal array for potential reuse later. He also talks about how the pattern could be useful for handling enumeration objects and how you can use it to build out "type" objects.

tagged: flyweight designpattern immutable object factory tutorial type enumeration

Link: http://www.sitepoint.com/flyweight-design-pattern-immutability-perfect-match/

Alex Netkachov's Blog:
Programmatically adding PHP script engine to IIS 5.1 metabase ScriptMaps
Aug 13, 2007 @ 09:30:00

In a new post today Alex Netkachov steps through how he added the PHP scripting engine to his metabase scriptMaps on an IIS 5.1 web server:

I spent a few days on investigating how to modify IIS metabase from script. What I need is to add PHP engine to IIS programmatically during installing PHP. [...] The metabase object can be enumerated and each item of the enumeration can be enumerated to. The elements of this hierarchy represent folders you can see in IIS management console.

He builds out the ScriptMaps functionality (a recursive "walk" function) and another function to add the PHP scripting engine onto that (addPhpIsapi). A word of warning from Alex, though:

This code now is the part of Jamp installer. But because this functionality is dangerous, this code is not run during default installer and it recommended to backup the metabase before running it.
tagged: scriptmaps engine iis webserver enumeration scriptmaps engine iis webserver enumeration

Link:

Alex Netkachov's Blog:
Programmatically adding PHP script engine to IIS 5.1 metabase ScriptMaps
Aug 13, 2007 @ 09:30:00

In a new post today Alex Netkachov steps through how he added the PHP scripting engine to his metabase scriptMaps on an IIS 5.1 web server:

I spent a few days on investigating how to modify IIS metabase from script. What I need is to add PHP engine to IIS programmatically during installing PHP. [...] The metabase object can be enumerated and each item of the enumeration can be enumerated to. The elements of this hierarchy represent folders you can see in IIS management console.

He builds out the ScriptMaps functionality (a recursive "walk" function) and another function to add the PHP scripting engine onto that (addPhpIsapi). A word of warning from Alex, though:

This code now is the part of Jamp installer. But because this functionality is dangerous, this code is not run during default installer and it recommended to backup the metabase before running it.
tagged: scriptmaps engine iis webserver enumeration scriptmaps engine iis webserver enumeration

Link: