忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2025/08/19 02:09 |
ZF2.0 Zend\Log
Zend\Logを使うことで、簡単に、統一的なログを出力することができます。
<?php
	require_once('path/to/channel/vendor/autoload.php');

	//ログの出力先 今回はブラウザに出力
	$zendLogWriter = new Zend\Log\Writer\Stream('php://output');
	
	//フィルタ これより低いログは記録されない
	$zendLogFilter = new Zend\Log\Filter\Priority(Zend\Log\Logger::NOTICE);
	$zendLogWriter->addFilter($zendLogFilter);
	
	//フォーマッタ 指定した形式で出力
	$zendLogFormatter = new Zend\Log\Formatter\Simple('%timestamp% %priorityName% (%priority%): %message%<br />', 'Y/m/d H:i:s');
	$zendLogWriter->setFormatter($zendLogFormatter);
	
	//ログ
	$zendLogger = new Zend\Log\Logger();
	$zendLogger->addWriter($zendLogWriter);
	
	//ログを出力
	$zendLogger->debug ('デバッグメッセージ');
	$zendLogger->info  ('情報');
	$zendLogger->notice('注意');
	$zendLogger->warn  ('警告');
	$zendLogger->err   ('エラー');
	$zendLogger->crit  ('致命的エラー');
	$zendLogger->alert ('アラート');
	$zendLogger->emerg ('緊急');
Zend\Log\Writerで、ログの出力先を指定します。
予めデータベースやメール、SyslogやFirebugなんて出力先が用意されています。
またWriterInterfaceを継承して適当なログ出力先を追加することもできます。
今回はファイルに保存するStreamに対してファイル名のかわりに'php://output'を指定し、ブラウザに直接出力しています。

Zend\Log\Filterは、出力するログのフィルタリングを行います。
正規表現などのフィルタがあります。
今回使用したPriorityはログレベルによるフィルタで、NOTICE以上のログが出力されるようになります。
具体的にはDEBUGとINFOが非表示になります。
ログを出力する条件のデフォルトの演算子は'<='で、Zend\Log\Filter\Priorityの第二引数で指定可能です。
'>'とすると逆にDEBUGとINFOだけが表示されるようになります。

フィルタは複数設定することが可能で、「○○という文字が含まれる、CRIT以上のログ」といった条件が設定可能です。

Zend\Log\Formatterは、出力する文字の形式です。
Zend\Log\Formatter\Simpleは直接文字列を指定する形式で、他にはXML形式やPHPのエラー、例外フォーマットなどがあるようです。
フォーマッタを経由することで、統一的なログの形式を保証することが可能になります。

最後にZend\Log\Loggerにログを突っ込むと、これら設定に沿ったログを出力してくれるようになります。
今回はブラウザに、以下のように表示されます。
2012/01/01 10:00:00 NOTICE (5): 注意 
2012/01/01 10:00:00 WARN (4): 警告 
2012/01/01 10:00:00 ERR (3): エラー 
2012/01/01 10:00:00 CRIT (2): 致命的エラー 
2012/01/01 10:00:00 ALERT (1): アラート 
2012/01/01 10:00:00 EMERG (0): 緊急 
Zend\Log\Formatter\Simpleの書式に沿って、Zend\Log\Filter\Priorityのフィルタに従い、Zend\Log\Writer\Streamで指定した出力先に出力されました。
これでもうよくわからないfunction e()とかそういう代物に頼る必要がなくなりますね。
PR


2012/10/19 23:06 | Comments(0) | PHP
Minecraft1.3.2 HardcorePlus v1.0.0 その2 さらに難易度を上昇
前回の続き。
引き続きハードコアなMODたちを紹介。

HardcoreWoodは、木がツールを使用しないとアイテムを落とさなくなります。
使用したバージョンはv1.0.0、使用BlockID数は0です。
原木・木材が石と同じくらい固くなり、素手で壊しても何も落とさなくなります。

このMOD、単品で導入すると最初の木製ツールが作れないため詰みます。
ボーナスチェストをオンにするか、村や廃坑からチェストを見つけないかぎり何もできないという。

