初めまして、趣味でwebエンジニアをやってるニートこと、もがたろうです。
今日で左第五中足骨骨折歴1ヶ月になりましたので記念に記事を書いてみました。
僕がどのように骨折したのかは最後に書いていますので、気になる方は大変お手数ですが、文末までスクロールをお願いします。
気にならないって?
ですよね。
初めましてと言いましたけども、なんやかんやで実は左第五中足骨骨折する2年9ヶ月前に1つ目の記事を書いています。
でも骨折して生まれ変わったので初めましてです。
自己紹介として僕のスキルレベルを公開します。
松葉杖歴: 10ヶ月、骨折歴: 10ヶ月、左外果剥離骨折: 9ヶ月、左第五中足骨骨折: 1ヶ月、片松葉: 6ヶ月
うーん、まだまだ初心者って感じですね。骨折してから雨の日に1度転んで悶絶しましたしね。精進します。。
最近は松葉杖で歩くときに、肩甲骨を寄せて加速する、エクストリームバーストという技の練習しています。
さてさてところで、閑話休題。
みなさんはこんなコードを見てどう思うでしょうか。
CakePHPのビューです。
ニートの癖に昨日は夢の中で仕事していました。
バリデーションチェックに失敗して登録できない不具合があったので、問題のコードを見たらこんなコードが書かれていました。
決して現実で起きたことではないです。断じて!絶対!
<div style="display:none;">
<?php
echo $this->input('hoge', array(
'type' => 'text',
'name' => 'hoge',
// 'value' => $hoge,
'disabled': !empty($hoge) ? true : false,
))
?>
<p>※初回の登録以外で変更が必要な場合はサポートセンターにご連絡〜みたいなこと書いてる</p>
</div>
$hogeはコントローラーから渡されるデータベース上の値なんだな。
$hogeが既にデータベースに存在する場合はdisabledにするんだな!
disabledの謎の三項演算子は置いておきましょう。冗長なのはもはやどうでもいいんです。
display:noneってことは、jsで表示したりしなかったりするのかな??
あれ、jsで何か操作してる記述が見当たらないぞ、、なぜだ、、、どこにあるんだ!!!!ワンピースはどこにあるんだああああ!!!
もしかして、サポートが現場で開発者モードでdisplay:noneを消して値を入れるのかな?
むむっ!!!
valueのコメントアウトは何だ??
これじゃ、display:noneを書き換えても元のvalueの値がわからないぞ??
まるで夢のようなコードです。
まあ夢の中で僕が書いたコードですからね!!決して僕以外の誰かが書いたわけじゃない!断じて!絶対!
あなたはこのコードの意図はわかりましたか?
正解は、、
hogeというinput要素を見えなくしてください!という指示があったみたいです。
valueのコメントアウトは、$hogeが機密情報なので、開発者モードでも見えなくしてという指示があったからみたいです。
なるほど、とても素直で素敵だと思います。
皆さんもそう思いますよね?
そう思ってください。
なんせ、この僕が夢の中で書いたんですからね!!
ただ、、
1つだけ言いたい、言わせてください。
指示があったら、その意図を汲み取るか、汲み取れなかったら質問しましょう。
そして、それに対して何をすればいいか考えましょう。
何故このテキストフォームを見えなくするのか考えましょう。
valueを見えなくするには、確かにコメントアウトでも見えなくなるけど、そのした場合にどうなるのか考えましょう。
- 質問1: フォームを見えなくするというのはdomからの削除でしょうか、非表示でしょうか。
- 回答1: 削除です。
- 質問2: フォームを削除する場合、初回登録もサポートがDBに直接データを入れることになると思いますが、問題ないでしょうか。また、サポートに連絡の旨の注意書きもなくなりますがどこかに記述などは必要でしょうか。
- 回答2:問題ないです。 必要ないです。
これだけ聞けば、あとは簡単ですね。
フォーム自体を消せば当然valueはそもそも見えなくなります。
コントローラ側の登録処理も消しましょう。
なお、初回の登録以外の場合はDOMにも表示しないという場合は、現実の僕ならphpでif文で条件分岐を書いて、$hogeがある場合は、スタイルはinputのdisabledの背景色のpタグで、<p>*******</p>
みたいなのを置くと思います。
$hogeがない場合は、input要素でdisabledになることはないのでdisabledは外します。
「※初回の登録以外で変更が〜」の注意書きは条件分岐の外側に出します。
皆さんならどう実装しますか?
もがたろうは走った。えい、えいと大声挙げて自身を叱りながら原付で走った。
村を出て、野を横切り、森をくぐり抜け、ほっとした時、突然、目の前に一体の自転車が躍り出た。
一時停止線があるにも関わらず、雨にも負けず、その女の子は路地から飛び出してきた。
携帯見ながら飛び出してきた。
「気の毒だが正義のためだ!」
もがたろうはハンドル切った。フロントブレーキも目一杯かけた。
金太回った金太回った。縁石にぶつかり骨折した。
セリヌンティウスよ、ゆるしてくれ。
セリヌンティウス、私は走ったのだ。君を欺くつもりは、みじんも無かった。
ああ、もういっそ、悪徳者として生き伸びてやろうか。村には私の家が在る。羊も居る。妹夫婦は、まさか私を村から追い出すような事はしないだろう。正義だの、信実だの、愛だの、考えてみれば、くだらない。人を殺して自分が生きる。それが人間世界の定法ではなかったか。ああ、何もかも、ばかばかしい。