Skip to content

Couldn’t locate driver named mysql

Couldn’t locate driver named mysql published on Couldn’t locate driver named mysql へのコメントはまだありません

新しいサーバー(VPS)にsymfonyを入れている。

schema.ymlを書き換えてsymfony doctrine:insert-sqlを実行したら以下のエラー。

$ symfony doctrine:insert-sql
>> doctrine  creating tables
  Couldn't locate driver named mysql

まぁメッセージの通りドライバーが足りないんだろう。以下のコマンドで確認できる。

php /usr/share/pear/data/symfony/bin/check_configuration.php

結論から言うと、php-mysqlとphp-pdoをインストールすれば解決。

環境:CentOS 5.5

jQueryでtooltip

jQueryでtooltip published on jQueryでtooltip へのコメントはまだありません

自分用メモ。とりあえず手軽にtooltipを使いたくてちょっと調べてみた。

(念のため書くけど、tooltipって対象となるテキスト(別に画像でも何でも良いけど)の上にマウスを置くと、説明文とかがちょこっと出てくる奴。)

jQuery + tooltip で検索すると、「jQueryで使えるtooltipのプラグイン30」みたいなサイトが結構出てくるんだけど、正直どれを選んで良いかよく分からない。しかし、このサイト(英語)はコードサンプルやデモなども載っていてかなり分かりやすい。

自分はSimpletipというのにした。

 

 

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;

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

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マッパーってこんなもん?

symfonyでタスク

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

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

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

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

Continue reading symfonyでタスク

symfonyでフォームのhiddenタグに値をセット

symfonyでフォームのhiddenタグに値をセット published on symfonyでフォームのhiddenタグに値をセット へのコメントはまだありません

別にhiddenタグでなくても良いんだけど、新規レコード作成時などにフォームの初期値を設定する方法。

//actions.class.phpのexecuteNewの中とか
$this->form = new FooForm();
$this->form->setDefault('hidden_field', $value);

DBから取得したレコードをフォームにセットする場合には、自動生成されるexecuteEditの中を参照。

symfony project:deploy on Windows

symfony project:deploy on Windows published on symfony project:deploy on Windows へのコメントはまだありません

symfonyを使って小さなシステムを作っている。手元のテスト環境(Windows 7, XAMPP)ではとりあえず動くレベルまで来たので、本番環境のLinuxに載せることにした。

symfony project:deploy というコマンドで簡単に本番環境への配備が行えるらしいので、その設定のやりかた。コマンドに関する説明は、本家のチュートリアルページを参照。

■まずは環境

  • サーバー:CentOS 5.5
  • クライアント:XAMPP 1.7.3, Windows 7
  • symfony 1.4.5

 

Continue reading symfony project:deploy on Windows

symfonyでi18n

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

基本的にはチュートリアルのi18nのに沿ってやったけど、やる順番は若干入れ替えてる。間違いとかがあれば指摘して下さいな。

環境:symfony 1.4.3

■settings.ymlの編集

settings.ymlに以下の記述をしてi18nを有効にする。

all:
.settings:
i18n: true

後は、デフォルトの"culture"をja_JPに設定。cultureはlocaleと同じようなものなのかな。

(5/23追記 )あと、i18nのヘルパーを使う設定をしておくと良い(standard_helpersの行)。

最終的なsettings.ymlの変更点は以下の通り。

all:
.settings:
i18n: true
default_culture: ja_JP
standard_helpers: [Partial, Cache, I18N]

charsetをutf-8に設定する、とも書いてあったけど、別にやらなくても良さそうなので今のところ放置中。 

Continue reading symfonyでi18n