I\'ve recently begun building version 2 of my year-old custom MVC framework. It\'s worked great for me on a number of projects, but I definitely see room for improvement. It
Among the popular PHP frameworks ZF is surely the one which is most readily extended, especially because of the loose coupling.
Thanks for the clarifications.
What you describe is exactly what ZF is good at but I'd say it is also exactly what OOP is good at so I would regard an OO framework that doesn't support this a case for the rubbish bin.
Anyways. With ZF it's normally done in a way that you keep your own library in a parallel structure to the ZF folder structure. You can use the ZF autoloader and register your library folder with the autoloader by adding it to the namespace. Example:
//this will be the only require needed for your whole application
require_once 'Zend/Loader/Autoloader.php';
$loader = Zend_Loader_Autoloader::getInstance();
$loader->registerNamespace('Mylibrary_');
In Mylibrary you should then follow ZF naming conventions. Say you want to extend the Zend_Db_Table_Abstract Class. This class is located logically under Zend/Db/Table/Abstract.php. Your library should now replicate that structure: Mylibrary/Db/Table/Abstract.php. And you would name your class in that file:
class Myproject_Db_Table_Abstract extends Zend_Db_Table_Abstract
{
/*
now you're ready to extend and override as much as you like.
and as a bonus you'll not even hav to include your library files
since your library is registered with the loader
*/
}
Did you have anything else in mind when asking this question?