Re: New to PHP, need pointers to best practices for the design of an atypical web app

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I see storing data between page views as your big challenge. Maintaining a "state" for the user session.

I am guessing that you have many questions, and that means lots of data. Using a database makes sense. PHP has fine interfaces to databases.

And since the application will be used by others, they need a place to install their questions.

If I was tasked with this project, I would start by documenting data structures and the algorithms. (Nicholas Worth)

If I understand correctly, the user navigation through the test is the tricky part.

Only when this is done, would I consider the PHP programming.

--
Stephen

On 2019-07-01 3:45 p.m., Alan Mead wrote:
I want to implement an adaptive test (exam) using PHP. (So, like any quiz, or any multi-page form, but using internal logic to decide what question to serve next and deciding when the exam is done.) I am a researcher (not a programmer) but I am familiar with Perl and other programming languages and with some web application models.

It looks like the vast majority of the PHP examples use the page (perhaps with parts dynamically injected using PHP) to represent the "mode" (state) of the application. I definitely want to separate my logic/code from presentation, but AFAICT the popular frameworks all use a MVC pattern where the "mode" is encoded in the URL (which is really the same since the URL specifies the page).

I don't think an exam fits well with either of these models. Even in research, a test-taker completing an exam should proceed linearly through a series of screens (consent, instructions, a series of items, optionally some post-questionnaire questions, optionally some exam results, some kind of "thank you"). And the examinee should not have any ability to modify the sequence of screens or the backend/underlying data by manipulating the URL.

Also, one of my design goals is to allow the researcher (who would install and configure this software) to control whether the optional pages appear and to modify templates to include their own content on these pages.

My inclination is to create a large index.php file that examines the user input and the current state and executes a subroutine that serves the appropriate next page (by selecting the appropriate template and filling it with appropriate information). I know this is atypical and I'd appreciate thoughts about things I may be overlooking as a newcomer to PHP and the PHP way of creating web apps. If I'm reinventing any wheels, I'd appreciate pointers to those frameworks.

I'm also having trouble finding a simple example of using a template outside of a framework. But maybe that's my newness...

-Alan





[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux