开放的编程资料库

当前位置:我爱分享网 > PHP教程 > 正文

Cgiapp插件开发

我一直致力于Cgiapp路线图,尤其是插件架构。我一直假设我必须制作特定于PHP5的版本(Cgiapp2)才能允许此功能。然而,事实证明我错了。

PHP从PHP4开始就具有重载功能,并且从4.3.0开始就在标准构建中。事实证明,为了让插件在PHP4中工作(通过__call()魔术重载方法工作),我必须做的唯一不同的事情就是打开函数的重载(通过overload()函数,如果可用),并寻找全局$CGIAPP_PLUGINS变量(而不是静态类)。

在此过程中,我开始评估对Cgiapp2的需求。

事实证明,我可以在PHP4中完成我为Cgiapp2路线图计划的大量工作……这在很大程度上消除了对Cgiapp2的需求。但是,有些事情我可以使用PHP5技术做得更优雅或更好——例如测试运行模式中的错误和重载。

我的决定是创建一个单独的类Cgiapp5,它继承自Cgiapp并根据需要重写方法。目前,它取消设置$CGIAPP_PLUGINS变量(因为不必要),覆盖run()方法(使用异常处理而不是PHP的错误处理),并覆盖__call()方法(使用类静态属性而不是全局变量)。到目前为止,单元测试显示这两个版本都可以工作并且兼容。

我喜欢这种开发模式的一点是,我现在可以为PHP4用户添加一些强大的功能——我敢肯定,在PHP5获得动力之前,他们将在一段时间内成为最大的用户群。但是,与此同时,我可以在不牺牲向后兼容性的情况下处理PHP5的更多动态开发。

缺点是开发人员没有动力编写forCgiapp5而不是Cgiapp—这就是未来。但是,在这一点上,我希望面向更多的开发人员而不是更少的开发人员。

发表评论,让我知道Cgiapp应该采取的方向。

未经允许不得转载:我爱分享网 » Cgiapp插件开发

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