不同类的静态方法之间的PHP数据

不同类的静态方法之间的PHP数据,php,oop,wordpress,static-methods,Php,Oop,Wordpress,Static Methods,我正在编写一个Wordpress插件,并在PHP中与OOP概念作斗争。我想我要做的是相对简单的,所以我不知道我是否用我试图组织事情的方式找错了方向 以下是基本场景: 我创建了一个自包含类来实现一个短代码函数。这使用了静态方法,因为我认为没有必要为此实例化类的实例 这似乎很有效。但是,我需要实现一些其他组件,即用于post编辑器的“Shortcode Helper”插件、小部件和选项页面。这些函数在逻辑上分解为离散的函数集合,因此将每个函数分组到自己的类中似乎是有意义的。不过,我也不确定它们是否需

我正在编写一个Wordpress插件,并在PHP中与OOP概念作斗争。我想我要做的是相对简单的,所以我不知道我是否用我试图组织事情的方式找错了方向

以下是基本场景: 我创建了一个自包含类来实现一个短代码函数。这使用了静态方法,因为我认为没有必要为此实例化类的实例

这似乎很有效。但是,我需要实现一些其他组件,即用于post编辑器的“Shortcode Helper”插件、小部件和选项页面。这些函数在逻辑上分解为离散的函数集合,因此将每个函数分组到自己的类中似乎是有意义的。不过,我也不确定它们是否需要实例化。复杂的是每个类中的静态函数需要共享公共数据,我希望能够从另一个类中的静态函数调用一个类中的静态函数,因此,例如,所有类都可以共享默认设置,例如,将shortcode助手的控制面板重新用作小部件控制面板

这实际上可以通过静态函数实现吗?到目前为止,我还没有成功地从一个类中的静态函数调用另一个类中的静态函数。我是不是找错人了。在过去,我使用过程方法做过这类事情,但我正试图转向一种更基于面向对象的方法

很抱歉给你留了这么长的信息

非常感谢您的建议

干杯

亚历克斯

面向类的编程就像买了一辆车,让它坐在车道上,反复开关门,在座位上跳来跳去,偶尔打开挡风玻璃雨刮器,但从未转动过点火钥匙并开车。它完全没有抓住要点

请阅读以上链接的文章。您正在尝试的是全局状态的过程编程。OOP实际上与它关系不大

面向类的编程就像买了一辆车,让它坐在车道上,反复开关门,在座位上跳来跳去,偶尔打开挡风玻璃雨刮器,但从未转动过点火钥匙并开车。它完全没有抓住要点


请阅读以上链接的文章。您正在尝试的是全局状态的过程编程。OOP实际上与此无关。

嗨,deceze,谢谢你回复我。内容丰富的文章。我写PHP已经有几年了,但我刚刚开始涉足OOP领域(或者,正如您所指出的那样,不是)。我必须承认,我发现很难理解所涉及的基本原则。我会多读一些书,也许会研究一下单例模式。看起来这可能是我需要的。再次感谢。@Alex不,Singleton不是你需要的。因为它通常意味着到处都有类似于
Foo::getInstance()
的代码。这只是一个过程函数调用,放弃了OOP的优点,如本文所述。学习依赖注入。但是如果我不需要一个对象的多个实例具有它们自己的属性,我就不应该创建多个实例。。。我的意思是,如果我需要在多个地方使用相同的方法和静态属性,那么实例化多个对象肯定没有意义。对我来说,这似乎是在浪费服务器资源……然后实例化它一次,并在需要的地方注入它!:)我猜你会不同意《德克塞》的作者。嗨,德克塞,谢谢你回复我。内容丰富的文章。我写PHP已经有几年了,但我刚刚开始涉足OOP领域(或者,正如您所指出的那样,不是)。我必须承认,我发现很难理解所涉及的基本原则。我会多读一些书,也许会研究一下单例模式。看起来这可能是我需要的。再次感谢。@Alex不,Singleton不是你需要的。因为它通常意味着到处都有类似于
Foo::getInstance()
的代码。这只是一个过程函数调用,放弃了OOP的优点,如本文所述。学习依赖注入。但是如果我不需要一个对象的多个实例具有它们自己的属性,我就不应该创建多个实例。。。我的意思是,如果我需要在多个地方使用相同的方法和静态属性,那么实例化多个对象肯定没有意义。对我来说,这似乎是在浪费服务器资源……然后实例化它一次,并在需要的地方注入它!:)我猜你不同意《德克塞》的作者。