Hey all.
I've built a simple, yet effective PHP based CMS, one that I use in all
sites I develop.
Unfortunately, from site-to-site, functionality may be different; i.e. I
often have to extend the original CMS to account for custom client needs,
which means grabbing the most recent version of my CMS, and hacking it to
address whatever customization is required.
This presents problems in that any updates I make to the CMS only affect the
site I'm working on. So, while working on one site I may make changes to
the CMS, changes that improve the app., but other older sites do not get
updated -- it's OK now, but things are getting sloppy ;--)
I would dearly love to have a base CMS repository that all sites would draw
on, extending the base CMS in the event that a particular client has need of
customization. Some combo of Linux and Apache would do the trick; e.g. PHP
requests for any of my sites would point to say, "/home/cms/includes/"
That would help (not solve) the version control problems I'm running into
now (still have to figure out how to extend the CMS for customization).
Now, the other issue I'd like to address is separating PHP code logic from
site HTML.
I've restructured my CMS classes to do all MySQL queries, code logic, etc.
prior to calling target HTML template. This is great in that now when an
error occurs, I can catch { throw new Exception($e) } and gracefully display
the error along with a means to repopulating the offending form page.
I've often heard the mantra, "separate code from HTML", but it seems
ridiculous at times to include tiny HTML snippets that can easily be echoed
out, or stored in a variable. Smarty goes to the extreme in separating code
from HTML, but looking at their templating system, I wonder what's the
point? Is it the end of the world if you've got a few choice if, then, else
statements in your HTML templates?
I'm thinking of creating a bunch of include files based on request type in
my CMS Admin Center; e.g. include "classes/admin/news/add.php", where add,
update, or delete is the request type. This cleans up my PHP processing
pages quite a bit (don't have all the if add, do X, elseif update, do Y,
etc. logic to comb through).
Last thing to do is write up a generic form builder class to assemble my
form pages, but that may be more work than necessary -- K-rist, webwork is
messy business ;--)
Clues, Opinions, etc. are welcome.
TIA,
--Noah
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php