[php][Eclipse]PDT(Eclipse PHP Development Tools) 1.0リリース
巷で話題ですが、Eclipse Foundationから、PDT(Eclipse PHP Development Tools) 1.0がリリースされたらしい。PDTのプロジェクト自体はZend TechnologiesとIBMがEclipseに提案したことから始まったそうな。
機能としては、コードハイライトやコードアシスト、折りたたみ、エラー通知、関数一覧などなど。Eclipseの恩恵を受けつつPHPの開発ができるって言うのが一番すばらしい機能なのかもしれない。
昔からPHPEclipseやKoebi Studioなど、EclipseのPHPプラグインはいくつかあったけど、Eclipse Fundationがリリースするとなるとブランド力ですぐにEclipse+PHPの開発環境のスタンダードになりそうだ。個人的にはAptanaがPHPに対応したことも気になるけど、やるならPDTかもね。
CodeZine:Eclipse公式PHPプラグイン「PDT 1.0」リリース(開発ツール)
http://codezine.jp/a/article/aid/1720.aspx
EclipseとPHPのWin-Win関係は生まれるか ? @IT
http://www.atmarkit.co.jp/news/200709/20/eclipse.html
CakePHP のおいしい食べ方: PDT(Eclipse)+xdebug
http://cakephp.seesaa.net/article/54874514.html
[Linux]ネットワークの設定ファイル
ネットワークの設定の主なファイルは以下のものがある。
- /etc/services
- /etc/protocols
- /etc/rpc
- /etc/nsswitch.conf
- /etc/host.conf
- /etc/resolv.conf
- /etc/hosts
- /etc/networks
1〜3は、TCP/IPの名前と番号の対応表。基本的には内容が書き換えられることはないが、/etc/servicesはパッケージのインストールで対応表が追加されることがある。
4〜6は、TCP/IPの名前の怪傑のための設定ファイル。名前怪傑の順番や、検索の参照順序、ネームサーバーの情報等が保持されている。
7と8は、TCP/IPのアドレスと名前の対応表である。これらのファイルは最優先で参照されるように設定されている。
1. /etc/services
TCP/IPのサービスメイトポート番号の対応表。以下は冒頭の抜粋。
(省略) # service-name port/protocol [aliases ...] [# comment] tcpmux 1/tcp # TCP port service multiplexer tcpmux 1/udp # TCP port service multiplexer rje 5/tcp # Remote Job Entry rje 5/udp # Remote Job Entry echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users systat 11/udp users daytime 13/tcp daytime 13/udp qotd 17/tcp quote qotd 17/udp quote msp 18/tcp # message send protocol msp 18/udp # message send protocol chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp telnet 23/udp # 24 - private mail system lmtp 24/tcp # LMTP Mail Delivery lmtp 24/udp # LMTP Mail Delivery smtp 25/tcp mail smtp 25/udp mail time 37/tcp timserver time 37/udp timserver rlp 39/tcp resource # resource location rlp 39/udp resource # resource location nameserver 42/tcp name # IEN 116 nameserver 42/udp name # IEN 116 (省略)
2. /etc/protocols
トランスポートプロトコルメイトトランスポートプロトコル番号の対応表。以下は冒頭の抜粋。
(省略) # See also http://www.iana.org/assignments/protocol-numbers ip 0 IP # internet protocol, pseudo protocol number hopopt 0 HOPOPT # hop-by-hop options for ipv6 icmp 1 ICMP # internet control message protocol igmp 2 IGMP # internet group management protocol ggp 3 GGP # gateway-gateway protocol ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'') (省略)
3. /etc/rpc
RPCサービス名とプログラム番号の対応表。以下は冒頭の抜粋。
(省略) portmapper 100000 portmap sunrpc rpcbind rstatd 100001 rstat rup perfmeter rstat_svc rusersd 100002 rusers nfs 100003 nfsprog (省略)
4. /etc/nsswitch.conf
ネームサービススイッチ(NSS)の設定を行うファイル。
5. /etc/host.conf
名前解決をする際に、DNSに問い合わせるか、/etc/hostsの設定を見るか、その優先順位を決めるファイル。下の例では、/etc/hostsに問い合わせた後、DNSサーバーを用いて名前解決をする。
order hosts, bind
6. /etc/resolv.conf
DNSサーバーのIPアドレスやドメインを指定するファイル。名前解決でDNSを参照するとき、このファイルの順番で名前解決を試みる。以下はその例。
nameserver 127.0.0.1
7. /etc/hosts
ホスト名とIPアドレスの対応表。以下は冒頭の抜粋。127.0.0.1の正式名称はlocalhost.localdomainであり、localhostというのはそのエイリアスである。
127.0.0.1 localhost.localdomain localhost
8. /etc/networks
ネットワークアドレスとネットワーク名の対応表。デフォルトでは存在しない可能性がある。
PEAR::VersionControl_SVNが3年ぶりのバージョンアップ
昨日、PEAR::VersionControl_SVNが3年ぶりにバージョンアップしたようだ。0.3.0alpha1→0.31(alpha)。こんなライブラリもあったのか。ネットで調べてみると少しは日本語の情報があってびっくり。どうやらPHP版AntといわれているPhingで使われてもいるようだ。というか、ネットで見つけた情報のほとんどはPhing関連だった。
マニュアルにも
* Build your own WYSIWYG web interface to a Subversion repository.
とあるくらいだから、PHPで、使い勝手のいい、オープンソースのWebレポジトリビューアを作ってはくれないかな。かな。
PEAR :: Package :: VersionControl_SVN
http://pear.php.net/package/VersionControl_SVN/
PEAR :: Manual :: VersionControl_SVN(日本語マニュアル)
http://pear.php.net/manual/ja/package.tools.versioncontrol-svn.php
PHPからSubversionクライアントを操作するVersionControl_SVN:phpspot開発日誌
http://phpspot.org/blog/archives/2006/07/phpsubversionve.html
PHP5でTracなPhrac:phpspot開発日誌
http://phpspot.org/blog/archives/2006/05/php5tracphrac.html
KoshigoeBLOG: PEARのVersionControl_SVNの現状はいかに?
http://blog.koshigoe.jp/archives/2006/10/pearversioncont_1.html
ハタさんのブログ : テスト完了後にSVNのコミットをするPhingTask
http://blog.xole.net/article.php?id=486
PEAR::Math_Complexを使ってみた。
以前、PEARのパッケージリストで気になったものをリストアップしていたのだが、なんとなく暇だったのでリストを消費しようと思う。まずは、PEAR::Math_Complex。複素数を扱うライブラリだ。日本語限定でググったら、PEARマニュアルのコピーサイト以外出てこない。なんというマイナーライブラリ。
さて、実際の使用方法だが、やることは単純なので、ソースコードとその結果を見比べてもらったほうが早い。
-
require_once('Math/Complex.php');
-
require_once('Math/ComplexOp.php');
-
-
/**
-
* 素数を作成する
-
*/
-
$a1 = 4;
-
$b1 = 3;
-
$z1 = new Math_Complex($a1, $b1);
-
-
/**
-
* 簡単な文字列として表示する
-
*/
-
-
/**
-
* 実数部を返す
-
*/
-
-
/**
-
* 虚数部を返す
-
*/
-
-
/**
-
* 絶対値を返す
-
*/
-
-
/**
-
* 絶対値の2乗を返す
-
*/
-
-
/**
-
* 偏角を返す
-
*/
-
-
/**
-
* 共役複素数
-
*/
-
$z2 = Math_ComplexOp::conjugate($z1);
-
-
/**
-
* 負の数
-
*/
-
$z2 = Math_ComplexOp::negative($z1);
でその結果が、
-
toString() : 4 + 3i
-
getReal() : 4
-
getIm() : 3
-
abs() : 5
-
abs2() : 25
-
arg() / angle() : 0.643501108793ラジアン
-
arg() / angle() : 36.8698976458度
-
-
Notice: Only variable references should be returned by reference in ???\pear\Math\ComplexOp.php on line 206
-
conjugate() : 4 - 3i
-
-
Notice: Only variable references should be returned by reference in ???\pear\Math\ComplexOp.php on line 223
-
negative() : -4 - 3i
ちなみに、phpのバージョンは5.2.0、xampp on Windowsで実行しています。T_NOTICE吐き出されてしまいました。このエラーはMojavi 2やXOOPSを使っていた人には懐かしい参照系のエラーです。ComplexOp.phpを見てみると、return new Math_Complex()がいたるところに(というか全関数に?)存在していました。
■実際のソースコードの一部
-
function &conjugate (&$c1)
-
{
-
if (!Math_ComplexOp::isComplex($c1))
-
return PEAR::raiseError('argument is not a PEAR::Math_Complex object');
-
return new Math_Complex($c1->getReal(), -1 * $c1->getIm());
-
}
■修正例
-
function &conjugate (&$c1)
-
{
-
if (!Math_ComplexOp::isComplex($c1))
-
return PEAR::raiseError('argument is not a PEAR::Math_Complex object');
-
$c2 =& new Math_Complex($c1->getReal(), -1 * $c1->getIm());
-
return $c2;
-
}
ということで、結論。Math_Complexは、複素数を作るだけなら簡単。計算をしようとすると、E_NOTICEが出るので、自分でライブラリ書き換える必要がある。でした。
ちなみに・・・PEAR::Math_Matrixも試そうとしたのですが、PHPUnitのVer0.6.2以前が必要とか・・・既にVer1.3.2が入ってるので諦めました。
[php]PEAR::DBからMDB2への移行を今するべきか
まだ、PEAR::DBをお使いの方へ:phpspot開発日誌
http://phpspot.org/blog/archives/2007/09/peardb.html
【PHP TIPS】 53. まだ、PEAR::DBをお使いの方へ:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20070827/280396/
phpied.com ? Blog Archive ? DB-2-MDB2
http://www.phpied.com/db-2-mdb2/
未だにPEAR::DBの影響力は強い。php4の初期の頃に作ったプログラムなんかにはちゃっかりPEAR::DBが根を張っていたり、PEARの初期の頃からあるPEAR::DB_DaraObjectなどのライブラリはデフォルトでPEAR::DBを使ったりする。PEAR::DB_DaraObjectも今ではPEAR::MDB2をサポートしてるが、それはオプショナルである。
最初に貼ったいくつかの記事は。DBからMDB2に移行しましょうという記事。ただ、あまりにもPEAR::DBの影響が大きいのであれば、ちょっと待って欲しい。PEARは2008年2月1日にPEAR 2をリリーするが、PEAR 2はGoPHP5に参加しているため、PEAR 2からはPHP5.2以降しかサポートしなくなる。PEAR::DBまわりで大幅にリファクタリングするのであればPHP 5/PEAR 2の動向を見極めてからの方がいいのではないだろうか。PEAR::DBを使っているあなたのプログラムはリファクタリングをしなくても動いているのだから。
