我创建了5个与Apigee通信的自定义插件。(创建开发人员、删除帐户、创建应用程序)。我想将所有内容合并到一个文件夹中,所以我创建了一个加载器。php文件:
<?php
/*
Plugin Name: Apigee
Description: Contains plugin CreateDev, plugin CreateDevApp, plugin
DeleteAccount, plugin GetApIProducts and plugin GetDevApps
*/
require plugin_dir_path( __FILE__ ) . \'CreateDev.php\';
require plugin_dir_path( __FILE__ ) . \'CreateDevApp.php\';
require plugin_dir_path( __FILE__ ) . \'DeleteAccount.php\';
require plugin_dir_path( __FILE__ ) . \'GetApIProducts.php\';
require plugin_dir_path( __FILE__ ) . \'GetDevApps.php\';
?>
激活插件后,一切正常,但页面加载速度非常慢(这是以前没有发生过的)。此外,如果此插件被激活,我将无法上载媒体文件。
我做错了什么?
EDIT
function myplugin_develoepr_registration(){
$post_url=
\'https://api.enterprise....developers\';
$arg_data = array(\'email\'=> $_POST[\'user_email\'], "firstName"
=>$_POST[\'first_name\'], "lastName" => $_POST[\'last_name\'] , "userName" =>
$_POST[\'user_login\'] );
$data = json_encode( $arg_data );
$args = array(\'headers\'=> array(\'Content-Type\'=>\'application/json\',
\'Authorization\' => \'Basic XXX\'),\'body\'=> $data );
$response = wp_remote_post( esc_url_raw( $post_url ), $args );
$response_code = wp_remote_retrieve_response_code( $response );
$response_body = wp_remote_retrieve_body( $response );
print_r($_POST[\'user_email\']);
print_r($_POST[\'first_name\']);
print_r($_POST[\'last_name\']);
print_r( $_POST[\'user_login\'] );
if(!in_array( $response_code, array(200,201))|| is_wp_error( $response_body
))
returnfalse;
}
add_action(\'user_register\',\'myplugin_develoepr_registration\')
?>
最合适的回答,由SO网友:kierzniak 整理而成
我想没有人会给你确切的答案,为什么你的代码很慢。问题是我们不知道每个文件中都有什么。您必须分析代码。配置代码的最简单方法是使用microtime
.
$time = -microtime(true);
// Here exeute code which you want to profile
$time += microtime(true);
echo sprintf(\'Your code executed in in %fs\', $time) . \'<br>\';
exit;
我会先介绍每个
require
并查看哪个加载时间最长。这可能看起来像那样。
$format = \'File %s required in %fs\';
$require_plugin_file = function( $file ) use ($format) {
$time = -microtime(true);
require plugin_dir_path( __FILE__ ) . $file;
$time += microtime(true);
echo sprintf($format, $file, $time) . \'<br>\';
};
$require_plugin_file(\'file1.php\');
$require_plugin_file(\'file2.php\');
$require_plugin_file(\'file3.php\');
$require_plugin_file(\'file4.php\');
$require_plugin_file(\'file5.php\');
exit;
其输出可能是:
File file1.php required in 0.000260s
File file2.php required in 0.000255s
File file3.php required in 3.000257s
File file4.php required in 0.000241s
File file5.php required in 0.000235s
现在我知道
file3.php
花最多的时间加载,我会在这个文件中看到问题所在。
注意:在我使用的示例代码中Anonymous functions
可从以下网址获得php 5.4
.