2012年11月30日金曜日

fuelPHP導入マニュアル俺メモ


[前提条件]

  1. MAC環境でのマニュアルである
  2. fuelPHP1.4を使用したマニュアルである
  3. MAMPのインストールと環境設定が完了している
  4. エクリプスのインストールと環境設定が完了している
  5. PDTがインストールされている
  6. MakeGoodがインストールされている
  7. PHPUnitがインストールされている
  8. Gitがインストールされている
  9. curlがインストールされている
  10. oilがインストールされている
  11. ここまでの参考文献:初めてのフレームワークとしてのfuelPHP
  12. エクリプス用のGitプラグインEGitがインストールされている
  13. 「~/work/」配下に「hoge」という名前のプロジェクトを作成するマニュアルとする
  14. 前提条件が多いからとあきらめないこと。あきらめたらそこd(ry

[導入マニュアル目次]

  1. fuelPHPのインストール
  2. MAMPからアクセス出来るようにシンボリックリンクを作成する
  3. ブラウザでの接続確認
  4. エクリプスにプロジェクトをインポートする
  5. 「hoge/docs」フォルダをプロジェクト用のフォルダに改造する(改造するより別途docs_devとかを掘ったほうが良さげです)
  6. config.phpの変更
  7. 自動補完の設定
  8. MakeGoodの設定
  9. MakeGoodの設定確認
  10. Goutteのインストール
  11. セッションの保存先をcookieからdbへ変更する
  12. fuelPHPのGitコミットログをまとめる(工事中)
  13. Bitbucketへpushする
  14. Bitbucketからcloneする

[導入マニュアル]

1.fuelPHPのインストール

$cd ~/work
$oil create hoge

2.MAMPからアクセス出来るようにシンボリックリンクを作成する

「/Applications/」にMAMPがインストールされている場合
$cd /Applications/MAMP/htdocs/
$ln -s ~/work/hoge/public hoge

3.ブラウザでの接続確認

ブラウザ(safari、chrome等)を起動してhttp://localhost/hoge/にアクセスする。
次のようなwelcome画面が表示されればOK
fuelPHPのインストール完了確認スクリーンショット

4.エクリプリスにプロジェクトをインポートする

 4.1.エクリプスを起動する
 4.2.メニューからimportを選択
エクリプスにプロジェクトをインポートするメニューのスクリーンショット

 4.3.Projects from Gitを選択してNext>をクリック
Gitのプロジェクトをインポートするメニューのスクリーンショット

 4.4.Localをダブルクリック
ローカルのプロジェクトをインポートするメニューのスクリーンショット

 4.5.右上のaddボタンでhogeを追加後選択してFinishをクリック

プロジェクトフォルダを選択するメニューのスクリーンショット

 4.6.PHP Projectを選んでNext>をクリック
プロジェクトの言語を選択するメニューのスクリーンショット

 4.7.Create project at existing location (from existing source)を選択し、Browserボタンからhogeを選択語Finishをクリック
既存のプロジェクトを選択するメニューのスクリーンショット

5.「hoge/docs」フォルダをプロジェクト用のフォルダに改造する

「hoge/docs」にfuelPHP関連のドキュメントが置かれているが特に必要ないので中身を削除してプロジェクト用のドキュメントを配置出来るようにする。
$cd ~/work/hoge
$git rm --cached docs
$rm -rf docs
$mkdir docs
$touch docs/.gitkeep
gitで管理したくないドキュメントがある場合は「docs/.gitignore」ファイルを作成し追加する。

6.config.phpの変更

「fuel/app/config/config.php」を次のように変更する。


7.自動補完の設定

「hoge/fuel/app/_autocomplete.php」を作成する。
内容についてははじめてのフレームワークとしてのfuelPHPを参照

8.MakeGoodの設定

8.1.fuel/core/bootstrap_phpunit.php」
  「fuel/app/bootstrap_makegood.php」にコピーして変更する。
内容についてははじめてのフレームワークとしてのfuelPHPを参照

 8.2.hogeのプロジェクトフォルダを右クリックしPropertiesをクリックする。
プロジェクトのプロパティ設定画面を起動するメニューのスクリーンショット

 8.3.MakeGoodを選択して次のように設定してApplyをクリック
MakeGoodの設定をする画面のスクリーンショット

8.4.PHP Include Pathを選択して次のように設定してFinishをクリック
includeパスの設定をする画面のスクリーンショット


 9.MakeGoodの設定確認

9.1.「fuel/app/tests/makegoodsetup_Test.php」を作成し次のコードを記述する。

 9.2. makegoodsetup_Test.phpを右クリックし、[全てのテストの実行]をクリックする。
テストを実行するメニューのスクリーンショット

 9.3.MakeGoodの結果が次のようになればOK
テスト結果のスクリーンショット

10.Goutteのインストール

$cd ~/work/hoge
$git submodule add git://github.com/fabpot/Goutte.git fuel/app/vendor/Goutte

11.セッションの保存先をcookieからdbへ変更する。(※別途DBの設定が必要)

デイフォルトのセッション保存先がcookieになっていますが、容量不足でエラーになる場合があるので保存先をDBへ変更します。
 11.1.「fuel/core/config/session.php」を「fuel/app/config/」にコピーして編集する。
 11.2.oilコマンドでセッション保存用テーブルを作成する。
 $cd ~/work/hoge
 $oil r session:create

12.fuelPHPのGitコミットログをまとめる

fuelPHPの開発コミットログは邪魔なので一つにまとめる
(工事中)

13.Bitbucketへpushする

13.1.Bitbucketにリポジトリを作成する

 13.2.commitする
 $git add --all
 $git commit -a -m 'message'


 13.3.「hoge」をpushする
 $git remote set-url origin https://dummy@bitbucket.org/dummy/hoge.git
 $git branch -m 1.4/master master
 $git push -u origin master

14.Bitbucketからcloneする

cloneした後サブモジュールをインストールする必要がある。
$cd ~/work
$mv hoge hoge_old
$git clone https://dummy@bitbucket.org/dummy/hoge.git
$cd hoge
$git submodule init
$git submodule update





このエントリーをはてなブックマークに追加

2012年11月26日月曜日

HTMLでtree構造を表現するサンプル

HTMLでツリー構造を表現するためのサンプルです。
.htmlファイルにコピペしてください。

a
  
 1
aa
  
 2
aaa
  
 3
aaaa
  
 4
aaa
  
 5
aa
  
 6
aa
このエントリーをはてなブックマークに追加

2012年11月12日月曜日

unable to dequeue a cell with identifier Cell - must register a nib or a class for the identifier or connect a prototype cell in a storyboard

xcode4.5以降でUITableViewのdelegateメソッドが自動生成されると、このエラーが出る場合があります。
原因は

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{]
内に自動生成されたコードに
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

が記述されているからです。
このメソッドはiOS6.0以降でないと使用できません。
なのでiOS6.0未満も対応しているアプリではエラーとなってしまいます。

◎解決方法
従来の
- (id)dequeueReusableCellWithIdentifier:(NSString *)identifier; 
を使用するだけで解決します。

このエントリーをはてなブックマークに追加

2012年11月8日木曜日

xcodeプロジェクトをgitで管理する際に無視させるディレクトリとファイル


.DS_Store
*.xcodeproj/*.mode1v3
*.xcodeproj/*.pbxuser
*.xcodeproj/*.xcworkspace
*.xcodeproj/xcuserdata/
*.xcworkspace/xcuserdata/
build/
.svn/
*.swp
*.nib
Thumbs.db
*.[oa]
*~
*.bak





◎無視させるようにする手順

  1. ターミナルを起動する
  2. $git config --global core.excludesfile $HOME/.gitexclude
  3. .gitexcludeファイルに無視するディレクトリやファイルを記述する

※上記の方法で無視させた場合、環境依存になってしまう(MAC毎に設定が変わってしまう)為、プロジェクト毎に.gitignoreを配置するのが良いでしょう

このエントリーをはてなブックマークに追加

2012年11月5日月曜日

Git逆引きリファレンスぅ


◎変更内容を全て破棄する

全ての変更内容(ステージと作業フォルダ)がHEADつまり最新のコミット内容に置き換わります。
--hardオプションをつけることで作業フォルダの内容も対象となります。
つまり「git reset HEAD」とした場合ステージ(index)の内容だけが最新のコミット内容に置き換わります。

◎ディレクトリ(フォルダ)配下をGitで管理出来るようにする

Gitで管理したいディレクトリへ移動して本コマンドを実行することで、配下の全てのフォルダ及びファイルを管理する必要最低限の準備が整います。
※1 本コマンドを実行後に管理対象とするフォルダ及びファイルを指定する必要があります。

◎ディレクトリ(フォルダ)配下の全てのディレクトリ及びファイルをステージ(index)に追加する

Gitで管理したいディレクトリへ移動して本コマンドを実行すると、配下の全てのファイルをGit管理下に置く事が出来ます。 addは変更内容を追加するようなイメージです。
※1 .gitignore によって無視されているファイルは無視されます。
※2 --updateの機能も同時に実行されます。

◎作業フォルダ配下の全ての追加・変更・削除をステージ(index)に登録する

ここでいう作業フォルダとは.gitがあるフォルダで、「git init」を実行したフォルダを示します。 「$ls -a」で.gitを確認する事が出来ます。 ※1 「git add -A」でも同じ事が可能

◎ディレクトリ(フォルダ)を指定してステージ(index)に追加する

addはステージ(index)に変更内容を追加するようなイメージです。これを「ステージする」とか「ステージング」といいます。
新しいファイルを追加するという変更内容を追加しています。
※1 「git add .」でカレントディレクトリを指定出来ます。

◎メッセージを付加して変更内容を保存する

git add等での変更内容は実際には一時的な記録(スナップショット)でしかありません。
この一時的な記録場所をindex(索引)又はstage(ステージ)といい、記録することを「ステージ(stage)する」とか「ステージング」といいます。
indexの内容(stageされた変更内容)を履歴に保存するのがcommitです。commit先はリポジトリといいます。

◎コミットIDとメッセージだけのシンプルなlogが見たい

◎コミットIDを指定して内容を比較する

◎変更内容(削除も含む)をステージ(index)から復活させたい

◎変更内容(削除も含む)をリポジトリ(履歴)の最新から復活させたい

※1 ステージ(index)の内容は破棄されます。

◎最新コミットの筆者をリセットする

◎作業フォルダの変更内容を維持したまま最新コミットを取り消す

◎commitとaddを同時に行う

「-a」のオプションを付加する事で、ステージ(index)にあるファイルの変更が更新(git add)されてさらにコミットされます。
※1 ステージ(index)に無い(git addされていない)ファイルはコミットされません。

◎必要のないディレクトリやファイルをgit addしてしまった

◎前回のコミットメッセージを編集したい

--amendオプションを付加すると新しい履歴は追加されずにHEADのコミット内容が上書きされます。
※1 ステージ(index)内容が変更されていた場合それもcommitに含まれてしまいます。

◎ステージ(index)の変更内容を取り消す

※1 「git reset」でも同じ事が可能

◎ファイル名を変更したい

変更した後はコミットしないとリポジトリには反映されません。

◎ステージ(index)からファイルを削除する

--cachedオプションを付加するとステージ(index)が対象になります。
当然ながらリボジトリに反映させる為にはcommitする必要があります。

◎最新のコミットから特定のコミットを削除して最新コミットとする

逆マージというやつです。本コマンドの場合は逆マージしてさらにコミットまで実行されます。 なので複数コミットの場合は使用出来ません。

◎複数コミットの逆マージ

この時点で のように表示されるので と修正して
:wq
コミットメッセージ編集画面が起動したらメッセージを編集して
:wq

◎rebaseを中止する

◎共有リポジトリを作成する

◎ブランチを作成する

◎ブランチを切り替える

◎リモートリポジトリのブランチを削除する

◎日本語ファイルの文字化けを解消する

◎GitコマンドをTabで補完できるようにする

本コマンドは一回実行すれば次回login時も有効になっています。

◎ステージ(index)の中身が見たい

◎サブモジュールを削除したい

◎リポジトリとステージされた内容(インデックス)のdiffを取りたい

◎ブランチAのコミット内容を現在のブランチへマージする

◎ブランチの作成と新しいブランチへの切り替えを同時に行う

◎ブランチAを削除する

◎設定(Config)の一覧が見たい

◎現在のブランチにマージ済みのブランチ一覧を表示する

◎現在のブランチに未だマージされていないブランチ一覧を表示する

◎HEADとは

HEAD はあなたが作業しているローカル(カレント)ブランチの最新のコミットを指し示します。

◎リビジョンを指定してブランチを作成する

◎gitkで全体のグラフを表示したい

◎マージを中断したい

このコマンドによりステージと作業領域の状態が最新のコミット内容で強制的に上書きされます。

◎git pull だけでカレントブランチのpullを実行したい

$git pull
を実行すると次のようなエラーが出る場合 トラッキング先を設定することで
$git pull
でpullすることが出来るようになります。 トラッキングを設定すると$git push、$git pull、だけで実行出来るようになります。

◎gitでプロジェクトをエクスポートする

フォルダ名/配下にエクスポートされてファイルパス.zipが作成される
※フォルダ名/のスラッシュを忘れないでね


このエントリーをはてなブックマークに追加

/Applications/MAMP/Library/bin/mysqld: unknown variable 'default-character-set=utf8'ってエラーが出た

MACにMAMPをインストールしたけれどmysqlが起動してくれません。
/Applications/MAMP/logs/mysql_error_log.err
の内容を確認してみると、
121105 19:26:44 [ERROR] /Applications/MAMP/Library/bin/mysqld: unknown variable 'default-character-set=utf8'
こんなエラーが出てました。
どうやら以前インストールしたmysqlの設定で/etc/my.cnfに
[mysqld]
 default-character-set   = utf8
を追加したのですが、mysql5.5から表記が変わったようです。
[mysqld]
character-set-server   = utf8

に修正したら無事にmysqlが起動できました。
このエントリーをはてなブックマークに追加

2012年11月2日金曜日

UIWebViewにJSONデータを渡す with jQuery

jQueryを使用すればUIWebViewにJSON形式のデータを読み込ませることが簡単にできます。
手順はこちら

  1. NSString型のJSONデータを用意する。
  2. UIWebViewのjavascript実行メッソッドを呼ぶ。
  3. jQueryのパースメソッドを使用して文字列型のJSONデータをオブジェクトに変換する。

◎各ステップのサンプル

◎ポイント

  1. 「NSString stringWithFormat:@"loadJSON('%@');",」の%@シングルクォーテーションで囲む。
このエントリーをはてなブックマークに追加

iphoneシミュレーターで現在位置を変更したい

iphoneシミュレーターの現在位置は初期設定だとアメリカになっています。
現在位置はiphoneシミュレーターのメニューから変更することが可能です。
iphoneシミュレーターの現在位置を変更するスクリーンショット
このエントリーをはてなブックマークに追加