今回はついでにPrimitiveToolsを紹介します。
使用したバージョンはv1.0.0、使用BlockID数は0です。

フリント*2でフリントの刃(Flint Blade)。
2012-10-14_23.24.07.png
はさみと同等の機能ですが、使用回数は半分になっているようです。

木の棒、フリントでフリントツール(Flint Tool)。
2012-10-14_23.30.16.png
斧、つるはし、鍬の機能を併せ持つという便利ツールですが、使用回数はやはり少ないです。

PrimitiveToolsの開発動機はHardcoreWoodのためということですが、フリントツールを作るためには木の棒が必要で、そのためには結局AnotherRecipesなどの木の棒を入手できるMODを入れないといけないため、あまり有機的な繋がりになっていないところが残念です。

ということで、序盤の難易度を急上昇させてくれるドM用のMOD、HardcorePlusでした。


マインクラフト1.3のまとめ


2012/10/18 23:45 | Comments(0) | └minecraft
Minecraft1.3.2 HardcorePlus v1.0.0 色々と難易度を上昇させる
minaduki氏によるハードコアシリーズを紹介。

ミスターマインクラフトはあれだけ大量の物を持ち歩けるなんておかしい、
ということでHardcoreInventoryは、インベントリを縮小してしまうMODです。
使用したバージョンはv1.0.0、使用BlockID数は0です。
なお残念ながらForgeでは動作せず、ModLoaderが必須です。

こいつを導入してゲームを開始すると、インベントリがなんてこったなことに。
2012-10-14_22.23.08.png2012-10-14_22.25.35.png
この狭いインベントリで、全てのアイテムをやりくりしなければならなくなり、難易度が飛躍的に上昇します。
袋や錬金バッグなど、インベントリの容量を増やしてくれるMODは数多いですが、逆に減らすものは全く無いため稀少です。

ただインベントリは見えなくなっただけで、実際になくなったわけではないので、RotateInventoryとかで無理矢理使うことはできてしまいます。
あと他MODで独自のGUIを使っている場合なども見えるかもしれません。
まあ、そこらへんは自重しましょう。

さて次、HardcoreStackは、スタック数を1/4にします。
使用したバージョンはv1.0.0、使用BlockID数は0です。

まあ説明で全てなのですが、本来1スタックで64個持てていたブロックが16個しか持てなくなります。
2012-10-14_22.55.34.png
元々16個しか持てなかった雪玉やエンダーパールはわずか4個になります。
1個しか持てないツールやレコードなどは特に変わりません。

HardcoreInventoryで1/4、HardcoreStackが1/4と、両者を組み合わせることで、ブロックを持てる数がわずか1/16になります。
多少はリアルな数になったでしょうか。

まあリアリティがと言い出すなら大きさや重さで持てる個数を変更しないといけないですし、そもそも1m×1m×1mの石を持ち歩いている時点でアウトなのですが、さすがにそこまでされるとゲームにならないですしね。

ということでMinecraftの難易度、というか面倒臭さを尋常じゃないほどアップさせてくれるドM用のMOD、HardcorePlusでした。


マインクラフト1.3のまとめ


2012/10/17 23:52 | Comments(0) | └minecraft
Minecraft1.3.2 装飾ブロック v1.3.2 珍しい形の装飾ブロックを追加
装飾ブロックは、他に類を見ない形のブロックを追加します。
現在星型ブロックとハート型ブロックの2種類のMODがあります。
いやそれ、ひとつのMODにまとめてくれてもいいのよ。

使用したバージョンは、ハート型ブロックがv1.3.2-1.0.0、星型ブロックがv1.3.2-1.0.4、使用BlockID数はそれぞれ1です。
何故星だけバージョンが進んでいるのかは謎。

星型ブロック(favblock)は金ブロック、金塊*8。
ハート型ブロック(decoblock)は赤い花、砂糖*8。
2012-10-12_00.46.37.png2012-10-12_00.47.48.png
名前適当すぎでは。

