Essential PHP

Not for 'how-to' coding questions but PHP theory instead, this forum is here for those of us who wish to learn about design aspects of programming with PHP.

Moderator: General Moderators

Post Reply
User avatar
thomas777neo
Forum Contributor
Posts: 214
Joined: Mon Mar 10, 2003 6:12 am
Location: Johannesburg,South Africa

Essential PHP

Post 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.
User avatar
onion2k
Jedi Mod
Posts: 5263
Joined: Tue Dec 21, 2004 5:03 pm
Location: usrlab.com

Post 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.
McGruff
DevNet Master
Posts: 2893
Joined: Thu Jan 30, 2003 8:26 pm
Location: Glasgow, Scotland

Post 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.
Post Reply