Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WordPress是否为每个请求读取每个插件PHP文件?_Php_Wordpress - Fatal编程技术网

WordPress是否为每个请求读取每个插件PHP文件?

WordPress是否为每个请求读取每个插件PHP文件?,php,wordpress,Php,Wordpress,这几乎回答了我的问题: 但我想知道这是如何针对插件的 我一直在想,我可以在插件子文件夹下添加任何我想要的文件,比如/plug-ins/my-plugin/my-file.php,然后向其中添加php代码,在每次请求时执行,比如:add_action('init','my_init') 现在我开始怀疑这到底有多“酷”。这是否意味着WordPress必须为每个请求创建一个目录列表来查找所有文件,然后读取所有文件?还是有一些内部优化?与ASP.NET这样的东西相比,如果不是这样的话,速度似乎相当慢。

这几乎回答了我的问题:

但我想知道这是如何针对插件的

我一直在想,我可以在插件子文件夹下添加任何我想要的文件,比如/plug-ins/my-plugin/my-file.php,然后向其中添加php代码,在每次请求时执行,比如:
add_action('init','my_init')

现在我开始怀疑这到底有多“酷”。这是否意味着WordPress必须为每个请求创建一个目录列表来查找所有文件,然后读取所有文件?还是有一些内部优化?与ASP.NET这样的东西相比,如果不是这样的话,速度似乎相当慢。在ASP.NET中,大多数项目都必须在web.config中注册,并且除非修改web.config,否则不会重新检查


我知道在第一次安装插件时必须激活插件,但在那之后,您可以随时添加文件,它们将在下一次请求时“工作”。无法想象它如何能避免对每个请求进行目录搜索,除非它使用类似于由操作系统通知更改的东西(如果所有支持的OSs+PHP版本都有更改)。

插件基础文件会自动加载到每个请求上。 (通常基本文件是/plugins/my-plugin/my-plugin.php)

但是,插件作者可以选择执行一些逻辑,如果不需要,则不加载插件中的其余PHP文件

如果您有10000个小插件,那么速度会相当慢,除非您使用nostat启用操作码缓存(Zend或APC)

如果你这样做,性能将与0个插件几乎一致。


每个人都使用WP,因为它很容易开发,有一个蓬勃发展的社区和插件/主题市场,并且有目前为止最好的CMS管理面板。

“这是否意味着WordPress必须做一个目录列表来查找所有文件,然后读取所有文件,以满足每个请求?”-是的。这只是Wordpress“真正可怕的设计”的开始Wordpress也有一些荒谬的钩子,它可以触发我的想法,但这么多人使用WP,我想我希望有一个比“因为每个人都使用它”更好的理由。我知道这就是我现在开始使用它的原因。。尝试了DNN,但它只是没有像WP那样多的选项+现有插件+社区支持。谢谢,到目前为止我确实喜欢它,主要是因为有这么多的现有选项和很多方便可用的帮助。你提到的缓存是一个完美的例子,我只是还没有机会读到更多关于它的内容。大多数缓存都有太多的问题,无法成为一个实用的解决方案,但如果这是一个非常低级别和健壮的解决方案(如ASP.NET编译器缓存),那听起来很棒。操作码缓存通常会将页面加载速度提高约30%,并且加载的文件越多,增益也会增加。如果I/O受限(也就是说,硬盘驱动器跟不上),增益也会显著增加。APC和Zend都相当稳定,至少对Wordpress来说是这样。还要记住,PHP5.5比PHP5.3快约20%。这可以减少页面负载上宝贵的毫秒数。将以上所有因素结合在一起,您可以获得一个良好的快速运行环境。:)