wordpressで更新をかけて失敗してもう一度更新をかけたりすると「別の更新が現在進行中です。」なんて文言が出てきて15分ぐらいしないと再度更新処理ができないという仕様がかなりイラッとするけど設定で回避策がなさそうだから直接コードを書き換えるの巻

このサイトはwordpressを使っている。ときどきwordpress本体の更新がかかるが、更新をかけてから、何らかの理由で処理が失敗することがある。で、そのあともう一度更新をかようとすると「別の更新が現在進行中です。」という文言が出てくる。何度更新ボタンを押してもだめ。「しばらくしてから」って、いったいどのくらいだよって思ってググると、みなが口を揃えて「15分ぐらいしないと」と記載している。しかし、急いで更新して外出したいのに、そんな15分なんてハンパな時間は待ってられない!重複して更新処理が走るのを回避しているという実装はわかるが、自分一人でしか面倒みてないブログなので、ぶっちゃけイラッとするのだ。ということで、強制的に処理を進めさせるべく、コードを一部修正して更新を継続させる。 “wordpressで更新をかけて失敗してもう一度更新をかけたりすると「別の更新が現在進行中です。」なんて文言が出てきて15分ぐらいしないと再度更新処理ができないという仕様がかなりイラッとするけど設定で回避策がなさそうだから直接コードを書き換えるの巻” の続きを読む

jQuery UI Dialogでモーダルダイアログボックスを出して入力内容をフォームでPOSTしようとしたが全然POSTされない、強制的にsubmit()してもサーバ側にPOSTデータはまったく送信されず…なぜ!?

フォーム入力させてPOSTで送信……というのは普通に実装する内容だが、これをダイアログボックスで実装するとカッコイイ。ということで、手ごろなところでjQuery UI Dialogを使うことにしている。以前にも使った経験があり実績があるので(後述)、これで実装しようとしたら、いや1日ハマってしまったのである。 “jQuery UI Dialogでモーダルダイアログボックスを出して入力内容をフォームでPOSTしようとしたが全然POSTされない、強制的にsubmit()してもサーバ側にPOSTデータはまったく送信されず…なぜ!?” の続きを読む

CakePHPで現在のクラス名を取得すると単数形になっている、しかしこれを複数形に変換しないとViewでコントローラーを指定できないので

CakePHPを使っていて、View側でメソッド名やコントロール名を取得して処理をしたいという場面が出てきた。取得そのものは$this->actionや$this->nameでそれぞれ取得が可能なのだが、$this->Html->url()で指定するコントローラー名は複数形で指定する必要があるらしく、しかし$this->nameで得られるのは単数形の状態。「複数形は単純に後ろにsをつけましょう」などといった中学英語の初歩では通用するはずもなく、さりとて自分で複数形データーベースを作って変換関数を用意するなんて気が遠い……。いや、そもそもCakePHPではそれを処理しているんだから絶対に関連した関数なりメソッドが提供されているに違いない、と思ってマニュアルを紐解くと、やはりあった。 “CakePHPで現在のクラス名を取得すると単数形になっている、しかしこれを複数形に変換しないとViewでコントローラーを指定できないので” の続きを読む

PHPの再勉強ということでオライリーの「プログラミングPHP第3版」を買って読み進めていったものの、確かに基本に立ち返って勉強はできたが深い言語仕様には触れられておらずオライリー本でこの内容だともはや言語仕様詳細が書かれた本はないのかもしれない

Ruby勉強だのC#勉強だのと騒いで、さらにPHP再勉強だといってゲットした「プログラミングPHP 第3版」。オライリーだし、期待してページを繰っていったものの、言語仕様の解説は基礎的な部分にのみ留まり、あとはウェブやデータベースなどといった実用面での解説になっていた。 “PHPの再勉強ということでオライリーの「プログラミングPHP第3版」を買って読み進めていったものの、確かに基本に立ち返って勉強はできたが深い言語仕様には触れられておらずオライリー本でこの内容だともはや言語仕様詳細が書かれた本はないのかもしれない” の続きを読む

「いまらさらRuby」「いまらさらC#」に続いて「いまさらPHP」はじめます、棚にないと思ってたオライリーのPHP本が見過ごしだったらしくたまたま目に留まったのでゲット!

