Hey everyone, I've read a lot of great comments so far. I'm always welcoming of feedback and ideas and I appreciate the respectfulness from all of you.
I would like to clarify a few things that have been pointed out:
1. Skunkbad, you mentioned I haven't even started yet and wondering why I'm doing this or that:
In reality, I have started. I'm currently in the discovery and planning phase. This is essential to start before any coding even takes place.
Here's what I'm doing:
- I'm identifying any workflows that this program needs to be able to do and basically creating flow charts for each action and possible outcomes.
- I'm looking for possibilities for pre-existing code to include. That includes a PHP hasher or security focused code.
Why am I looking at possible PHP hashers? Is the included functions with PHP enough or do we want to abstract that process like Narf mentioned?
Emailer? CI4 is supposed to have one built in, but will it be sufficient? How does it do with spam filtering? Would we want to implement our own to address those issues or simply use the CI4 built in one?
Creating base templates and controllers isn't a bad thing, like you make it sound out to be. Good documentation is always a must, but why would it discouraged to create a working example?
These are all questions I'm exploring to determine what is needed before I start coding.
To be a CI4 standard? Never hurts to dream big, eh?
2. PaulD, Narf summed it up pretty well with his response about the example. I'll just add that bloating shouldn't be a major concern since these files are not even loaded until called upon. The main concern would be the overall size of the file, but I believe that will still be kept to a minimum.
3. qury, I haven't put much thought into it yet, but fortunately, if I were to follow good coding standards, any database interaction would be abstracted anyway. that way we can easily extend the functionality to include PostgreSQL. Once this is done, I have a project in mind that could benefit from using MSSQL as the software it is based on uses that, so adding functionality to other database types is important.
------------------------------------------------------------------
I'm not saying these things to be defensive, because I am very appreciative for feedback. Just keep in mind the engineering process, when done right, is slow. It all starts with the planning phase. Getting input from potential users is crucial as to get feedback for currently listed concepts or what should be added or potentially taken away. This all has to happen before any coding even starts.
Thanks again!