2012年12月13日木曜日

Zend Frameworkでつくるソーシャルゲーム-第3回 DBの設定

二日目に続きました。おめでとう俺。

Zend Frameworkでつくるソーシャルゲーム

第3回はDBの設定です。


MySQLのユーザの作成とテスト用テーブルの作成までやります。

まずはユーザの作成です。

MySQL Workbenchを起動します。
ZendServerと一緒にMySQLがインストールしてあれば、既にworkbenchの方でコネクションが設定されていると思います。
rootでパスワードなしで接続可能な状態になっているはずです。
ローカルでしか動かしてないうちはあまり問題無いとは思いますが、念のためrootにパスワードを設定し、さらに開発で使うユーザを作成します。
ServerAdministrationからLocal_MySQL_Zendserver51とかそんなのをダブルクリックして接続します。
Users and PrivilegesからAdd Accountでユーザを追加します。
設定例

まずLoginタブ

Login Name:dragon
Limit Connectivity to Hosts Matching:localhost
password:fantasy

次にAdministrative Rolesタブ

DBManagerにチェックいれる
Applyボタンを押して完了

開発用DBの作成

ユーザーの追加が完了したらそのServerAdministrationのタブを閉じて、New Connectionから先ほど作ったユーザーで接続しましょう。
接続したら左上の左から3番目のアイコンをクリックして(Create a new schema in the connected server)開発用のDBを作りましょう。
name:dragonfantasy
collation:utf8-utf8_general_ci
Apply
Apply
Finish!

テーブルの作成

ついでにテスト用にテーブルを作っておきます。
できあがったDBのアイコンをダブルクリックしてTablesのところを右クリック→Create table
table name:dfaccount
collation:utf8-utf8_general_ci
engine:InnoDB
Columns
id int PK NN AI
name varchar(45) NN
という感じで適当に。

テスト用データの挿入

テーブルが作成できたらテーブルを右クリックしてedit table dataからテスト用データをいれておきます。
nameだけいれてapplyすればOKです。
idはAIにチェックを入れ忘れてなければ自動ではいります。

とりあえずMySQL側の準備はこれで完了です。
意外と長くなったので続きは第4回にします。

2012年12月11日火曜日

Zend Frameworkでつくるソーシャルゲーム-第2回 プロジェクトの作成


第2回 Zend Frameworkのプロジェクトの作成


連載第2回ですが、書いているのは同じ日です。
今回はプロジェクトを作成してブラウザでインデックスページを見るところまでです。


まずはZendFrameworkを入手しましょう。


あ、ちなみに私の開発環境はWindowsXPでございます。
その他環境の方は適宜脳内変換をお願いします。
何かお気づきの点などありましたら気軽にコメントください。

はい、ではこちらからZend Server CE (PHP 5.3)をダウンロードしてインストールします。

インストールする時にApacheとMySQLも一緒にいれましょう。
Apacheはデフォルトで入るっぽいですが、MySQLはデフォルトでは入らないっぽいのでチェックボックスにチェックいれてください。

インストールが完了したらNetBeansを起動します。

起動したら新規プロジェクトを作成します。

ファイル→新規プロジェクト→PHPアプリケーション(新規作成)で次へ
プロジェクト名は半角英字で適当に。
ソースフォルダはcドライブ直下とかで日本語パスは避けておきましょう。

  • プロジェクト名:DoragonFantasy
  • ソースフォルダ:c:\dev\DragonFantasy
  • PHPのバージョン:5.3
  • デフォルトエンコーディング:UTF-8
  • NetBeansのメタデータを別のディレクトリに配置にチェックいれて「c:\dev\DragonFantasyBeans」

とかいう具合で次へ

  • ローカルWEBサイト
  • http://dragonfantasy.local/
次へ

最後にZend PHP Web Frameworkにチェックいれて完了です。

すると、あら不思議!プロジェクトファイルができあがっているではありませんか!!
いやー便利ですね。このブログ書いたおかげで今知りました。
NetBeansさんはプロジェクトの作成までやってくれるんですね。
いたれりつくせりだわー知らなかったー。

それではこれを実行してみましょう。
と言いたいところですが、まだ設定が2つほど終わっていません。

一つ目はApacheの設定です。

WIN+Eでエクスプローラを起動します。
ZendServerのインストールフォルダの中のetc\sites.dフォルダを開いてエディタで「vhost_doragonfantasy.local.conf」というファイルを作成します。
(vhost_という文字で始まるところがミソです)
(デフォルトでのパスはC:\Program Files\Zend\ZendServer\etc\sites.dになるはず)
NetBeansに一旦戻りdocsのREADME.txtを開き
<VirtualHost *:80>から</VirtualHost>までをコピーして先ほどのファイルに貼り付けます。
ServerName .localをServerName dragonfantasy.localになおして保存します。
保存したらタスクトレイの再生ボタンがついたようなApacheのアイコンをクリックしてRestartしてください。

そして二つ目、hostsファイルを書き換えます。