言語仕様に誘われて「いまさら」いくつかの言語を再学習、というのが昨今の自分のブームになってしまった。いまさらRubyしかり、C#しかり。PHP
も言語仕様はちゃんと理解しておきたいと思いつつ本を探したら棚になく……注文するために翌日再度本屋に行ったら、あれ棚にありました~。もっと分厚い本かと思ったら、案外薄かったのねん。 “「いまらさらRuby」「いまらさらC#」に続いて「いまさらPHP」はじめます、棚にないと思ってたオライリーのPHP本が見過ごしだったらしくたまたま目に留まったのでゲット!” の続きを読む

memcachedは入れたがPHPでmemcacheを利用できるようにするためにmemcache.soをインストールする必要があったらしい、しかしyum list|grep memcahceしてもphp53-pecl-memcacheとか出てこないからまたしても手動でやるのです

先日はmemcachedをCentOS 5.10 Finalにインストールするのにyumが使えずtarballを手動でインストールする苦行をしたのだが、これだけではPHPでmemcacheを利用することができない(そりゃ当然か……)。これをできるようにするためにはmemcache.soがなければならないのだが、これまたyum listしてみてもphp-pecl-memcacheしかなくてphp53版が見当たらない。どういうことよ……(怒)。ということで、これまた手動インストールをすることになった。 “memcachedは入れたがPHPでmemcacheを利用できるようにするためにmemcache.soをインストールする必要があったらしい、しかしyum list|grep memcahceしてもphp53-pecl-memcacheとか出てこないからまたしても手動でやるのです” の続きを読む

CakePHP2.4からAuthComponentのパスワードのハッシュ化の扱いが仕様変更され、デフォルトではSimplePasswordHasherというクラスを用いてハッシュ化されるらしいので、従来のハッシュ値と変わってしまってログインできないというハマリどころに数日悩まされた、あとuserModelに騙されて

CakePHP2系はずっと使っていて、Authコンポーネント(AuthComponent)も使って認証画面を実装することも、ままあった。今回またCakePHPを使って認証画面の実装を行おうとしたら、なぜか認証がいくらやってもうまく通らない。パスワードは事前にハッシュ化してテーブルにINSERTしているし、カラム名の指定も間違ってない。不安になりながら過去成功していたソースと見比べてみても、まったく同じように実装している。なのに認証が通らない。アカウントがあることは認識できているのでデータベースの設定などの問題でもテーブル構成の問題でもない。となると一体何なんだろうか……悩みぬいて数日(いや1週間ぐらいか)、ハマッたのである。あとuserModelオプションにはすっかり騙された。 “CakePHP2.4からAuthComponentのパスワードのハッシュ化の扱いが仕様変更され、デフォルトではSimplePasswordHasherというクラスを用いてハッシュ化されるらしいので、従来のハッシュ値と変わってしまってログインできないというハマリどころに数日悩まされた、あとuserModelに騙されて” の続きを読む

PHP5.1.6のsource tarballを探していたがなかなか見つからずも、ようやくOld Archivesページを見つけてゲットできる

いや私が見えてなかっただけなのだが、PHPのサイトからPHPの古いsource tarballを探そうとしてもなかなかたどり着かず、Googleで検索しても出てこなかったが、ふと目を右ペインのメニューに移したらOld Archivesがあったという話。 “PHP5.1.6のsource tarballを探していたがなかなか見つからずも、ようやくOld Archivesページを見つけてゲットできる” の続きを読む

CakePHP2で存在しないコントローラ名・アクション名などがURLで指定された場合に、カスタマイズされたエラーを表示したい

以前、このブログでもCakePHPにおけるエラー処理にまつわる記事を書いたことがある。これはこれで当時は試行錯誤の中で調整したもので、あの記事を書きつつも「本当に、ただ単に存在しないコントローラ名やアクション名がURL中で指定された場合のエラー処理に、こんな複雑怪奇な設定を施さなければならないものか」などと疑わしく感じていたが、今こうして長く使っていると、あれは混乱の産物だったのだろうかなどと思うこともある。単なる存在しないルートの場合のエラー処理でいえば、ちょっとした処理だけで対応できる。 “CakePHP2で存在しないコントローラ名・アクション名などがURLで指定された場合に、カスタマイズされたエラーを表示したい” の続きを読む