pneskin2.nekoget.comの移転作業をしています。

pneskin2.nekoget.comの移転作業をしています。
ずっと自宅サーバで運用してきたpneskin2.nekoget.comですが、
現在vpsサーバへの移行作業をしています。
私のわがままから、ゆっくりとしたペースで移行しているため、
使えなくなったまま数日が経過しているサービスもあります。
もうこのまま復旧させないものも出てくるかと思います。
ゆっくりとお待ちいただけると幸いです。

FuelPHPのOrm

FuelPHPのOrmの使い方がよくわからないというtweetを見かけたので、テストコードの一部をさらします。

DBの設定はこんな感じ

CREATE TABLE IF NOT EXISTS <code>news</code> (
  <code>news_id</code> int(11) NOT NULL AUTO_INCREMENT,
  <code>news_title</code> varchar(255) NOT NULL,
  <code>news_text</code> text NOT NULL,
  <code>news_created_at</code> datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  <code>news_updated_at</code> datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  PRIMARY KEY (<code>news_id</code>)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


INSERT into news 
values(NULL ,"タイトル" , "本文" , "2012-07-07 00:10:00 11:11:11", "2012-07-07 00:10:00 11:11:11");

テストコード。

function setUp()で行っているのは、
DBのリストア処理です。
Model_Newsをテストしているコードになります。

<?php

/**
 * @group App
 */
class Test_Model_News extends TestCase
{
		function setUp()
		{
			$com = "mysql -uroot -pパスワード news_test  <"
				.dirname(__FILE__)
				."/sql/reset.sql";
			system($com);
		}
		/*
		 * 1レコードインサートする
		 */
		public function test_insert()
		{
			$news = Model_News::forge();
			$news->set("news_title" , "タイトル2");
			$news->set("news_text" ,  "本文2");
			$news->set("news_created_at" , date("Y-m-d H:i:s"));
			$news->set("news_updated_at" , date("Y-m-d H:i:s"));
			$insert     = $news->save();
			$insertdata = $news->to_array();
			$this->assertEquals($insertdata["news_id"], 2);
			
		}
		
		/*
		 * update
		 */
		public function test_update()
		{
			$news_1 = Model_News::forge();
			$news = $news_1->find(1);
			$news->news_title      = "タイトル更新";
			$news->news_text       = "更新本文";
			$news->news_updated_at = date("Y-m-d H:i:s");
			$ck = $news->save();
			$this->assertTrue($ck);
			$news_2 = $news->to_array();
			$this->assertEquals($news_2["news_title"] , "タイトル更新");
		}
		
		/*
		 * delete
		 */
		public function test_delete()
		{
			//news_idが1のレコードを削除します。
			//成功するとtrueが戻ります。
			$news_1 = Model_News::forge();
			$news = $news_1->find(1);
			if($news)
			{
				$ck = $news->delete();
			}
			$flg = null;
			if($ck)
			{
				$flg = true;
			}
			$this->assertTrue($flg);
			// news_idが1を検索して、NULLが帰ってくる事を確認。
			$news_2 = Model_News::forge();
			$news   = $news_1->find(1);
			$this->assertNull($news);
		}
}

Symfony勉強会 #6 に参加しました

Symfony勉強会 #6 に参加しました。
会場提供いただきました、 VOYAGE GROUP様、
そして運営スタッフの皆様、講師の皆様、
当日お会いした皆様、ありがとうございました!
http://www.zusaar.com/event/306001

togetter
http://togetter.com/li/330883

@brtriverのセッションより。
Zombie.jsとvowsを使って、viewのテストをすると良い。
node.jsからの技術。Seleniumより断然早い場合が有るとのこと。
環境を作って試してみます。
(自分用資料程度になると思いますが、試してみた結果は公開したいと思います。)
vowsからZombie.jsを実行するかたちで利用すると良いという話でした。
坊主がゾンビを打つというのは、なんだか妙に納得です。

★BEAR.Sundayと勉強会開催決定のこと。
夢にまで見た、BEAR.Sunday勉強会! 開催決定となりました。
開催時期や内容についてはこれからつめ始める感じです。
Symfony勉強会 #6での、@koriym師匠
の白熱したセッションの続きを切望されている方々たくさんいらっしゃる事と思います。@brtriverさんに背中を押されつつ(無茶ぶりとも言いますが)、LTのかたちで、@koriym師匠にお願いをしたところ、快く引き受けてくださいました。
BEAR.Sundayがメインの、思想からどっぷりとハマれるBEAR.Sunday勉強会!
楽しみすぎて、今からドキがムネムネです!

★ 運用中のサービスのフレームワークのバージョンアップどうする?
運用中のサービスで使用してるフレームワークが、バージョンアップしている場合、運用中のサービスのコードを最新のフレームワークに更新するべきか否か?という大きな課題。
Symfony1で運用しているサービスを、Symfony2にすべきか?
Symfony2にするそのコストは捻出できるのか?
といった事が話題となっていました。これはSymfonyに限らず他のフレームワークでも言える事で、悩ましいです。

☆感想☆
普段の私はCodeIgniterを使っていますし、
symfonyについてはあまりよく知らない訳ですが、
勉強会にはできるだけ出たいと思っています。
今回テーマ
「フレームワークに縛られない技術とそれを実践している一歩先ゆくエンジニアたちの声」 に触れる事ができた貴重な時間でした。

今はFuelPHPとBEAR.Sundayを勉強しはじめているところですが、
フレームワークにこだわらず、いろいろと勉強会に参加するのは楽しいです。
知らない言葉に触れたり、知らない事や、
知っていると思っていても、実はわかってなかった事を自覚できたりと、
自分自身の世界観が広がっているように感じます。
少しずつ少しずつ前に進みたいと思います。

近況など。

しばらくブログを更新していなかったので近況などをつらつらと書いてみます。

・相変わらず忙しいっぽい生活をしています。
去年11月中旬あたりから、渋谷の某所で作業をさせていただく状態になりました。
HTML/DESIGIN WORKについては、優秀なスタッフが揃い、安心して任せられる状態となったため、たくさんのエンジニアにもまれてみたい欲求に素直にしたがってみることにしました。
(きっかけはアジャイルサムライ他流試合のワールドカフェで、いろんな体験を耳にした事とオファーのタイミングが絶妙だった事o(^-^)o )

・仕事では相変わらずCodeIgniter2が大活躍中。
フレームワークが用意しているunit test classと、PHPUnitの両刀使いになりました。
application/controllersのテストもやはりとても重要だなぁと感じています。
PHPUnitで、models, helper, library等、sessionやcookieを使用せずにできる単体テストを書きつつ、sessionやcookieが必要な箇所はフレームワークが用意しているunit testクラスを活用しています。テストを書き始めた頃は、単にやらなきゃ!っていう意識だけだったのだけれども、今はガイドというか命綱を握って安心してコードを書いているという感覚になりました。

・FuelPHPがなんだか最近とても熱い
kenji_sさんが書籍を出版予定ですし、それも含めて近々に2冊FuelPHP関連の書物が出版されます。
私のFuelPHPは、まだ自主練の状態…。使っている方々の話をいっぱい聞いてみたい欲に駆られています。
漠然とですが東京で勉強会をやれるといいなぁと思ってます。
いつ頃やるかは、まだ未検討です。

体調:
えーと….
順調に体重が増えてます orz
ウォーキングも再会したいし、食べる量とストレスのコントロールを心がけたいと思います。

[読書] 俺のコードのどこが悪い

本屋で見かけて、衝動買いしました。
コードレビュー時にどのように説明するか?とか見るべきポイント等を知りたいなと思っていたので、ついつい…..

積ん読にならないように早めに読んでしまいたいと思います。

OSX MAMPにStagehand_TestRunner のインストール

環境
OSX Lion 10.7.2
MAMP 1.9.2

$ /Applications/MAMP/bin/php5.3/bin/pear channel-discover pear.piece-framework.com

nekoget-no-MacBook-Pro:php5.3 neko$ /Applications/MAMP/bin/php5.3/bin/pear channel-discover pear.piece-framework.com
Adding Channel "pear.piece-framework.com" succeeded
Discovery of channel "pear.piece-framework.com" succeeded

$ /Applications/MAMP/bin/php5.3/bin/pear install piece/stagehand_testrunner

nekoget-no-MacBook-Pro:php5.3 neko$ /Applications/MAMP/bin/php5.3/bin/pear install piece/stagehand_testrunner
WARNING: "pear/Console_Color" is deprecated in favor of "pear/Console_Color2"
Did not download optional dependencies: pear/Console_Color, use --alldeps to download automatically
piece/Stagehand_TestRunner can optionally use package "pear/Console_Color" (version >= 1.0.2)
downloading Stagehand_TestRunner-2.20.0.tgz ...
Starting to download Stagehand_TestRunner-2.20.0.tgz (46,892 bytes)
.............done: 46,892 bytes
downloading Stagehand_AlterationMonitor-1.1.0.tgz ...
Starting to download Stagehand_AlterationMonitor-1.1.0.tgz (3,817 bytes)
...done: 3,817 bytes
downloading Stagehand_Autoload-1.1.0.tgz ...
Starting to download Stagehand_Autoload-1.1.0.tgz (4,530 bytes)
...done: 4,530 bytes
downloading Stagehand_CLIController-1.0.1.tgz ...
Starting to download Stagehand_CLIController-1.0.1.tgz (3,500 bytes)
...done: 3,500 bytes
downloading Stagehand_DirectoryScanner-1.1.0.tgz ...
Starting to download Stagehand_DirectoryScanner-1.1.0.tgz (3,290 bytes)
...done: 3,290 bytes
downloading Stagehand_LegacyError-1.0.2.tgz ...
Starting to download Stagehand_LegacyError-1.0.2.tgz (4,582 bytes)
...done: 4,582 bytes
downloading Stagehand_AccessControl-1.0.0.tgz ...
Starting to download Stagehand_AccessControl-1.0.0.tgz (3,975 bytes)
...done: 3,975 bytes
install ok: channel://pear.piece-framework.com/Stagehand_Autoload-1.1.0
install ok: channel://pear.piece-framework.com/Stagehand_LegacyError-1.0.2
install ok: channel://pear.piece-framework.com/Stagehand_CLIController-1.0.1
install ok: channel://pear.piece-framework.com/Stagehand_AccessControl-1.0.0
install ok: channel://pear.piece-framework.com/Stagehand_DirectoryScanner-1.1.0
install ok: channel://pear.piece-framework.com/Stagehand_AlterationMonitor-1.1.0
install ok: channel://pear.piece-framework.com/Stagehand_TestRunner-2.20.0

$ /Applications/MAMP/bin/php5.3/bin/pear install Console_Color

nekoget-no-MacBook-Pro:php5.3 neko$ /Applications/MAMP/bin/php5.3/bin/pear install Console_Color
WARNING: "pear/Console_Color" is deprecated in favor of "pear/Console_Color2"
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
downloading Console_Color-1.0.3.tgz ...
Starting to download Console_Color-1.0.3.tgz (4,933 bytes)
.....done: 4,933 bytes
install ok: channel://pear.php.net/Console_Color-1.0.3

結局uninstallしました… orz

FuelPHPがすばらしい!

http://d.hatena.ne.jp/Kenji_s/20111117/1321519058
もう、kenjiさんが言いたい事をそれ以上の情報を元に書かれているので、ご紹介。

FuelPHPは、CodeIgniterよりは敷居は少し高め。
PHP5.3以上ということで環境も比較的新しい環境が必要です。
しかしその敷居を乗り越えて使うに十分な満足と感動を与えてくれるフレームワークのように思います。
Documentは非常に見やすいです。
ライセンスは安心のMITライセンス!
もうライセンスで悩む必要なし!

余談 : CodeIgniterは敷居が低く、機能が足りないそのバランスが本当にすばらしいフレームワーク。
小回りがよく、足りない物を足したり、入れ替えたりが簡単に出来る仕組み。
チーム戦をする場合、この敷居の低さはものすごい力になります。

■FuelPHP本家 ドキュメント http://docs.fuelphp.com/

現在、日本語でDocsを読みたいがために日本語化をしています。
協力してくださる方も増え、非常にありがたいです。
■GitHubでDocs日本語化 https://github.com/NEKOGET/FuelPHP_docs_jp
■現在日本語化途中のドキュメント http://press.nekoget.com/fuelphp_doc/
(たぶん近日URLは変更します)

お褒めの言葉いただきました!
嬉しいです!!!

メモ : MongoDB と Lithium

http://b.ruyaka.com/2011/03/23/mongodb%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86/

http://dev.lithify.me/forks/hiromi2424/drafts/source/jp/00_quickstart/blog.wiki
http://lithify.me/docs/manual/quickstart

とりあえず、ローカル環境にDLしたものを設置。
仮想環境にMongoDBを入れ直し、php-mongoをいれてみた。

 

添付した画像の、Database supportのMongoDBがグリーンのチェックがついた!わーい←今ココ

作業環境が整っているかどうかを、ファイルを設置した状態でおしえてくれるのは、とても親切だ!