[CakePHP] 独自メソッドによるバリデーションを使ってパスワード(再入力)の一致をチェックする

会員制サイトの会員登録画面では、ユーザにパスワードを2度入力させることで入力ミスを防止するUIを使うのが普通だ。

CakePHPでは、独自メソッドによるバリデーションの仕組みを使うことで、入力された2つのパスワードの一致を容易にチェックすることができる。

以下覚え書き的サンプル。

モデル

ビュー

[PHP] PDOではカラム名に変数をバインドできない

PDOで「出来ると思ってやってみたら実は出来なかった」ことがあったので覚え書き。

やろうとしたのはカラム名への変数のバインド。以下サンプル。

実際に試してみたら期待した結果が返らず。以下のように書き直したら期待通りになった。

ネットを検索したら以下の記事がヒットした。

参考サイト

y.okano blog: PHP: PDO ではカラム名に変数をバインドできない
http://yokano-jp.blogspot.com/2014/11/php-pdo.html

[インフラ] DCIMってなに?

データセンターに関係するネット上の記事でDCIMという用語を目にしたのだけど、意味がわからないので調べてみた。

DCIMってなに? | DCIMドットコム | データセンターをシンプルに。パウンドウィットDCIMポータルサイト
http://dcim-jp.com/01_dcim.html

DCIM(Data Center Infrastructure Management)とは、設備(ファシリティ)とITを統一して管理することでデータセンターの電力消費等、インフラの運用コストの最適化を行うためのプラットフォームの総称です。
DCIMは、データセンターを運用している管理者の皆様に設備データの「見える化」など様々な利益をもたらしてくれる次世代のツールでもあります。

DCIMとは(データセンター インフラストラクチャ マネジメント) – TOCOS-WIRELESS.COM
http://tocos-wireless.com/jp/tech/DCIM.html

DCIM(データセンター インフラストラクチャ マネジメント)に必要な機能
– データセンタ内にあるサーバー等の各機器の消費電力を測定する。
– ラック毎の温度、湿度を測定する。
– 空調の温度設定、風量、風向のモニターとコントロールをする。
– 主電源、バックアップ電源の状態のモニターとコントロールをする。
– 各機器の稼働状況の把握と異常の検出をする。

[ソフト] WMSX – オンラインMSXエミュレータ

なんか凄い。

WMSX
http://webmsx.org/

WMSX

ぶっちゃけ自分はMSXパソコンってほとんど使ったことは無かった。大昔にCGの映像制作システムの仕事をしていたとき、グラフィックスディスプレイからの信号をMSXパソコンで受けてベーカムのコマ撮り制御をする仕組みを映像機器メーカーのエンジニアが作っていたなーと思い出す程度。PCがかなり高価だった時代にMSXパソコンってオールインワンで廉価だったので、そういう用途にも向いていたのかもね。

[PHP] PDO::fetchColumn()でヒット件数を取得する

サンプルコードを書いて挙動を確かめてみた。

サンプルコード

参考サイト

PHP: PDOStatement::fetchColumn – Manual
http://php.net/manual/ja/pdostatement.fetchcolumn.php

[PHP] PDOでクラスをフェッチする場合のfetch()とfetchAll()の挙動

きちんと理解するためにサンプルコードを書いて挙動を確かめてみた。

サンプルコード

参考サイト

PHP: PDO::setAttribute – Manual
http://php.net/manual/ja/pdo.setattribute.php

PDO::ATTR_ERRMODE: エラーレポート
– PDO::ERRMODE_SILENT: エラーコードのみ設定する
– PDO::ERRMODE_WARNING: E_WARNING を発生させる
– PDO::ERRMODE_EXCEPTION: 例外を投げる

PHP: PDOStatement::fetch – Manual
http://php.net/manual/ja/pdostatement.fetch.php

