FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » Dynamic form generation
Show: Today's Messages :: Polls :: Message Navigator
Return to the default flat view Create a new topic Submit Reply
Re: Dynamic form generation [message #177727 is a reply to message #177726] Wed, 18 April 2012 11:59 Go to previous messageGo to previous message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma:
Senior Member
On 4/18/2012 4:33 AM, Tony Marston wrote:
> "Jerry Stuckle" wrote in message news:jmk2lu$hgn$1(at)dont-email(dot)me...
>>
>> On 4/17/2012 8:49 AM, Thomas 'PointedEars' Lahn wrote:
>>> Denis McMahon wrote:
>>>
>>>> On Fri, 13 Apr 2012 09:59:52 +0100, Tony Marston wrote:
>>>> > If you used a proper framework ...
>>>>
>>>> ... then you'd have all the junk and baggage that comes along with that
>>>> framework, including any security flaws in the framework.
>>>>
>>>> Not saying that frameworks are inherently bad, but they're not
>>>> automatically the solution either.
>>>
>>> TINSTAAFL. If you want complete flexibility of the application as the OP
>>> wants, you have to have an abstraction layer in your application,
>>> i.e. it
>>> has to be built on a framework (some people really should reflect on the
>>> term "framework" and its etymology). Abstraction layers come at a price:
>>> Increased overall complexity of the application and decreased
>>> efficiency for
>>> tasks that do not require as much flexibility.
>>>
>>
>> Yup, and when you use a framework you force the application to match
>> the framework, instead of allowing the application to meet the
>> client's needs.
>>
>> It may work - but then it may not, also.
>
> The client's needs are met by screens/reports which have the right
> layout and which perform the right functions. My framework does not
> stand in the way of that at all. When user transactions are initially
> generated they have default screens and default behaviour, but these can
> be customised to whatever level of sophistication you want.
>

The client's needs are met by the APPLICATION. This is much more than
the screens and the layouts. But then if all you do are trivial
database applications, then I can see where something like that can help.

However, your example of over 200 tables and 350 relationships is a
perfect example of how bloated such code can become.

>>> Whether that framework was written by you or someone else is another
>>> matter.
>>> Chances are that a framework written by someone else has already gained
>>> enough adoption in the global software community that its flaws –
>>> including
>>> security flaws – are more quickly detected and fixed than in a framework
>>> that you have written yourself. On the other hand, chances are that a
>>> framework you have written yourself can be better adjusted *by you*
>>> to do
>>> what you want than a framework written by someone else, especially if
>>> you
>>> created it for the same project in which you are using it.
>>>
>>
>> So? Good programming practices and test cases will eliminate more
>> security flaws than many of the "frameworks" out there. Have you seen
>> some of the crap code which has been written "by committee"? Not all
>> of it, but a lot of the donations are from people who don't really
>> understand what they're doing - or at least don't write code like they
>> know what they're doing.
>>
>>> Inevitably all frameworks become bloated if functionality for
>>> flexibility
>>> keeps being added to them. It would appear that there is a point where a
>>> framework author should stop improving it and start something new for
>>> a new
>>> project, maybe based on old code (but sometimes a rewrite is less
>>> expensive
>>> and turns out to be better). IOW, it is a good idea if you built
>>> frameworks
>>> with modularity in mind and use them only *as needed* (not simply for
>>> the
>>> sake of using them, like trying to appear cool to the crowd).
>>>
>>>
>>> PointedEars
>>
>> If a framework attempts to be "all things to all people", then that's
>> quite true. But the same is true of *any* code.
>>
>> However, a limited framework with limited goals doesn't necessarily
>> have to be the case.
>>
>> For instance, in my case - I have a framework which builds PHP classes
>> to interface to a database. It generates a lot of usable code for
>> those classes, including form handling.
>
> So you framework generates "a lot" of code, does it? My framework
> generates very small amounts of code which call shared functions or
> which inherit code from abstract classes.
>

Yup, for instance, it generates all the set and get methods for the
applicable class, as well as database access code (insert/update/delete
for single rows and single rows and lists of multiple rows for SELECT).
(Most of the access code is in parent classes). It also generates the
code necessary to validate a field. Some stock fields (like "must be
integer") have predefined validation functions. Others, like passwords
where the rules may change, allow the validation to be handled by a
regex, function call or similar.

It also has the ability to generate forms html to display (read/write or
read only). And this is all one function. If I need a different layout
for a different page, it's easy to copy/paste a new function and redo
the output.

It also has a function to populate the object from $_GET or $_POST
values (with validation).

>> However, since each class is pretty much independent, I can easily
>> change a class without affecting the rest of the program.
>
> So can I with my framework.
>
>> I don't have it where it will work with multiple tables yet (something
>> I will do one of these days), but it takes a huge amount of the
>> repetitive work off of me.
>
> Removing the need for all this repetitive coding, the "plumbing" as I
> call it, is exactly what my framework does.
>

Not if it only generates a tiny bit of code.

>> And no, I don't try to use it for every project. But where a project
>> is database-intensive, it suits my purposes.
>
> All my applications are database-intensive, which is why I use a
> framework which is centred around the database.
>

Ah, that explains it, then. Database access is easy (although many
people can still screw that up). Most of my applications need to do
real work.

But I'm also not so stupid as to think that my frameworks is good for
everyone. It works for me. But I don't try to foist it off on someone
else without telling them it's my framework. That is just plain dishonest.

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Data injection problems
Next Topic: Do you want to develop PHP for the Web and make money
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Sat Nov 23 05:14:47 GMT 2024

Total time taken to generate the page: 0.03999 seconds