Keywords: CMS, content mangagement system, php, zend, doctrine, XML, Smarty, Pear, Quickform, UTF8, i18n
I have developed a large number of PHP-based websites, SNSes and CMSes for various clients. In most cases part of the requirements was that an off-the-shelf package would not be flexible enough. Support for multiple Asian languages - not just Japanese - has usually been a requirement.
They are usually based around an SQL DB (typically MySQL, SQLite or Postgresql), though in one case the data was both read and written from a very complex XML file (the same file was used for the print version of the data: a prestigious scientific journal). CSV is used as a database format for certain applications. I find phpMyAdmin can be used as a admin interface to an SQL DB for new projects; but I've also written many customized database interfaces for administration staff.
Zend Framework and Doctrine (doctrine 1) was used as the basis for one website. I like the abstraction Doctrine brings, though I have some concerns about performance. In contrast I found Zend Framework to introduce as much complexity as it abstracts, and have been mostly unhappy with it.
Smarty was used as the template engine for some (older) projects. I have found this easy to use, powerful and easy to extend. Designer resistance seemed common, but no better alternative was ever suggested. I have used Pear::QuickForm on a couple of projects, and similar to Zend, found it introduced as much complexity as it saved for non-trivial projects.
I have used gpg and pgp to encrypt data that is sent out, and have a solid understanding of public key encryption, as well as general security issues for web development (SQL injection, XSS, password hashing vs. encrypting, etc.)