普通に設置すると中央に置かれ、また壁に向かって貼ると壁に張り付きます。
残念ながら下を向いても床に貼り付けることはできません。
あと当たり判定に微妙におかしなところがあり、近くに行くとたまに引っかかったりします。
2012-10-12_00.53.50.png2012-10-12_00.55.02.png

アクセサリーとして使用することができ、また何気に15レベルの光源になっているので照明代わりにもなります。
これはもう、いろんなアクセサリシリーズとしてどんどん種類を増やしてほしいですね。
非常に可愛いのでとてもお勧めのブロックです。

なおソース同梱なので、レンダが書ける人であれば好きな形のブロックを追加することができます。
是非挑戦してみましょう。
まあ私には作れませんが。


マインクラフト1.3のまとめ
 


2012/10/16 23:45 | Comments(0) | └minecraft
ZF2.0 XAMPPにZend FrameworkF2.0をインストール
インストールとか言いましたが、実のところ前回
> php composer.phar install
した時点でZF2のインストールは終わっています。
ただ場所がわかりづらく、Composerを置いたディレクトリの中、vendor/zendframework/zendframework/library/Zendなんてところに本体があったりします。

なんでそんなわけのわからない場所に入ってるのだ、そんな深い場所いちいち読み込むのが面倒だろう、と思いきや、実はComposerにオートローダが用意されています。
<?php
	//オートローダ
	require_once('path/to/composer/vendor/autoload.php');
	
	//インスタンス
	$zendJson = new Zend\Json\Json();
	
	//実行
	$json = $zendJson->encode(array(1=>'hoge', 2=>'fuga'));
	var_dump($json);
最初にvendor/autoload.phpを指定するだけで、あとはComposerを使ってインストールしたファイルであれば何でもオートロードしてくれます。
というかvendor/autoload.phpをrequireした時点で全てのパスをspl_autoload_register()しているだけみたいです。
非常に便利な反面、中で何をやっているかわかりにくくなるのでちょっと気持ち悪いです。

なお、ZF2では全面的に名前空間が取り入れられています。
いやあ便利ですねnamespace。


ZF2の英語マニュアルができているのですが、現状URL的に少々使い勝手に難があります。

ZF1のマニュアルは、あえてバージョン表記を抜かすことで自動的に最新バージョンのURLに移動するのですが、ZF2ではそれが現在効きません。
http://framework.zend.com/manual/en/zend.acl.html
http://framework.zend.com/manual/1.12/en/zend.acl.html

http://framework.zend.com/manual/en/modules/zend.authentication.intro.html
http://framework.zend.com/manual/2.0/en/modules/zend.authentication.intro.html
ちょっと困りますね。


2012/10/15 23:06 | Comments(0) | PHP
買ったものリスト 2012/10/14
2012/10/13、ふじさわ江の島花火大会に行ってきました。
本当は全く知らずに別件で行ってたのですが、たまたま現地で花火大会のことを知ったのでついでです。
打ち上げ数が3000発ということで、一万発超えも珍しくない花火大会の中では比較的規模が小さめかなあと思ったらそんなことはなかった。
ハートマークやドラえもんの面白花火とか、花の咲き誇るワイドスターマインなど見所は色々ありましたが、なんといっても圧巻だったのは、たった一発で圧倒的な説得力を誇る2尺玉でした。
相当でかい。
音もでかい。
まあ、他の大会では普通に使われてるとかだったら残念ですが。

というか、よく考えたら、見に行ったことのある本格的な花火大会って20年くらい前の川内川花火大会が最後だったことに今さら気がついた。
関東在住だってのにどこにも行ったことないや。


2000年のゲーム・キッズ 上 渡辺 浩弐
☆☆☆☆☆

昔の版は当然持っていたのですが引っ越しでどっか行ってしまったため再購入。
いやあ本当この人はすごいですね。
さすがに今から見ると古く感じるものもありますが、ほとんどの話は今から見ても新しすぎるものばかり。
15年も前に書かれたものだなんてとても信じられませんな。

なおイラストだけは絶望的に合ってません。


ニンジャスレイヤー ネオサイタマ炎上1 ブラッドレー・ボンド
☆☆☆☆☆

