phpunitでprivateメソッドのテストをする

phpunitでclassのprivate methodをテストしたいときはPHP: ReflectionMethod – Manualを使うとできます

SampleクラスのisValidメソッドへ引数を渡してテストするなら

$class = new Sample();
$arr = ['arg' => 100];
$method = new ReflectionMethod(get_class($class), 'isValid');
$method->setAccessible(true);
$result = $method->invoke($this->csv, $arr);
$this->assertTrue($result);

といった形です

phpでディレクトリを消す

phpでディレクトリを消そうとすると PHP: rmdir – Manual が使えますが、ディレクトリの中にファイルがあると消せません
そこで、消すためには

$dir = './tests';
if (file_exists($dir)) {
    array_map('unlink', glob($dir.'/*.*'));
    rmdir($dir);
}

とunlinkとglobを使ってやるとよさそうです

wp-cron.phpを止めてcronで動かす

New Relicを見ていて wp-cron.php で時間がかかっているので、止めてcronを使うようにしてみました
wp-cronを有効にしておくとアクセスのたびに処理が走るようです

WordPressのインストールディレクトリへ行って、wp-config.phpを探し

$ vim wp-config.php

define('DISABLE_WP_CRON', true);

これでwp_cronが止まるらしい
あとは、linuxのcronを使って

$ crontab -e

15 * * * * curl http://(your domain)/wp-cron.php > /home/user/curl.log 2>&1

こんな感じで対応しました
wp-cron.phpでかかる時間がどうなるか様子を見てみます

WordPressのphpのメモリ使用量上限を変える

てっきりphp.iniでメモリ使用量の上限を決められると思ったら
Wordpress内でも設定があり、サーバー設定は効かない様子

WP_MAX_MEMORY_LIMIT:WordPress私的マニュアル

を参考にWordpress 4.3のphpファイルを見てみると

$ wp-includes/default-constans.php

function wp_initial_constants() {
    global $blog_id;

    // set memory limits
    if ( !defined('WP_MEMORY_LIMIT') ) {
        if ( is_multisite() ) {
            define('WP_MEMORY_LIMIT', '64M');
        } else {
            define('WP_MEMORY_LIMIT', '40M');
        }
    }

    if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
        define( 'WP_MAX_MEMORY_LIMIT', '256M' );
    }

とWP_MAX_MEMORY_LIMITが256MBに決められてました
管理画面ではWP_MAX_MEMORY_LIMITが効くみたいです

変更するなら wp-config.php で

define( 'WP_MAX_MEMORY_LIMIT', '512M' );

とするとよさそうです