Skip to content

DoctrineのModelクラスとTableクラスの違い

DoctrineのModelクラスとTableクラスの違い published on DoctrineのModelクラスとTableクラスの違い へのコメントはまだありません

 shema.ymlに色々書いてsymfony doctrine:build –modelを実行すると色々なクラスが自動的に生成される。lib/model/doctrine以下には、各モデル毎に[ModelName].class.phpと[ModelName]Table.class.phpという2つのクラスが生成される。

その2つの使い分けは何となくやってたんだけど、最近明快な答が載ったページ(英語)を見つけたのですっきりした。

まぁソースコードを見ればすぐ分かるんだけど、継承関係としては以下の通り。

  • Doctrine_Record > sfDoctrineRecord > [ModelName]
  • Doctrine_Table > [ModelName]Table

てことで、[ModelName]Tableの方は、テーブルからデータを取ってきたりする処理を記載して、取ってきたレコードに対する処理は[ModelName]クラスの方に記載する。

symfonyのコマンドラインで出力幅を広げる

symfonyのコマンドラインで出力幅を広げる published on symfonyのコマンドラインで出力幅を広げる へのコメントはまだありません

symfonyでコマンドを入力する。例えばsymfony project:deploy –go xxxxとか。で、何かエラーが出るとする。画面に出力されるメッセージから色々判断しなきゃいけないんだけど、出力が長い場合、画面の幅に収まるように、symfonyの内部で勝手に…..とかに省略されてしまい非常に不便。

設定で簡単に変えられないか調べたんだけど、分からなかったので結局ソースを直接修正した。

/lib/command/sfFormatter.class.php の38行目辺り(symfony 1.4.5の場合)。以下の値を大きな値に変更すればOK。

$maxLineSize = 65;

参考にしたページ(英語)。

Eclipseで使用するメモリ量設定

Eclipseで使用するメモリ量設定 published on Eclipseで使用するメモリ量設定 へのコメントはまだありません

今までずっと安定して使えてたEclipseがつい数日前に急に不安定になった。

特に設定とかも買えてないし、新しいプラグインとかも入れてないんだけど…多分、今まで使ってなかった機能を使い始めたのかな。別にそんな覚えもないんだけど。

いずれにせよ、そのままだと作業に非常に差し支えるので調べてみた。結論から言うと、Eclipseが使うメモリ使用量を増やしてあげたら安定するようになった。

■まずはログを確認

Eclipseが落ちたら、まずはワークスペースの中の.metadata/.logというファイルを見る。自分の場合、そこで以下のようなエラーが出ていた。

java.lang.OutOfMemoryError: PermGen space

 PermGenが何かという説明はとりあえず置いておく。

Continue reading Eclipseで使用するメモリ量設定

DoctrineのfindBy

DoctrineのfindBy published on DoctrineのfindBy へのコメントはまだありません

symfony 1.4だとDoctrineが標準になったので必然的に使う事になってる。

もしかしたら世間的には常識なのかもしれないけど、昨日発見して感動した事。

Doctrine::getTable("TableA")->findByField1AndField2("val1", "val2");

ってやると以下のSQLが実行される。

SELECT * FROM TableA WHERE Field1='val1' AND Field2 ='val2'

複数のカラムにまたがる検索も一発で出来るのは非常に便利。当然 findByField1AndField2 なんてメソッドは自分で用意しなくても使える。

最近のORマッパーってこんなもん?

app.ymlから値を読む

app.ymlから値を読む published on app.ymlから値を読む へのコメントはまだありません

自分用メモ。

symfonyでは、独自の設定項目をapp.ymlに追加していく事が出来る。それの読み込み方は以下の通り。

sfConfig::get('app_foo')

まぁこれはすぐ分かるんだけど、app.ymlの中身が以下のように階層構造になってたらどうすれば良いんだろうと思ってググってみたら、このページが見付かった。実際にまだ試してないけど・・・

all:
foo:
bar: "val"

symfonyでタスク

symfonyでタスク published on symfonyでタスク へのコメントはまだありません

symfonyはご存じの通りwebアプリケーションを作るためのPHPのフレームワークなんだけど、それ以外にも便利なな機能がある。

システムを作るのって、単に表に出てくる機能を作るだけじゃなくて、バックアップだったりデータのメンテナンスだったりってのも含まれるんだけど、バックグラウンドで動くタスク・ジョブを簡単に作れる機能がsymfonyにはある。1.2のリファレンスにcookbookに説明があるので、1.2から出来た機能かも。

 ま、このページの説明で大体間に合ってしまう気もするけど、少し説明。

Continue reading symfonyでタスク

IIS 6.0のパフォーマンス調査・チューニング

IIS 6.0のパフォーマンス調査・チューニング published on IIS 6.0のパフォーマンス調査・チューニング へのコメントはまだありません

自分用メモ。

MSDNのページ:Using Performance Tools to Obtain a Baseline (IIS 6.0)

アプリケーションプールについて調べてた時に見つけたページ

 

PHP on IIS

PHP on IIS published on PHP on IIS へのコメントはまだありません

■IIS+PHP(WIMP、WISP)

PHPをIIS上で動かすというのは以前に比べて割と一般的になってきたっぽい。今やっている案件の一つもWISP(Windows、IIS、SQL Server、PHP)構成。

ちょっと調べ物をしていたら、MSのIISのページから「PHP on IIS」なるページへのリンクがある事に気づいた。そこまでポピュラーになってるとは知らなかった。

■ISAPI → FastCGI

知らないついでにもう一つ。PHPはISAPIで動かすものって思ってたけど、今ではFastCGIがサポートされているそうだ。隔世の感がある。

こちらのページではIIS 7.5とPHP 5.3のインストール、設定について書いてある。こちらのページはIIS 7.5とPHP 5.2。それ以外にも色々ページが合った。

Continue reading PHP on IIS

MySQLでCSVを入出力

MySQLでCSVを入出力 published on MySQLでCSVを入出力 へのコメントはまだありません

自分用メモ。

今やってる仕事で、他のDB(SQL Server)からMySQLにデータを移行する必要があったので、CSVを使う事にした。

MySQLでCSVやTSVをインポートするのは非常に簡単。このページを参考にした。TSVの場合は terminated by ‘t’ とすればOK。

apr_sockaddr_info_get() failed for xxx.example.com

apr_sockaddr_info_get() failed for xxx.example.com published on apr_sockaddr_info_get() failed for xxx.example.com へのコメントはまだありません

Apacheの設定をいじっていたら、起動時に以下のエラーが出るようになった。

httpd: apr_sockaddr_info_get() failed for www.example.com
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

ググったらすぐ解決法が見付かった。自分はこのページの4番に該当。httpd.confのServerNameを指定したら直った。