アイエエエ!ナンデ!?ニンジャナンデ!?
異次元ワードが乱舞するサイバーパンクニンジャ活劇。
いわゆる外人の考える誤った日本というやつを極限まで研ぎ澄ましたマッポーの世を、機械翻訳っぽい独特の言い回しで和訳することで、更に奇天烈な世界が現出しています。
言葉遣いだけが特徴かと思えばストーリーとしてもなかなか面白く、続きが楽しみです。
実際はtwitterでずっと先まで訳されているのですが、正直読む気がしません。
twitterほど長文に向いていない媒体もそうそうないと思うのだが。


BTOOOM! 9 井上 淳哉
☆☆☆☆

リアルボンバーマン9巻はなんか展開はえー。

まあ基本的には深く考えずにアクションを楽しむ話です。
しかしあんな大それた計画、少しでも漏れた時点で即アウトなんだがどうなんだ。
というかバックアップサーバも置かず空が見える状態のデータセンタとかどうなんだ。
鉄塔とか明らかに狙われるんだが、なんかそこらへん説明あったっけ。


ベン・トー8 超大盛りスタミナ弁当クリスマス特別版1250円 アサウラ
ベン・トー9 おかずたっぷり! 具だくさん! 香り豊かな欧風カレー弁当すぺしゃる305円
☆☆☆☆

アウトー!はいアウトー!!
そろそろ犬とは言えなくなってきて今後ははじめの一歩みたいになっていくのだろうか。
HP同好会崩壊の謎も少しづつ明らかになってきたかと思えばさらなる謎が現れて、これは収拾がつくのだろうか。
しかし8巻のみんなは可愛すぎるのう。

それにしても相変わらず食事の描写が素晴らしい。
ただのカップ麺をしてすら極上に見せてしまう筆力は何ともはや。


2012/10/14 21:54 | Comments(0) | 買ったもの
Minecraft1.3.2 Duke605's Adventure Mod v1.1.2 幾つかの小物アイテムを追加
Duke605's Adventure Modは、幾つかの小物アイテムを追加します。
使用したバージョンはv1.1.2、使用BlockID数は0です。
コンフィグがなくアイテムIDを変更できないうえにアイテムID2267~2271とBlockIDの範囲を使用するというがっかり設定です。
導入の時点で既にかなり残念な雰囲気を漂わせていますがまあ見てみましょう。

まずパラシュート(Parachute)は羊毛*3、糸*3。
2012-10-07_00.48.32.png

落下の最中に、これを手に持って右クリックすると落下速度がゆっくりになります。
特にグラフィックが用意されてたりといったことは一切ありません。
指を離すと再度落下が始まるので、着地するときは押しっぱなしにする必要があります。
使用回数は無制限です。

自宅テレポータ(Home Teleporter)は鉄インゴット*7、レッドストーン、エンダーパール。
帰還テレポータ(Return Teleporter)は金インゴット*7、レッドストーン、エンダーパール。
2012-10-07_00.55.34.png2012-10-07_00.55.45.png
自宅テレポータは、使った瞬間最後に寝たベッドまでワープします。
ベッドがない場合は単に無効になり、初期スポーン地点にワープしたりはしません。

帰還テレポータは、最後に自宅テレポータを使用した場所にワープします。
ダンジョンの奥深くなどで一旦戻りたくなった時など、この二本のテレポータがあれば簡単に行って戻ってくることができます。
使用回数は両方とも50回です。

ジェットパック(Jetpack)は鉄インゴット*7、石炭、火薬。
ジェットパックコントローラ(Jetpack Control)は鉄インゴット*4、レッドストーン。
2012-10-07_01.09.45.png2012-10-07_01.09.56.png

ジェットパックを背中に装備し、ジェットパックコントローラを持つと始動です。
スペースでの動作がジャンプから上昇にかわり、空を飛ぶことができます。
2012-10-07_01.14.28.png
コントローラはインベントリに置いておくだけでよく、チェストなどにしまうと飛ぶことができなくなります。

