Note that there are some explanatory texts on larger screens.

plurals
  1. POPhp: functional style, light-weight alternatives to the separation of concerns in OO MVC patterns?
    text
    copied!<p><strong>The problem:</strong></p> <p>I have a <a href="http://ninjawars.net" rel="nofollow noreferrer">legacy php app</a> that is <a href="http://github.com/tchalvak/ninjawars" rel="nofollow noreferrer">coded in no particular style</a> (some OO, function libraries, some templates, no templates), which I am slowly rewriting, cleaning up, and adding to. </p> <p>When I introduced templates to the system, it was immediately evident that that would really clean up and simplify the code a lot because of the separation between html and php that it gives. I've worked with a php MVC framework at my job, and I really like the separation of concerns that embodies the concept of the MVC. However, I don't like the complexity that a large codebases would introduce. I love simplicity and can't deal well with endlessly nested debugging when a really complex stack comes into play. As time goes on, I have become more and more of a fan of functional style, mainly due to investigations into <a href="http://clojure.org/" rel="nofollow noreferrer">Clojure</a>.</p> <p>I would like to have a good way to separate out concerns in php, optimally without much object oriented code, and without much of a stack, because I want to move to a more functional style for php as I move to php 5.3 and beyond.</p> <p><strong>Framing the solution:</strong></p> <ul> <li>No large/complicated objects. </li> <li>A short stack for debugging. </li> <li>Running php 5.2, won't be able to upgrade to 5.3 until whenever it comes out in debian, so functional style would be nice, but the tools of 5.3 might not be available to me for a while.</li> <li>A clean &amp; simple theme to unify a currently fractured codebase.</li> <li>The less impact on the current code, the better.</li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload