CakePHP ブラウザからのユニットテスト実行でNoticeが出て結果の表示がおかしくなる
Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in /vagrant_data/vendor/cakephp/cakephp/lib/Cake/TestSuite/Reporter/CakeHtmlReporter.php on line 143
こんなNoticeが出てヘッダやらフッタが表示されなくなり、ハマったのでメモ。
原因は、PHPUnitのバージョンを最新の4.8.6にしていたため。3.7.38にしたら解決した。
本家にちゃんと書いてあったというオチ。
テスト — CakePHP Cookbook 2.x ドキュメント
Composer でのインストール
PHPUnit の最新バージョンは、 今のところ cake では動作しません:
"phpunit/phpunit": "3.7.38"
Knockout.js フォーム入力中に Enter キーでファンクション実行
検索ボックスなどで、入力中に Enter キーで検索を実行したいけど、submitではやりたくない場合などに。
<input type="text" placeholder="検索ワード" data-bind="textInput: query, event: {keypress: search}">
inputのdata-bindにtextInputを使うのがポイント。valueでのバインドだと一回目空で渡ってしまう。
function AppViewModel() { var self = this; self.search = function(d,e){ // enterキーを拾う if (e.keyCode === 13) { // 何か処理 } return true; }; } ko.applyBindings(new AppViewModel());
eclipseが起動の途中で止まったときにした対処
環境は、OSX 10.9.5、eclipse 4.4。 eclipseを起動すると、「org.eclipse.mylyn.tasks.ui」のところで止まったままとなり、起動しない。
こうなると強制終了するしかない。 「eclipse -clean」して起動してみるも状況は変わらない。
引っかかっているmylyn関係のファイルを削除しても改善しない。
$ rm -rf workspace/.metadata/.plugins/org.eclipse.mylyn.tasks.ui $ rm -rf workspace/.metadata/.plugins/org.eclipse.mylyn.bugzilla.core/ $ rm -rf workspace/.metadata/.plugins/org.eclipse.mylyn.bugzilla.ui/ $ rm -rf workspace/.metadata/.plugins/org.eclipse.mylyn.context.core/
で、いろいろ試していたところ、「.snap」となるファイルをリネームしたら無事起動するようになった。
$ mv workspace/.metadata/.plugins/org.eclipse.core.resources/.snap workspace/.metadata/.plugins/org.eclipse.core.resources/snap_back