PHP

CakePHP

[cakephp2.x]APC利用時のan internal error has occurredエラーについて

cakephp利用時にan internal error has occurred.が出てしまうことが まれにあります。 困ったことに、このエラー、根本的な原因がわからないことが多い。 たいていの場合はキャッシュとモデル(テーブル)の問題で...
CakePHP

[cakephp2]modelのソートでrand()を使う場合の注意

たとえば、ランダムにデータを取得したい場合。 $this->(model)->find('list',array('order'=>array('rand()'))); とするとSQLでは ... rand() ASC ... などとなって...
CakePHP

[CakePHP2.x]adminルーティング時のリンク指定

adminルーティングした場合にリンク等でURLを指定したい場合。パラメータをどうしたらいいかわからず詰まってしまった。 まぁ、'/admin/hoges/action'といった感じで指定してもいいのですが、配列で指定する場合は下記のように...
CakePHP

[CakePHP]外部ファイルにバージョン番号を付加してキャッシュ問題を解決する方法

CakePHPに限らず、CSSやJSファイル等を更新した場合、キャッシュが効いてしまい最新のものが読み込まれない場合があります。 この場合、ファイル名を変えればいいのですが、それはすごく大変です。 そこで、下記のようにバージョン番号を付加し...
CakePHP

[cakephp2.x]shellの中でviewを使いたい

まれに、shellの中でhtmlファイルを生成したいことがあります。また、htmlメールを送信したい場合もあるでしょう。 一応、shellの機能の中にテンプレート機能があるようなのですが、使い方の情報が少ないのと、いまいち使い勝手が悪い。 ...
CakePHP

[cakephp2.x]ヘルパーでヴァリデーションエラーの内容を見たい

ヘルパーでヴァリデーションエラーの内容を見たかったのだがどうやってアクセスしていいかわからない。 ヘルパー内で$thisのダンプをとっていって何とか見つけました。 $this->_View->Form->validationErrors こ...
CakePHP

[cakephp2.x]pagenateのカウントがおかしい場合。

pagenateのfiledsでDESCENTやgrop byを使うとカウントがおかしくなってしまう場合。 AppModel.phpに以下でpaginateCount()関数をオーバーライドすればいい。 function paginateC...
CakePHP

[CakePHP1.2]Cakeでレプリケーションを使う場合

config/database.phpにマスター、スレーブのdb接続設定を以下のように追加する。 例 $default=array(DB設定); //スレーブ $default_master=array(DB設定); //マスター save...
CakePHP

[CakePHP2.x]modelの連想配列にモデル名が入ってこない件

CakePHP2.x系+CentOS6系の組み合わせだと、なぜかmodelの連想配列にモデル名が入ってこない場合があるようです。 どうもPDO.MySQLとMySQLの組み合わせで、あるAPIでテーブル名がうまく取得できない場合があるため、...
CakePHP

[CakePHP1.2]モデルのテーブル名を動的に切り替える

モデルで使用しているテーブル名を動的に切り替えるメソッド $this->Model->setSource(table_name); マージテーブルなどで年代別に複数のテーブルに分割している場合などで、特定のテーブルのデータを取得したいときに...
CakePHP

気になるサービス&モノ(5月号)

やたらと安いVPS。最低価格490円/月 安すぎる・・・。データセンター(つまりサーバーの場所)を東京、大阪から選べるのもうれしい。 VPSだと、大概何も設定されておらず、自分でアプリを入れたり設定したりが必要だが、ここのサービスはある程度...
PHP

MySql+phpMyAdminの文字化け

mysqlを新規インストールすると必ずハマるのでメモ書き! phpMyAdminの文字化け
Linux

sakuraインターネットVPSを試してみた

sakuraインターネットVPSを申し込んでみました。 さくらインターネットのVPS 10分ほどで接続先等が書かれたメールが送られてきましたが、 本当にOSしか入っていないので一通りインストールしなけれ ばなりません。 コンソールは、Web...
CakePHP

[CakePHP]メールコンポーネントの使い方

CakePHPで便利なメールコンポーネントですが、文字化け等で少しはまったのでメモ書き まず、コンポーネントをロード var $components = array('Email'); 送信方法ですが、ポイントは、文字コード変換は自前でやっ...
CakePHP

scpで自動応答コピー

scpでパスワードなしでスマートに接続する方法 クライアント側 まず鍵を作成 ssh-keygen -t rsa 鍵を相手のサーバーにコピー scp ./id_rsa.pub (user)@(相手のサーバー):/home/(user)/.s...
CakePHP

[CakePHP]FormHelperの初期値

formhelperの日付指定の定義値を変更する場合、以下のようなコードを追加すると変更できる。 $this->form->options = array(); for ($i = 1 ; $i < = 12 ; $i++) { $this...
CakePHP

[CakePHP]NULLデータをコミットする

リストボックスなどで未選択の場合にデータとしてNULLを設定したい場合、空白のデータがなぜか"0"で保存されてしまいます。 この場合、modelのbeforeSave()メソッドで以下のような処理を行えば良い。 function befor...
PHP

住所文字列の分解

大量の住所データを扱う必要があり、どのようにすればよいかを調べてみた。 入力された住所の分解について mecabという日本語の形態素解析器を使う方法 正規表現でがんばってみる 日本の住所について xx丁目 ぐらいまで入っているものがあればよ...
Linux

CentOS5.6のPHPを5.2にする。

CentOS5.6はいまだにPHP5.1系を使っています。 そろそろ5.1系では動かないアプリも多いのでアップデートします。 vi /etc/yum.repos.d/utterramblings.repo name=Jason's Utte...
CakePHP

CentOS5.6でXdebug+EclipseでPHPデバッグ環境構築

作業効率化のために、長年の課題であったPHPでステップ 実行を可能にする設定を試してみた。 まず、firewallだのSElinuxだののセキュリティーがらみの設定は一旦OFFにしておくことをお勧めします。 xdebugのインストール #p...