エクスプローラでC:\WINDOWS\system32\drivers\etcを開き、hostsファイルを開きます。
127.0.0.1       localhost
と書いてある部分がありますね?
そこに「 dragonfantasy.local」を書き足して
127.0.0.1 localhost dragonfantasy.local
と変更して保存します。
これで設定が完了したのでNetBeansに戻り実行してみましょう。
F6を押すか、実行→プロジェクトを実行で実行します。
ブラウザが起動してZend Server Test Pageという文字が見えたあなた!おそらくApacheの再起動を忘れています!!
Welcome to the Zend Framework!という文字が見えたあなた!
おめでとうございます!正常にプロジェクトを作成し、設定を終えることができたようです!

それでは今回はここまで!
次回はDBへの接続です! 

Zend Frameworkで作るソーシャルゲーム-第1回 準備編

Zend Frameworkで作るソーシャルゲーム

と題して連載予定のこの記事は一体どこまで続くでしょう。
今までシリーズ物は完成したことがありません。
とりあえず今日は第1回 準備編です。
まずは私が使っているツールを紹介します。

すべてのツールに共通することですが、背景色が変更できるものは灰色にする。
白だと目が痛くなるから。

NetBeans

まぁ何かしらIDEは使った方が効率がいいと思うんですよ。
何しろスペルミスが減りまくるし、スペルミスが減るからね。
アレ結構気づかないでハマるじゃん?(汗
まぁあと色々便利なんでとりあえず使う。
別にNetBeansにこだわっているわけではないです。
eclipse?とかまともに使ったこと無いです。

EmEditor

まともなエディタならなんでもいいと思うけど、自分が使いやすいやつでね。ちなみに使用しているのは無料版ではないです。無料版でも十分使えると思いますが。teraPadとか秀丸とかでもいいんじゃないですか。

MySQL WorkBench

SQLがわかるなら便利だと思う。

TortoiseSVN

基本的にはNetBeansだけでも概ね問題ないと思います。

Poderosa

タブがいいんだ。きっと。

FTPとかブラウザ

FTPは基本的にNetBeansで済ませる。必要ならFileZilla。
ブラウザは基本Firefox時々Chromeだけど、何向けの何を開発するかによるよね。
あとコピペツールとしてtomoclip使うかもしれない。
むしろ開発じゃない部分でよく使うかもしれない。

2012年7月24日火曜日

Firefoxアドオン開発-設定値の保存

ドラゴンクルセイド2F用アドオン開発日記でございます。
事前審査も通りましたんで絶賛?テスト公開中です。

チャットの自動読み込みと税金の自動徴収を設定値を保存できるようにいたしました。
その際に「アドオンの設定を保存する方法」を学んだのでメモしておきます。

Preferences-MDN ←に書いてある事ほぼそのままなんですけど、ブランチ取得してsetなんちゃら、getなんちゃらメソッドでやるだけです。

// "extensions.myext" ブランチを取得
var prefs = Components.classes["@mozilla.org/preferences-service;1"].
getService(Components.interfaces.nsIPrefService);
prefs = prefs.getBranch("extensions.myext.");


nsIPrefBranch には設定の取得・設定のための 6 つのメソッドがあります。getBoolPref(), setBoolPref(), getCharPref(), setCharPref(), getIntPref() そして setIntPref() です。

// nsIPrefBranch 経由の設定操作
// branch を取得する方法は一つ上の章を読んでください
var value = prefs.getBoolPref("accessibility.typeaheadfind"); // 取得
prefs.setBoolPref("accessibility.typeaheadfind", !value); // 設定


prefs.getBranch()の時に最後のドットを忘れて10分くらいハマりました。はい。

規定値の設定は「/defaults/preferences/*.js」だそうで、
そこに
pref("extensions.extensionname.preferencename", false);
って感じで書いてやれば勝手に読み込んでくれます。

やってみると非常に簡単なんですけど、MDNのページ読んでると難しそうに見えました。
扁桃炎でちょっとボケてるのかも・・・。

2012年7月7日土曜日

Firefoxアドオン開発-テキストが選択できない件

毎度どうもゲームするよりゲーム用のアドオン作ってる方が楽しいんじゃないかと思う今日この頃の佐藤です。

Firefox用アドオン-DC2Fサポートを作ってて苦労した事のメモなんです。

まずチャットの表示をどのようにするべきなのかわかりませんでした。

今のところboxの中にdescriptionタグで落ち着きました。labelでもできると思います。
ちなみに最初はiframe使ってその中でpタグでやってました。
なんでそうしたかは忘れました。
descriptionとかlabelとか知らなかったからだったかな・・・。
https://developer.mozilla.org/ja/XUL/description

次に、世界チャットだけ表示できない問題に悩まされました。
これは世界チャットだけ内容にタグが入っているからでした。
タグを抜き取ることでひとまずよしとしました。
後ほど色付けする予定。

そして、表示したテキストが選択できない問題の登場です。
こいつには相当悩まされましたが、FirebugでCSSを眺めている時に 「-moz-user-select」といういかにもなプロパティを発見し、グーグル先生に聞いたらやっぱりこいつのせいだって言ってました。
https://developer.mozilla.org/En/CSS/-moz-user-select

こんな感じでCSSを設定して解決しました。

.chatLine{
margin:0 0 0 0;
padding:0 5px;
line-height:15px;
display:block;
-moz-user-select:text;
-moz-box-sizing:border-box;
cursor:text;
}