Page 1 of 1

Essential PHP

Posted: Sun May 08, 2005 2:18 pm
by thomas777neo
Hi All

I am looking for a "check list", if you can call it that. Of the things that are essential for a medium to large php project. For example:

Any user-friendly, low maintenance, well-tested etc php project must have:

php unit testing
templating engine
abstract database connection
php based user input validation
benchmarking
widget builder
sql builder
encryption, decryption
oop based
central configuration point
install wizard
multiple workgroup, module, user and location support
authentication
stylesheet driven etc

Ok, I have mentioned quite a few. And some essentials are according to personal preference. But, my objective is to build something that has all the core essentials as mentioned, and any other that you guys can think of.

In order to have almost an excellent base to build new projects off in a flash. I think it would be great for any of the newbies as well. For them to say, "Ok, I managed to get this php unit testing to work, let me try and create the templating engine, or use one that is out there".

Once you've come to a point where you basically have all the topics covered. You, according to your skill, should have built something that is easily maintained and you could also build a complete site in no time.

Posted: Sun May 08, 2005 3:09 pm
by onion2k
It depends entirely on the project. The isn't a list of things every project should include. The scope is just too broad.

Posted: Sun May 08, 2005 3:36 pm
by McGruff
In my personal order of importance:

(1) version control (Subversion is nice; CVS much less so)
(2) OOP - goes without saying ;)
(3) unit testing (& integration/acceptance testing)
(4) install wizard (or automatic script)
(5) benchmarking tools: apache ab or Xdebug (but only after I'm done coding)

You don't always need a database abstraction layer. If you plan to distribute an application widely, certainly add an abstraction layer.

Several other things which you've mentioned are good to have in a library, ready to go, although you might not need them all for a given project.