CakePHPで開発したアプリケーションを公開する際、たとえばバグの修正やデータベースのアップデートを行う場合など、サイトの全機能をいったん止めて、バックエンドで作業したいことがあるかと思います。

エントリポイントであるAPP/webroot/index.phpを差し替えるという強硬手段もあるかと思いますが、もっと手軽に実現するためのMaintenanceコンポーネントを作成してみたので公開します。
CONTINUE READING

CakePHPではデバッグレベルを0としている場合、あらゆるエラーが非表示になり、CakePHPのエラーをはじめPHPのWarningやFatalエラーも記録されなくなります。

例えば、その状態で致命的なエラーが発生しても、画面が真っ白になったり、ErrorHandler::error404メソッドが実行されるだけで、どこかで能動的に$this->logなどで記録していない限り、解決につながる情報が記録されません。

そんな時、下記ブログを参考にカスタムエラーハンドラや、PHPエラーを記録する条件を定義しておくだけで、手軽にログを取ることができるようになります。

この中の内容で、自分も利用させて頂いている2つめの方法が手軽でよいので、紹介させて頂きます。

/app/config/bootstrap.phpの中にphpエラーログを常に/app/tmp/log/php_error.logに出力するとか
例えば:
if ( Configure::read(‘debug’) == 0 ) {
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
ini_set(‘display_errors’, 0); ini_set(‘log_errors’, 1);
ini_set(‘error_log’, LOGS . DS . ‘php_error.log’);
}

CakePHPでdebug=0の際にset_error_handler – benny毎日ラボ

下記のコードをAPP/config/bootstrap.phpに書いておくだけです。

if (Configure::read('debug') == 0) {
    error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
    ini_set('error_log', LOGS . DS . 'php_error.log');
}

これだけで、デバッグレベルが0の場合でも、APP/tmp/logs/php_error.logにエラー情報が記録されるようになります。

WordPressでお問い合わせフォームなどを作成する際、いちいち他のスクリプトを組み込むのも面倒なのでプラグインを探していたのですが、Comment Form 7という素晴らしいプラグインを見つけたので、紹介させていただきます。

カスタマイズ性の高いフォーム作成画面

通常のテキスト入力やテキストエリアなどの他に、チェックボックスやセレクトボックスなどの多彩な入力フォームを設けることができ、さらにその組み合わせを、フォーム単位で保存する事が可能です。

CONTINUE READING

以前に作成した、特定のURLへのTwitterの投稿を一覧で取得できるjQueryプラグインを、さらに改造してみました。

前回のプラグインではツイートが多くなっても、100件までは全て取得して表示するような仕組みになっていたため、そのまま表示してしまうとページが縦に異常に長くなる現象が発生していました。

そこで、今回の改造で1ページに表示する件数を指定可能にし、さらにページネーションの仕組みを取り付けてみました

CONTINUE READING

auの電波調査を依頼してみた

5年ほど前からauの携帯を使っています。

auの携帯は新機種の迷走はともかくとして、今まで特に不自由したことも無く使っていたのですが、今の家に住んでからというもの、電波状態の悪さに悩まされることになりました。

昨年末に引っ越してきてからというもの、何となく電話が途切れたりするとは思っていたんですが、つい最近になってINFOBARのa01というスマートフォンに機種変更したところ、Eメールが遅延するというちょっと見過ごせない状態になってしまい、やむなく対処法を探すことに。

ネットでいろいろ探したところ、auには「auエリアサポート」という無料の電波調査サービスがあったので、早速そちらを利用させてもらいました。

CONTINUE READING