I don't know how much programming experience you have, but if it's not significant (e.g. if you're not completely confident in how well your code will hold up to the scrutiny of other developers in a team development setting), then you should seriously consider using a CMS, framework, or CMS-framework.
Yes, you can learn a lot of the nitty-gritty stuff better by developing a site from scratch, but this isn't just a practice project for you; this is your friend's business site, so you have a responsibility to give priority to his needs, not yours. And using a CMS/framework will allow you to, not only get the site up faster, but:
- ensure that the codebase is up to professional standards
- ensure that the codebase is stable and secure
- ensure that the code is modularized and easily extensible
- ensure that other best-practices are adhered to, making the code more maintainable
Now, if you're using a framework, then you probably do need to write a little controller code yourself even for a basic site. However, the framework documentation will lay out how to write this code for a standard CRUD site, which ought to be pretty straightforward. In addition to providing standard solutions to common problems, with frameworks like CakePHP, official conventions force you to adhere to best practices. It's still possible to write spaghetti code no matter what framework you use, but the chances of it happening are greatly reduced.
The fact of the matter is, it takes time to learn how to create a professional website, and you'd be hard-pressed to learn everything in a single project (and complete it within a reasonable amount of time). A CMS/framework provides a shortcut, and by looking at the code and conventions of professional CMSes and frameworks, you can also pick up a lot of knowledge that would probably take you years to figure out on your own.
Also, even though most developers don't like to admit it, most websites are more similar than they're different (in purpose & requirements), so you can usually find existing (open source) solutions for most types of projects that are far superior to anything a single developer could write on his own in a reasonable amount of time.
So from that perspective, you'd just be re-inventing the wheel by creating another CMS for a brochure site/blog/e-commerce store/etc. Therefore, it'd be far better to choose a mature open source CMS you can customize/extend and benefit from the millions of man-hours others already put into its design/coding/testing/refactoring/patching/etc. This way, you only need to focus on creating solutions to the problems unique to your project rather than solving problems that have already been solved a million times before.
I mean, it's unlikely that a single developer will be able to write a rich AJAX interface (that degrades gracefully and is cross-browser compatible) matching that of Magento or Wordpress in less than a couple of months, not to mention all the other features standard in popular CMSes (automatic pingback, spellcheck, slug generation, routing engine, tagging, plugin capabilities, feed generation, localization support, data sanitization, file uploading, WYSIWYG editor, user management, microformat support, comment system, etc.). So trying to create a CMS on your own would both cost more time and result in a less robust product for your friend.