Strange PHP
There is a Lynchian underbelly to some dark corners of PHP. Except, in place of dwarves in lamp-lit rooms behind red curtains, there are functions that aren’t functions that act as l-values.
Nerd Note: An l-value is something that can receive (and generally store) a value or other data. It’s called an l-value because it can be on the left side of an equal sign. Functions typically produce values rather than hold them, so it’s a weird thing to see.
Anyway, the CMS project is pretty much my project right now, and it’s nice to have a clean enough plate to focus on it nearly exclusively. PHP can be pretty messy, but its simplicity reduces your lines-of-code count so far it’s pretty easy to audit a reasonably-sized project for foolishness.
Contrary to my normal seat-of-the-pants design process, this application has been blueprinted fairly extensively, especially as far as what features will be in the system and which ones are being left out.
There are always surprises, and mostly for the good. I slightly redesigned my main storage system last night, to allow the file names to have all the required information aside from what is actually part of the content itself. So far, this implementation is on a clipboard, so there is work to do tonight.
Editing is basically done, so I’m forging my way into revision control now. Using the fabulous Text_Diff package for PHP last night, I have validated that I can produce an inline diff of a page. Inline diffs look like this. They’re great for seeing how a page changed between revisions. It’s almost like someone went through scratching things out and writing in new stuff.
Revision control is pegged to complete within a day or two. Then, users and permissions are fleshed out fully. Quite a bit of work has been done on this already, but functions like adding, modifying, and deleting groups are far from complete. It is also the core backdrop for the system’s security features, so there is a huge code audit to enforce access permissions once they exist in full force.