[php][Eclipse]PDT(Eclipse PHP Development Tools) 1.0リリース

Posted under php by uechoco on 木曜日 20 9月 2007 at 23 : 50 : 55

巷で話題ですが、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]ネットワークの設定ファイル

Posted under Linux by uechoco on 水曜日 19 9月 2007 at 22 : 26 : 42

ネットワークの設定の主なファイルは以下のものがある。

  1. /etc/services
  2. /etc/protocols
  3. /etc/rpc
  4. /etc/nsswitch.conf
  5. /etc/host.conf
  6. /etc/resolv.conf
  7. /etc/hosts
  8. /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年ぶりのバージョンアップ

Posted under php by uechoco on 火曜日 18 9月 2007 at 09 : 47 : 51

昨日、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を使ってみた。

Posted under php by uechoco on 火曜日 18 9月 2007 at 00 : 07 : 18

以前、PEARのパッケージリストで気になったものをリストアップしていたのだが、なんとなく暇だったのでリストを消費しようと思う。まずは、PEAR::Math_Complex。複素数を扱うライブラリだ。日本語限定でググったら、PEARマニュアルのコピーサイト以外出てこない。なんというマイナーライブラリ。

さて、実際の使用方法だが、やることは単純なので、ソースコードとその結果を見比べてもらったほうが早い。

PHP:
  1. require_once('Math/Complex.php');
  2. require_once('Math/ComplexOp.php');
  3.  
  4. /**
  5.  * 素数を作成する
  6.  */
  7. $a1 = 4;
  8. $b1 = 3;
  9. $z1 = new Math_Complex($a1, $b1);
  10.  
  11. /**
  12. * 簡単な文字列として表示する
  13. */
  14. echo "toString() : ", $z1->toString(), "<br />\n";
  15.  
  16. /**
  17.  * 実数部を返す
  18.  */
  19. echo "getReal() : ", $z1->getReal(), "<br />\n";
  20.  
  21. /**
  22.  * 虚数部を返す
  23.  */
  24. echo "getIm() : ", $z1->getIm(), "<br />\n";
  25.  
  26. /**
  27.  * 絶対値を返す
  28.  */
  29. echo "abs() : ", $z1->abs(), "<br />\n";
  30.  
  31. /**
  32.  * 絶対値の2乗を返す
  33.  */
  34. echo "abs2() : ", $z1->abs2(), "<br />\n";
  35.  
  36. /**
  37.  * 偏角を返す
  38.  */
  39. echo "arg() / angle() : ", $z1->arg(), "ラジアン<br />\n";
  40. echo "arg() / angle() : ", rad2deg($z1->arg()), "度<br />\n";
  41.  
  42. /**
  43.  * 共役複素数
  44.  */
  45. $z2 = Math_ComplexOp::conjugate($z1);
  46. echo "conjugate() : ", $z2->toString(), "<br />\n";
  47.  
  48. /**
  49.  * 負の数
  50.  */
  51. $z2 = Math_ComplexOp::negative($z1);
  52. echo "negative() : ", $z2->toString(), "<br />\n";

でその結果が、

CODE:
  1. toString() : 4 + 3i
  2. getReal() : 4
  3. getIm() : 3
  4. abs() : 5
  5. abs2() : 25
  6. arg() / angle() : 0.643501108793ラジアン
  7. arg() / angle() : 36.8698976458
  8.  
  9. Notice: Only variable references should be returned by reference in ???\pear\Math\ComplexOp.php on line 206
  10. conjugate() : 4 - 3i
  11.  
  12. Notice: Only variable references should be returned by reference in ???\pear\Math\ComplexOp.php on line 223
  13. negative() : -4 - 3i

ちなみに、phpのバージョンは5.2.0、xampp on Windowsで実行しています。T_NOTICE吐き出されてしまいました。このエラーはMojavi 2やXOOPSを使っていた人には懐かしい参照系のエラーです。ComplexOp.phpを見てみると、return new Math_Complex()がいたるところに(というか全関数に?)存在していました。

■実際のソースコードの一部

PHP:
  1. function &conjugate (&$c1)
  2. {
  3.   if (!Math_ComplexOp::isComplex($c1))
  4.     return PEAR::raiseError('argument is not a PEAR::Math_Complex object');
  5.   return new Math_Complex($c1->getReal(), -1 * $c1->getIm());
  6. }

■修正例

PHP:
  1. function &conjugate (&$c1)
  2. {
  3.   if (!Math_ComplexOp::isComplex($c1))
  4.     return PEAR::raiseError('argument is not a PEAR::Math_Complex object');
  5.   $c2 =& new Math_Complex($c1->getReal(), -1 * $c1->getIm());
  6.   return $c2;
  7. }

ということで、結論。Math_Complexは、複素数を作るだけなら簡単。計算をしようとすると、E_NOTICEが出るので、自分でライブラリ書き換える必要がある。でした。

ちなみに・・・PEAR::Math_Matrixも試そうとしたのですが、PHPUnitのVer0.6.2以前が必要とか・・・既にVer1.3.2が入ってるので諦めました。


[php]PEAR::DBからMDB2への移行を今するべきか

Posted under php by uechoco on 月曜日 17 9月 2007 at 16 : 25 : 02

まだ、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を使っているあなたのプログラムはリファクタリングをしなくても動いているのだから。


« 前ページへ次ページへ »

Copyright © 2012 うえちょこ@ぼろぐ. WP Theme created by Web Top.