PDO::ATTR_DEFAULT_FETCH_MODE: デフォルトのフェッチモード
– PDO::FETCH_ASSOC: は、結果セットに 返された際のカラム名で添字を付けた配列を返します。
– PDO::FETCH_BOTH (デフォルト): 結果セットに返された際のカラム名と 0 で始まるカラム番号で添字を付けた配列を返します。
– PDO::FETCH_BOUND: TRUE を返し、結果セットのカラムの値を PDOStatement::bindColumn() メソッドでバインドされた PHP 変数に代入します。
– PDO::FETCH_CLASS: 結果セットのカラムがクラス内の名前付けされたプロパティにマッピングされている、要求されたクラスの新規インスタンスを返します。 fetch_style に PDO::FETCH_CLASSTYPE が 含まれている場合 (例: PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE) は、最初のカラムの値から クラス名を決定します。
– PDO::FETCH_INTO: 結果セットのカラムがクラス内の名前付けされたプロパティに マッピングされている要求された既存インスタンスを更新します。
– PDO::FETCH_LAZY: PDO::FETCH_BOTH とPDO::FETCH_OBJの 組合せで、オブジェクト変数名を作成します。
– PDO::FETCH_NAMED: PDO::FETCH_ASSOC と同じ形式の配列を返します。 ただし、同じ名前のカラムが複数あった場合は、そのキーが指す値は、 同じ名前のカラムのすべての値を含む配列になります。
– PDO::FETCH_NUM: 結果セットに返された際の 0 から始まるカラム番号を添字とする配列を返します。
– PDO::FETCH_OBJ: 結果セットに返された際のカラム名と同名のプロパティを有する 匿名のオブジェクトを返します。

PHP: MySQL (PDO) – Manual
http://php.net/manual/ja/ref.pdo-mysql.php

PDO::MYSQL_ATTR_INIT_COMMAND: MySQL サーバーへの接続時に実行するコマンド

PHP: 定義済み定数 – Manual
http://php.net/manual/ja/pdo.constants.php

PDO::PARAM_BOOL (integer): ブールデータ型を表します。
PDO::PARAM_NULL (integer): SQL NULL データ型を表します。
PDO::PARAM_INT (integer): SQL INTEGER データ型を表します。
PDO::PARAM_STR (integer): SQL CHAR, VARCHAR, または他の文字列データ型を表します。
PDO::PARAM_LOB (integer): SQL ラージオブジェクト型を表します。

[PHP] PDOでクラスをフェッチする場合にコンストラクタが呼ばれるタイミング

PDO::fetch()でクラスをフェッチする場合の注意点。クラスのコンストラクタでインスタンスの初期化処理(たとえばメンバー処理の初期化など)をしている場合には注意が必要。

PDO::FETCH_PROPS_LATEを指定した時は、クラスのコンストラクタが呼ばれた後にプロパティに値がセットされる。

PDO::FETCH_PROPS_LATEを指定しないときは、クラスのプロパティに値をセットした後にコンストラクタが呼ばれる。

参考サイト

PHP – PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 – Qiita
http://qiita.com/k-holy/items/ce829a60cafe48bd1f81

[仕事術] 50日間付箋紙に絵を描き続けて気づいたこと

インスパイアされたので覚え書きリンク。

50日間付箋紙に絵を描き続けて気づいたこと : could
http://www.yasuhisa.com/could/article/sticky50/

付箋紙に何かを書き続ける「#sticky50」は、とにかく続けることを実践するための企画。仕事では味わえない付箋紙との関わりを通して、やっている本人しか得ることができない知恵や経験を得ることができたと思います。

以下のまとめが響いた。やった人にしかわからない。

続けないと分からないこと
– 質だけでなくスピードも変わる
– 考え過ぎず、まず動く
– 窓口を広げつつ緩い繋がりを作る
– 緩くても先導者は必要

自分もなにかしよう。

[CakePHP] マジックメソッド(findBy/findAllBy)の使い方

参考書を読んで初めて知った。知らずに損してた。

findAllBy

サンプル

findBy

サンプル

参考サイト

データを取得する — CakePHP Cookbook 2.x ドキュメント
http://book.cakephp.org/2.0/ja/models/retrieving-your-data.html

[仕事術] 完璧主義を辞めて仕事をスピードアップする方法

だよねーと思った記事があったので覚書リンク。生涯若輩者。

”見切り発車”の方が効率的って本当?完璧主義を辞めて仕事をスピードアップする方法 | U-NOTE【ユーノート】
http://u-note.me/note/47498996

新しい視点とチャンスは、行動すればするほど見つかる。「運がいい」といわれている人は、たくさん行動しているから、そのぶん幸運が舞い込んでくるということなのだ。

職場が少しでも、「完璧を目指すより、まず動くものを」という文化を受け入れられそうな世界なら、30点くらいの出来ばえでいいので、まずは周囲に働きかけてみてはいかがだろう。その後で完成度を80点、90点と高めていければいい。

決定のスピードをあげるために、社員が上司にお伺いを立てなくてもやれる範囲を広げていくというアプローチもある。部下が、「ここまでは私の裁量で判断していいですね?」ということを打ち出していくことで、状況を変えることができるかもしれない。