gpt4 book ai didi

php - 扩展/修改 Zend Framework 有多容易?

转载 作者:可可西里 更新时间:2023-11-01 00:01:42 25 4
gpt4 key购买 nike

我最近开始构建我已有一年历史的自定义 MVC 框架的第 2 版。它对我的许多项目都非常有用,但我确实看到了改进的空间。它缺少一些主要功能,如 ACL、表单验证和缓存。尽管我很想自己构建这些部件,但我知道这实际上不是一个明智的决定。因此,我开始研究 Zend Framework 1.9。我真的很喜欢它的组件库是如何松散耦合的。但是,从不同的教程来看,它似乎很冗长。我见过一些示例应用程序,我可以使用我自己的框架使用更少的代码来复制它们。因此,我想“重新定义”其中的大部分内容以使其对 RAD 更加友好。因此,在我投入大量时间深入研究该框架之前,我希望有人能为我阐明这个主题。我本质上是一名编码员,如果它有坚实的基础(我希望 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_');

在 Mylibrary 中,您应该遵循 ZF 命名约定。假设您想扩展 Zend_Db_Table_Abstract 类。这个类在逻辑上位于 Zend/Db/Table/Abstract.php 下。您的图书馆现在应该复制该结构:Mylibrary/Db/Table/Abstract.php。您将在该文件中命名您的类(class):

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
*/
}

问这个问题的时候,你还有什么想法吗?

关于php - 扩展/修改 Zend Framework 有多容易?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1502063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com