In
this previous node on my attempts to rewrite a CGI system that I have, many gave good advice, and one of the things that I'm looking into is the use of
CGI::Application for backends. However, there's a couple of problems that I see with this:
- First, it seems, as I read examples, that you would want to use a new instance of CGI::Application for each state machine that you have (such as a "Entry/Validataion/Success" series), and if you have a second state machine, you'd want to use a new CGI::Application for it. Not that you couldn't use one C:A for it, but it can become overwhelming to maintain it. Since the site I'm updating has many different state machines, this would seem to preclude the use of CGI::Application. Using Nodes, on the other hand, would require additional db calls, but if you follow the example that PM has, there's several instances of state machines at work (such as preview/submit/display for most nodes), which can be easily done by linking nodes. I am going to use Postgres for this, so I have the ability to inherit node types in the db, so that makes things a bit nicer. Now, in my case, node creation is not a task that would be done often; most likely it would be limited to some feedback areas and when I specifically add new text to the site. So in this case, would using nodes be too much for this type of site?
- In addition, I have some pages that do not require a user account to view, some where the user account isn't necessary but can help set default views, and some where it's required. Typically, if I used individual state machine C:A model above, each state machine would have the same authentication scheme as above. However, if I used a global state machine, there appears to be no easy way to specify extra steps to take once C:A takes over. With nodes, I can specify which node types need which authenication, and use that as well. So doing this by the node route isn't a problem, but I stuck with C:A, is there an add-on or similar package that allows authenication specification or similar pre-engine features?
Yes, as I read back this, it seems like I'm set on the node model, but I'm still looking for gotcha's that might come into play. But does it make more sense to go the way of the node instead of large state machines for CGI apps in the general case?
-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com
||
"You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.