edo1z blog

プログラミングなどに関するブログです

2013-07-01から1ヶ月間の記事一覧

cakePHP Paginator ページ番号が大きすぎる場合のエラーの回避

検索ページでPaginatorを使っていると、3ページ目を表示している状態で、検索条件を変更した結果、3ページ目が存在しなくなり、Not Fountエラーが生じるといったことがありました。これはあんまりよろしくないので、Paginatorを確認しました。 queryではなく…

cakePHP Transitionプラグインのautomate関数の使い方

Transitionプラグインは便利ですね。ソースコードがかなりすっきりします。 セッションをつかって、ページ遷移と、ページ毎に入力された内容を記録してきれるので、ページ遷移チェックと、入力内容の取り扱いが楽になります。 さて、$this->Transition->auto…

capistrano 使い方メモ cakePHP

もう忘れていたのでメモ。。 まずはプロジェクト用のフォルダ(例:myapp)をつくります。 myappに移動します。 capifyします。 configディレクトリに移動します。 deployディレクトリをつくります。 mkdir myapp cd myapp capify . mkdir config/deploy tou…

cakePHP アソシエーションの一括save

アソシエーション: モデル同士を繋ぐ参考 PostモデルとTagモデルがhasAndBelongsToManyの関係にあるとき、Postを登録する際に、$this->request->dataが、下記にようになっていれば一括登録できるようだ。 $this->request->data = array( 'Post' => array( 't…

cakePHP HABTMのテーブルをJOINして検索する

postsとtagsはHABTMであるときに、tag_idの1か2をもつpostのみを抽出する場合、postsにposts_tagsをjoinして、更にtagsをjoinした上で、tag_idを条件に設定してfindする。 public function search(){ $this->Post->recursive = 0; $options = array( 'joins'…

Subversion cakePHPプロジェクトの作業コピーつくったら最初にやることのメモ

cakePHPのプロジェクトのリポジトリをつくって、作業コピーをつくったらignore設定とか色々あるので、メモする。いつもignoreを微妙に忘れるし。 subversionのチェックアウト svn checkout svn+ssh://user@host . 作業コピーが終わってからの作業のshをつく…

SSH (Secure SHell) の仕組み

SSHとは、ネットワークを介して他のコンピュータに安全にアクセスする仕組み。 telnetは暗号化されてないので盗聴の危険性があるが、sshは暗号化されているので安全。 SSHはRSA暗号方式かDSA暗号方式のどちらかで暗号化した公開鍵と秘密鍵のペアを用いる。公…

便利すぎるPhpStormのXdebug

printデバッグ離れできるようになるために試してほしいPhpStorm+Xdebug用例集(1)参考 これ読んで感動した。 ・variablesからwatchesにはドラッグアンドドロップで移動できる。 ・関数を実行した結果も、watchesで監視できる。 ・ブレーク中に任意のPHPコード…

Xdebugの設定 XAMPP mac

Mac OS X 10.5 + XAMPP で xdebug を有効にする参考 php.iniにXdebugを有効化する為の記述を追加 [xdebug] zend_extension="/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/xdebug.so" xdebug.remote_enable=1 xde…

PHPUnitの勉強

PHPUnitでユニットテスト (1/3)これ見ながら勉強。 ・テストはテストケースと呼ばれるクラスで、メソッドの中にアサーションという比較処理を書く。 ・PHPUnit_Framework_TestCaseというクラスを継承してテストケースクラスをつくる。 ・テストするクラスの…

PHPUnitのインストール XAMPP MAC

PHPUnitのインストールで激はまり。色々やったけど結局PHPUnitは使えなかった。最初からやってみる。 結果インストールできた。しかし色々有りすぎて全部ブログに書くのはめんどくさい。 XAMPPのpearの場所は、/applications/xampp/xamppfiles/bin。 .bashrc…

PhpStorm ショートカットキー

KyeMap は Mac command + j -> Live templates command + k -> VCS commit command + q -> 終了 command + n -> 新規作成 command + l -> 行番号にジャンプ command + m -> 最少化 command + x -> 行切り取り command + d -> 現在の行を複製 command + e -> …

PhpStormの設定

PhpStormの設定です。 ・ファイルの拡張子のひも付け Preferences -> File Types ・Live Templates Preferences -> Live Templates ・JavaScriptデバッガー Run -> Edit Configurations で、Javascript Remort Debugを追加し、URLを入れる。 (http://localho…

phpstorm

phpstorm入れてみた。 30日間無料トライアルで。 これから色々いじってみるが、phpStormにはテーマがあって、 http://www.phpstorm-themes.com/などで、各種テーマをダウンロードできるようだ。 でも、どうやってダウンロードしてインストールするのかわから…

PHP 翌年同月末日を出す

/** * 1年後の同月末日を返す関数 * @param DateTime $date * @return string $one_year_later_last_day (Y-m-t) */ private function get_one_year_later_last_day($date){ $year = $date->format('Y') + 1; $month = $date->format('m'); $one_year_later…

cakePHP2.3 Filebinderのパスをベタうちしない

アイテムを登録するときにアイテムの画像も一緒に登録したいときはFilebinderの出番なのですが、Filebinderはモデルにパスを登録するのですが、ベタうちしたくない場合(ベースとなるパスをコントローラーからもモデルからも参照できる1カ所に書きたい場合…

Vim 使い方

x #文字を消す r #文字を入れ替える i #挿入モード dd #行削除 0 #行頭移動 $ #行末移動 :0 #1行目に移動 :$ #最後の行に移動 :w #ファイル保存 :q #終了 :wq #保存して終了 :w! #強制保存 :q! #強制終了 /hogehoge #ファイル内検索(hogehogeを探す) n #…

subversionのコマンド

リポジトリの作成 svnadmin create --fs-type fsfs MyNewRepositor 追加 svn add 一括追加は、svn st | grep '^\?' | sed -e 's/\?[ ]*/svn add /g' | sh リポジトリから作業コピーをチェックアウト svn checkout (svn co) コミット svn commit (svn ci) コ…

Capistranoの情報

capistrano/capistrano Ruby初心者のCapistranoデプロイ入門 CakePHP2アプリケーションをCapistranoでデプロイする はじめてのCapistrano Capistranoでデプロイする Capistrano(カピストラーノ)でPHPプロジェクトをデプロイ カピストラーノ(Capistrano)を…

cakePHPの開発環境自動化のことが沢山かいてあるブログ

http://www.ryuzee.com/contents/blog/category/php

Linux CentOS コマンド

コマンドの強制終了 control+c ディレクトリ作成 mkdir ファイルの移動 mv ユーザ切り替え su (ユーザ指定しないと管理者権限に切り替え) オンラインマニュアルの参照 man (強制終了はcontrol+z) phpのバージョン確認 php -v パッケージを取得してインスト…

cakePHP2.3 $this->Model->createについて

微妙な投稿ですが、覚え書き。 Jobモデルというのがあったとします。 $this->Job->create()をした直後に、 $this->Job->field('id')とやったら、30と出てきてびっくりしました。 idは設定されてないから空っぽじゃないのか??と思ったのであります。 どうや…