また飛ぶためには燃料を消費します。
燃料を消費したジェットパックを手に持ち右クリックすると、手持ちの石炭か木炭を消費して燃料を回復します。
燃費は正直かなり悪くて炭をドカ食いします。
入っているならIC2のジェットパックなどを使ったほうがいいでしょう。
そのかわり高度制限とかはなく、どこまでも上昇可能です。


以上、ちょっとした便利なアイテムを追加するDuke605's Adventure Modでした。
これでコンフィグとインストール方法がましになれば入れる気にもなるってものなんだがな。


マインクラフト1.3のまとめ


2012/10/13 23:38 | Comments(0) | └minecraft
ZF2.0 XAMPPにComposerをインストール
Zend Framework2.0が出ていました。
使ってみた人の記事を見つけたのですが、何語で話してるのかさっぱりわかりません。
仕方ないので自分でやってみます。

ZendFramework1はpear installでインストールできたのですが、ZF2では今のところそういうことはできないみたいです。
インストールガイドにはPyrusとかComposerとか意味の分からないことが書いてあってどうにもなりません。
いや、開発とかバージョン管理とかどうでもいいんで、あとWindowsなのでwgetとかcurlなんて洒落たものはないんです。

今回はComposerを使ってインストールしてみます。
というかComposerをインストールしてみます。
Composerは、JSONで設定ファイルを書けば適当にダウンロードしてくれてオートローダも書いてくれるよ、というもののようです。
Pearでよくね?と思いますが、Pearに対応していないはずのGithubとかの他所のサイトでも、設定ファイルを書けばよきにはからってくれるよ、というのがComposerの売りのようです。
とりあえず適当な場所にComposerをダウンロード。

> php -r "eval('?>'.file_get_contents('https://getcomposer.org/installer'));"

どうなるかというと、単にcomposer.pharというpharファイルがひとつダウンロードされるだけです。
そのくらい普通にブラウザでダウンロードさせてくれよ。

このファイルがある時点でComposerのインストールは完了しているので、次はこれを使ってZF2をインストールします。
composer.pharと同じ場所にcomposer.jsonを作成し、中に↓をコピペ。
{
  "repositories": [
    {
      "type": "composer",
      "url": "http://packages.zendframework.com/"
    }
  ],
  "require": {
    "zendframework/zend-config": "2.0.*",
    "zendframework/zend-http": "2.0.*"
  }
  ,"minimum-stability": "beta"
}
次に以下のコマンドを実行すると、composer.jsonの中身を読んで、必要なものを自動的にインストールしてくれるみたいです。

> php composer.phar install

今回の設定では、zend-configとzend-http、および両者が依存しているパッケージをまとめてインストールしてくれます。
やったね。

と言いたいところですが、これZFのパッケージまとめて全部インストールできないっぽいんですができないの?
    "zendframework": "2.0.*",
    "zendframework/": "2.0.*",
    "zendframework/*": "2.0.*",

とか書いてみても動きませんでした。
結局全パッケージに対して70行くらい延々書き並べたんですが、絶対もっとましな方法があるだろ、これ。

一度インストールすると、そのインストール情報がcomposer.lockに書き込まれます。
このファイルを別環境に持っていってcomposer.phar installすると、その全く同じバージョンがインストールされます。
つまり、これを使えば同じ環境を簡単に用意することができるということのようです。

composer.jsonに追記を行ったり、インストールしたパッケージの更新をする場合は、
> php composer.phar update
とします。

今回はZendだけですが、Composerでは設定を書けば色々なサイトからファイルを取得してインストールすることが可能なようです。
ということで、これが真価を発揮するのはインストール時よりアップデート時になるでしょう。
JSONさえ書いてしまえばコマンド一発でアップデートとか便利ですね。

と思いきやたまにエラーが。

> [RuntimeException]
> Package could not be downloaded, 'svn' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。


だからWindowsにはsvnなんて気の利いたコマンドはないんだってば。


2012/10/12 23:12 | Comments(0) | PHP
Minecraft1.3.2 Back Tools v1 武器を背負う
Back Toolsは、武器を背中に背負うというだけのMODです。
使用したバージョンはv1、使用BlockID数は0です。

