Ste*_*nte 3 php zend-framework
我最近开始构建我一年的自定义MVC框架的第2版.在许多项目中,它对我很有用,但我确实看到了改进的空间.它缺少一些主要功能,如ACL,表单验证和缓存.尽管我自己也喜欢自己制作这些部件,但实际上我知道这不是一个明智的决定.所以,我开始研究Zend Framework 1.9.我真的很喜欢它的组件库松散耦合.但是,通过查看不同的教程,它看起来非常冗长.我已经看到了一些示例应用程序,我可以用我自己的框架使用更少的代码复制.因此,我想"重新定义"它的大部分内容,以使其更加友好.因此,在我花费大量时间深入研究框架之前,我希望有人可以为我阐明这个主题.我是一个内心的编码员,如果它有一个坚实的基础(我希望ZF有),可以花几个小时调整和定制一些东西.
我应该注意到,我很高兴看到Doctrine可以与ZF集成.
如果ZF不容易扩展,那么其他框架是什么(还有ACL,表单验证,缓存)?我一直在看Symfony,但整个Configuration over Convention事情让我很烦恼.
提前感谢任何输入.
编辑
为了回答tharkun的问题,"易于扩展"的意思是我可以滚动自己的类(可能会或不会扩展ZF类)并将它们打包到框架中,以便我可以轻松地为我构建代码的基础自己的项目.
在流行的PHP框架中,ZF肯定是最容易扩展的框架,特别是因为松耦合.
谢谢你的澄清.
你所描述的正是ZF所擅长的,但我会说它也正是OOP所擅长的,所以我认为OO框架不支持垃圾箱的情况.
无论如何.使用ZF时,通常以将自己的库保存在与ZF文件夹结构并行的结构中的方式完成.您可以使用ZF自动装载器,并通过将库文件夹添加到命名空间来将其注册到自动装带器.例:
//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_');
Run Code Online (Sandbox Code Playgroud)
在Mylibrary中,您应该遵循ZF命名约定.假设您要扩展Zend_Db_Table_Abstract类.该类逻辑上位于Zend/Db/Table/Abstract.php下.您的库现在应该复制该结构:Mylibrary/Db/Table/Abstract.php.你会在那个文件中命名你的类:
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
*/
}
Run Code Online (Sandbox Code Playgroud)
在提出这个问题时,你有什么想法吗?