少し前に、eclipseのPHP用プラグインであるPDT(PHP Development Tools)が正式リリースしたようですね。僕はこれまでPHPの開発にはPHPEclipseを使っていたのですが、周りの評判がいいようなのでインストールすることにしました。
[web] PDT Project - eclipse.org
PDT Projectでは、ダウンロードすればすぐに使えるPDT All-in-Oneも置いてあるのですが、すでに今使っているeclipseにプラグインを追加することで利用することもできます。All-in-Oneの方の説明は割愛するとして、ここではeclipse3.3にプラグインを追加する場合について説明します。
まず、PDTを動作させるためには、WST(Web Standard Tools)プラグインを追加しないといけません。それに関連して、EMF、GEF、XSDなども追加する必要があります。「Help」→「Software Updates」→「Find and Install」から、「Search for new features to install」を選択し、以下のように選択します。
↑「Graphical Editors and Frameworks」のGEFを選択
↑「Models and Model Development」のEMFとXSDを選択
↑「Web and JEE Development」のWSTを選択
選択したら、後は指示に従ってプラグインのインストールを進めてください。
プラグインを追加したら、次はPDTのウェブページからプラグインをダウンロードしてきます。zipファイルを展開するとfeaturesとpluginsというフォルダができるので、これらをeclipseの本体があるフォルダのfeaturesとpluginsにそれぞれ追加してください。追加してeclipseを起動させると、無事にPDTがインストールされると思います。
ちなみに、初めにPDTを追加して、後からEMFなどを追加しようとしてもエラーが発生するため追加できません。必ず、環境の方を先に整えてからPDTを追加するようにしましょう。
それ以降は、それぞれの環境にあわせて設定を行えば動作します。マイコミジャーナルの記事などが役に立つと思います。
[web] イマドキのIDE事情 (6) EclipseでPHP開発!PHP Development Tools
2007年6月 7日(木)
更新日:2008年01月10日(木)17:18
PHP
PHPの mail 関数を用いて、そのまま日本語の文章を送信しようとすると文字化けしてしまいます。これは、mail 関数が日本語(マルチバイト言語)に対応していないために起こります。その他の要因も考えられますが、次のような点に気をつけるだけで文字化けをほぼ回避することができます。
1.mail 関数をマルチバイト文字列に対応の関数 mb_send_mail に変更する
2.言語と内部文字エンコードを指定する。内部文字エンコードとは、スクリプト内で扱っている文字列の文字エンコードのこと。指定の方法は具体的には次の通り。
mb_language("Ja") ;
mb_internal_encoding("EUC") ;
(言語が日本語、内部文字エンコードがEUCの場合)
次のページも参考になると思います。
[web] メールを送ろう mb_send_mail関数 - 離れPHP島
[web] mb_send_mail - Manual
2007年1月15日(月)
更新日:2008年01月10日(木)16:45
PHP
PHPEclipseが、eclipseのウィザードからインストールできるようになっています。PHPEclipseとは、総合開発環境Eclipse上で動作する、PHPでの開発用プラグインのことです。とりあえず、アップデートサイトのURLをメモしておきます。
update site URL↓
http://phpeclipse.sourceforge.net/update/releases
[web] 本家PHPEclipse
2006年10月26日(木)
更新日:2008年01月10日(木)16:33
PHP
掲示板の投稿画面で、投稿時の認証のために表示させる画像を生成させる方法として使えそうです。ということで、とりあえずメモです。
PHP:gif、png等の画像を動的に生成するには?:image関数(イメージ):グラフの作成
このページに使い方などが書かれていますが、要はimage関数を使うと簡単に画像も出力できますよ、ということです。サンプルソースなどを見てもけっこう単純です。これなら簡単に導入できそうですね。
2006年9月15日(金)
更新日:2008年01月10日(木)16:28
PHP
PHPで金額を扱う時に、3桁ごとにコンマを打ちたいな?と思うことがあります。そういう時に便利な関数が number_format 関数です。マニュアルを参照すると、次のような定義がされています。
string number_format ( float number [, int decimals [, string dec_point, string thousands_sep]] )
引数の数は、1,2,4のどれかであることに注意です。(3つはないということです。)
例えば、次のように使います。
$account = number_format( 123456 );
print $account // 123,456
詳しくは、本家のPHPマニュアルをご覧ください。
[web] PHP: number_format - Manual
2006年9月11日(月)
更新日:2008年01月10日(木)16:27
PHP
SmartyというPHPのテンプレートエンジンが注目されるようになって久しいですが、Smartyのテンプレートではロジックの部分と分離するという考え方から、制御構文などで制限があります。
例えば、一般的なプログラミング言語ではほぼfor文を使用することができますが、Smartyのテンプレートでは使用することができません。もちろん、テンプレート内にPHPを記述するとか、foreach文で書けるような構造にすればいいのですが、前者は推奨されておらず、後者は変換するコードを記述するのが面倒だったりします。とりあえずは後者の方法で解決すべきですが、手間がかかるのはあまりよいことではありませんね。
そんなわけで、面倒だったソースなんかをHP上で公開すると少し便利かな、と。JavaScriptのテンプレート集みたいな感じで、あまり理想的というわけではないと思いますが、いろいろ作っていくうちに良い解決方法が見えてくるかも、とも思ったりしてます。まだ構想段階ですけどね。
2006年8月30日(水)
更新日:2008年01月10日(木)16:25
PHP
PHPのテンプレートエンジンであるSmartyをいうのを試してみました。今まで、こういうテンプレートエンジンみたいなのはどうもとっつきにくいイメージがあったのですが、意外とそうでもなく、いろいろなソフトウェアで利用されているとのこと。というわけで、Webに書いてあるサンプルなどを試しつつ、このサーバにも導入してみました。
そして分かったのが、このMovableTypeでもSmartyを利用しているということ。おかげで、微妙に設定が変わってえらいことになってます。これから徐々に直していくことになると思うのですが、完全にもとに直るのはけっこう時間がかかりそうです。
2006年5月11日(木)
更新日:2008年01月10日(木)16:14
PHP
家のサーバで走ってるPHPのバージョンが5なのに対し、HP作成で送っているサーバのPHPバージョンが4なので、今更のようだけれど何が違うのかをメモっておきます。
PHP5になって導入・変更された点
-オブジェクトは参照渡しがデフォルト
-プロパティにアクセス制限を導入
-メソッドにアクセス制限を導入
-abstractクラスとabstractメソッド
-インターフェイス
-final宣言
-名前空間( namespace NS { class A{} class B{} } みたいな感じ。)
-クラス内定数( const )
-クラス変数( Class::$var )
-統一コンストラクタ( __construct() )
-デストラクタ( __destruct() )
-アクセサ( __set(), __get(), __call() )
-引数が参照の場合のデフォルト値
-__autoload()
-例外処理( try{ } catch( Object e ){ } )
とりあえずは、プロパティのアクセス制限とコンストラクタ、名前空間に気をつけてれば何とかなりそうかも。
2005年6月30日(木)
更新日:2008年01月10日(木)15:47
PHP
PHPに限らずスクリプト言語では共通ですが、利点として変数が気軽に使える点が挙げられます。まず、型を宣言しなくても使えるのは、簡単に動作させるようなプログラムでは大きな利点です。掲示板程度なら、この特性を生かしてサクサク作ることができます。
逆にこの点が欠点に変わるときもあります。型を宣言しないということで、その変数の中身をいちいち調べる必要がでてきます。また、定義した変数を未定義にすることもできるので、知らない間に変数が消えていたという状況もあり得ます。
最後に、これが一番大きな問題ですが、変数名をスペルミスをしても警告も何も出ない点です。型が厳密ならコンパイラなどでチェックすることができますが、スクリプト言語ではこれができません。なので、その点を常に注意してコーディングする必要があります。
2005年6月29日(水)
更新日:2008年01月10日(木)15:47
PHP
今日は研究室で問い合わせフォームをごりごり書いてました。昨日もちょこちょこ書いてたんですが、今日は本丸のメールを送信する部分を中心に作成してました。
で、ついにメールを送信できるところまではいったんですが、mail関数でなぜかストップ。不明なメールアドレスということでエラーが出ました。先輩とかにも手伝ってもらいつつ調べていくうちに、へんなミスを発見!送信先とタイトルの入れるところを間違えてました^^;バグってしょぼいやつでも見つからないときはありますよね?。
1時間くらいかかってそんなミスだったので、先輩たちも呆れてました。こんなミスはできれば避けたいところ。