これを導入すると、アイテムをA→Bと持ち替えた際、Aが対応しているアイテムであれば背中に背負います。
2012-10-06_11.39.58.png
はい、完全にそれだけのMODです。
何がしたいんだってかっこいいじゃないですか。

デフォルトでは剣などのツール、弓、はさみが対応しています。
MODでもそれらを継承したアイテムであれば問題なく背負えます。
2012-10-06_11.40.08.png2012-10-06_11.40.22.png
ということで役に立つかと言われれば何の役にも立たないが、ちょっとだけかっこいいような気がしないでもないMOD、Back Toolsでした。

これだけではさすがに短すぎるので、ちょっとしたMODをもうひとつ紹介。
TurntoBackは、後ろを向くMODです。
使用したバージョンは1.3.2、使用BlockID数は0です。

このMODを導入後、ゲーム内でFキーを押すと、180度後ろを振り返ります。

はい、それだけのMODです。
紹介しようがないので画像はありません。
作者も言っていますがFPSとかでは時々ある、でもMinecraftではまず必要のない機能です。

なお上下は反対になりません。
東の空を見ていてFを押すと、西の空を見上げることになります。
こっちもこっちでいったいどう使えばいいのだろう。


マインクラフト1.3のまとめ


2012/10/11 23:12 | Comments(0) | └minecraft
Minecraft1.3.2 Lamp 2.2.1 便利な光源を追加
屋根の高い家などを作ると、天井に明かりを付けても床は暗いままです。
結局床にも光源を埋め込まねばならず、景観的に少々残念になってしまいます。
2012-10-06_10.27.00.png2012-10-06_10.27.02.png

そこで強力な光源を追加するLampです。
使用したバージョンは2.2.1、使用BlockID数は2です。

まずランタン(Lantern)は石炭、鉄インゴット*4、板ガラス*4。
さすがに16個は作れすぎのような。
2012-10-06_10.31.31.png2012-10-06_10.34.11.png
効果は自分の横方向隣接ブロックにも15レベルの光源を与えるというもので、たいまつより少し明るい光源として利用可能ですが、正直あんまり変わりません。
ランタンの隣に全く目に見えない光源ブロックを設置するという方法で実現されており、方向性は違いますがまあ狐火みたいなものです。

次にグロウランタン(Glow Lantern)はグロウストーン、鉄インゴット*4、板ガラス*4。
2012-10-06_10.37.09.png2012-10-06_10.37.54.png
効果は自分の横と縦方向隣接ブロックにも15レベルの光源を与えます。
ランタンとの違いがほとんどわからぬ。

さて次からが本MODの本番です。
ゴールドランタン(Gold Lantern)はグロウストーン、鉄インゴット*4、金インゴット*4。
2012-10-06_10.42.13.png

設置した場所から真下、なにかにぶつかるまでの部分を全て15レベルの光源にします。
どういうことってこう。
2012-10-06_10.43.38.png2012-10-06_10.43.42.png

天井に設置するだけで屋内の光を確保できるため、非常に便利です。
下に障害物を置くとそこで光が途絶えますが、障害物さえなければ200ブロック以上軽く届きます。
とっても便利です。
2012-10-06_10.51.50.png
ちなみにどうでもいいのですが、大抵のブロックは真下に置けるのに、何故かベッドだけは見えない光源に邪魔されて置くことができません。
やはり眩しいからですかね。

最後にダイヤモンドランタン(Diamond Lantern)はグロウストーン、鉄インゴット*4、ダイヤモンド*4。
2012-10-06_10.55.27.png2012-10-06_10.56.23.png
自分の真下、および横隣接ブロックとその真下にも光源を与えます。
まあ、効果的にはゴールドランタンとあまり変わらないので、資源に応じて選択するとよいでしょう。

ということで非常に便利な光源ブロックを追加するMOD、Lampでした。


マインクラフト1.3のまとめ


2012/10/10 23:09 | Comments(2) | └minecraft

<<前のページ | HOME | 次のページ>>
忍者ブログ[PR]