Paul:

Your application sounds pretty trivial - all the major components are 
already in place.  If the tables are already defined, creating a 
user-maintenance portal isn't much more work.  I do this kind of user 
app in a couple hours - so anyone should be able to do it.  I think to a 
great degree you are overthinking tools and frameworks - just get dirty 
and start with native PHP, adding one field at a time to a maintenance 
page.  The biggest impediment to getting a project done is actually 
sitting down and starting.

If you want, I could provide some source code to a sample table 
maintenance page.

I generally parse out application functions to separate "includes" which 
are loaded as needed on page load - based on the state of any POST 
variables.  This allows a simple framework where the same base page is 
visually and functionally different based on where you are in the process.

Before you worry about HOW you do things it is better to think through 
WHAT you want to do:

PHP (actually all web apps) have one major thing you've got to figure 
out - and that is how to pass/maintain critical information you need in 
between changes in application state (submit/button clicks, reloads, 
refreshs).  I personally HATE depending on Javascript for anything, so 
understanding how $_SESSION, $_POST and $_GET handle things is the 
biggest challenge.  You have to specifically know how you want critical 
data maintained when a user clicks "Next", "Add", "Update", "Delete", 
and how you expect to "catch" it when the next web request is received 
by the web server (because your web server has no clue the new request 
has anything to do with a page it served five minutes ago).

Break your functional requirements into "include" fragments, both visual 
(HTML) and code.   This also helps gain benefits of developing little 
"objects" that you can trust to work without having to debug huge 
procedural blobs of code.

You pick which include(s) are presented by the state of the 
$_POST['submit'] (or whatever) - so one URL can present many different 
functions.

This also keep the code clean and separates HTML presentation from 
code.  Use whatever style sheets the application already has, therefore 
style doesn't need to be coded manually.

 From long experience, figuring out someone else's tools can take WAAY 
longer than just getting your hands dirty and doing it yourself.  
Everybody abstracts tasks differently, so getting my head around someone 
else's methods hurts my brain.

Since you've coded in other languages, this should be a walk in the 
park.  The simplicity of how PHP handles variables and cleanup makes 
life easy.  Take a hard look at mysql_fetch_array(), extract() - the 
combination is deadly and reduces most simple coding from dozens of 
lines to one or two.

The following snippet may help a lot while trying to figure out what 
your page is doing if pasted at the top of the PHP code:

   if ($_GET['debug'] === 'true') {
     print "
     SESSION:<br>
<pre>
     \n";
     print_r($_SESSION);
     print "
</pre>
<br>
     POST:<br>
<pre>
     \n";
     print_r($_POST);
     print "
</pre>
<br>
     GET:<br>
<pre>
     \n";
     print_r($_GET);
     print "
</pre>\n";
   }

If you load "http://www.yourserver.org/test_page.php?debug=true";, you 
will see all the stuff passed to your page by the server.  This can 
really help you figure out how web applications work.  Same thing works 
on the command line version fo PHP in a terminal window.

Hope this helps a little and de-mystifies web application development.

--
Bill Strosberg

On 12-03-21 10:16 AM, Paul Hays wrote:
> I'm looking for suggestions about tools for making a small web app.
>
> It's for an all-volunteer association that has a website on a Linux
> virtual server (with Apache httpd, PHP and MySQL). Our webmaster is
> starting a makeover. He wants a new page that will let association
> members update their own entries in the membership roster.**
>
> This may be an opportunity for me to learn how it's done these days.
>
> -- What's the right toolset?
> -- Is something like Zend, Yii or CakePHP appropriate, or just
> lower-level PHP? (A link to a recent tutorial that builds something
> similar would be ideal.)
> -- Care to guess a number of hours to learn enough of it to complete
> this? (I've written low-level C and C++ code, some Xerces and MySQL, a
> little QT and Python, but no PHP or any web technology more complex than
> static html.)
>
> Any comments on these?
>     http://www.magentoecommerce.com
>     http://ca.php.net/mysqli
>
> http://sheriframadan.com/2010/10/creating-a-member-system-using-object-oriented-programming/
>     http://edrupler.com/content/php-101-part-1-down-rabbit-hole
>
> - Paul Hays
>
>
> -----------
>
> **  Requirements so far (more always appear!):
>    -- administrators get passwords and full access (except reading passwords)
>    -- administrator can add, update, or delete any member's data
>    -- each association member makes a password permitting limited access
>    -- a member can update the member's own data (other than id)
>    -- any member can export and download the roster as a csv file
>    -- reasonable security (e.g. input validations, one-way encrypted
> passwords)
>
> There are only a couple of hundred association members; locking can be
> very gross.
>
> These may be overkill...
>     http://www.oxwall.org/
>     http://civicrm.org/features/members

_______________________________________________
Linux mailing list
Linux@lists.oclug.on.ca
http://oclug.on.ca/mailman/listinfo/linux

Reply via email to