2018-02-01から1ヶ月間の記事一覧
引用ですが コントローラー名 $this->name アクション名 $this->action Webroot $this->webroot 現在のURL $this->here Layout/common.ctp if($this->action == 'hoge') { echo $html->css('hoge'); } 参考 CakePHPでコントローラーやアクションごとにCSS&js…
要所のみ。 JSでimgタグの数を拾ってきて、一つずつ読み込む。 読み込んだらそれをProgressBarのWidthとして吐き出していく。ProgressBarのCSSは適当に色をつけておけば、画像をすべて読み込み終わった時点でLoadingが消える。 HTML <div id="loading"> <div class="logo"> <img src="img/loading.png"> <div class="bar"> <span></span> </div> </div> </div> JavaScript /* *…
Webサイトやアプリなどへ複数人によるリアルタイムコラボレーション機能 Mozilla Labs : TogetherJS グリッドレイアウトを究極にカスタマイズできるライブラリ Muuri - Responsive, sortable, filterable and draggable grid layouts 参考 面倒な作業不要で…
自分だけのサーバを適当にいじくり回していたが、 遂に他の人にも特定のディレクトリをいじくり回してもらうことになった。 もちろん自分の秘密のディレクトリはディレクトリ名すら見られたくないので上階層は移動もできなくしたいし、 ログインしたら他の人…
OAuth概要 SNS連携の場合OAuthというセキュアにAPIを承認するためのプロトコルを使用する。 アプリケーションの登録 Twitterの場合、CallbackURLを指定しないと自動的にクライアントアプリケーションとして認識されてしまい、 ブラウザアプリケーション用の…
パフォーマンス計測してボトルネックを探す ボトルネックの調査 計測方法 Xdebug、XHProfなどが代表的だが少し慣れがいるのと、PHP拡張インストールも必要なため、 簡易的に実行時間を記録するBenchmarkコンポーネントを作成、利用する方法もある。public $c…
動作環境の切り替え テストと本番環境によってDB情報などが違うことはよくある。 その時に設定情報をできるだけ簡単に切り替える方法のイロハ。 ホスト名による切り替え $_SERVER['SERVER_NAME'] の利用 ※簡単だが、コンソール、シェルを使用した場合はホス…
この本を読んでいて役立ちそうなコラムがちょくちょくあるのでここに書いて置く。 アクションごとにモデルを作る モデルが肥大化するのは特性として仕方のない事ではあるが、 出来るだけ肥大を避けたい場合はアクションごとに切り分けて作成した方が良い。 1…
代表的な攻撃 SQLインジェクション DBに対して外部から任意の操作を許してしまう問題。select * from users where email='a@example.com' and pass='pass01' limit 1; に対してフォームから email : a@example.com pass : pass01' OR 1=1 (最後に半角スペー…
ユニットテストとは 単体テストのこと。 「手動」ではなく、テストコードを書いて「自動的」かつ「正確」にテストできる仕組み。 テスティングフレームワーク PHPUnitインストール $ pear upgrade PEAR $ pear config-set auto_discover 1 $ pear install pe…
あまり使う用途が想像できないwけどせっかくなので流し読みした結果だけ。 コンソールとは CUIを使って実行するアプリケーションを作る仕組みのこと。 コンソールから実装可能なアプリケーションをシェル。 シェルの間で共通の処理をタスクという。 bakeも…
よく使うプラグイン3選DebugKit デバッグバーを表示Search plugin 検索機能追加MigrationsPlugin データベースのスキーマ機能をバージョン管理 プラグインの自作 bakeコマンドで自動スケルトン作成がおすすめ 1.app/Plugin/ 2.Plugin/ のどちらの配下に作る…
メールヘッダインジェクション対策 登録フォームでメール、所属を入力してもらい、 それをそのままメールヘッダに入れるプログラムの場合。 改行コードが入ると勝手にCCアドレスも入力できちゃったりする。通常Cake側で自動処理して欲しいところだが、 CakeP…
コンポーネント Controllerで同じ処理を行う時、コンポーネントとして外に追い出して共通利用する ビヘイビア Modelで同じ処理を行う時、複数モデルが関連するときに取得する範囲を設定する (パフォーマンスの低下を防ぐ) ヘルパー Viewで複雑な処理を行う…