広告

記事検索

MOVION.netについて

WEB技術に関することや、気になるWEBサイトなどについて個人的なメモを残すためのブログです。

運営サイト

2008年02月29日(金)

PHPのフレームワーク

PHPのフレームワークを自分用メモ。 以下、主なPHPのフレームワーク。

  • Symfony
    • http://www.symfony-project.org/
    • PHP5
    • The MIT License (他にも含まれてるけど・・・)
    • ベースはmojaviで、Railsっぽくなっている。
    • 今のところ、一番完成度が高い気がする。
    • 一人で作るようなWEBアプリにはあまり使う気がしない。
  • Zend Framework
    • http://framework.zend.com/
    • PHP5
    • New BSD License
    • まんま、Zendさんがつくってる。
    • 今のところ、自動生成系の機能はなさげ。
    • ライブラリ的要素の方が多い気が。
  • CakePHP
    • http://cakephp.org/
    • PHP4 / 5  (5対応というより、5でもエラーが出ないという感じで、プログラム自体が5でかかれている訳ではない。)
    • The MIT License
    • ケーキ(Cake)を焼けたり(bake)、名前の付け方がちょっとおもしろい。
    • ちょっとしたWEBアプリを作るにはよさげ。
  • Ethna
  • Piece Framework
    • 調査中

以下、現在はたぶん開発が停止している。

  • Maple (和製。DIコンテナとか)
  • Mojavi (一時期流行った。ダミーのホームページが復活してるみたい・・リンク押せないけど http://www.mojavi.org/
  • Agavi (Mojaviの派生。Railsとは違った方向に進んでたが)
2008年02月27日(水)

MySQLで関連テーブルの値を利用してUPDATEする

使える状況は限られますが、関連テーブルの値を利用してフィールドをアップデートする方法です。
※ MySQL バージョン 4.0.4以降でのみ有効な方法です。

「tbl」と[ref_tbl」の2つのテーブルが存在するとします。

  1. CREATE TABLE `tbl` (
  2.   `tbl_id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `subject` text,
  4.   `body` text,
  5.   `description` text,
  6.   PRIMARY KEY  (`tbl_id`)
  7. );
  8.  
  9. CREATE TABLE `ref_tbl` (
  10.   `ref_tbl_id` int(11) NOT NULL AUTO_INCREMENT,
  11.   `tbl_id` int(11) DEFAULT NULL,
  12.   `ref_value` text,
  13.   PRIMARY KEY  (`ref_tbl_id`)
  14. );

tblテーブルのdescriptionカラムに、ref_tblテーブルのref_valueカラムの値を追加する例です。

  1. UPDATE tbl,ref_tbl SET tbl.description = concat(tbl.description,‘ ‘,ref_tbl.ref_value) WHERE tbl.tbl_id = ref_tbl.tbl_id;
MySQL | 2008年02月27日(水) | コメント(0) | トラックバック(0)
2008年02月17日(日)

GEvent.removeListenerで一時的にリスナーを消す

GoogleMapsAPIで、地図上にAjaxで動的なマーカーを表示する場合、
地図を移動したらマーカーを再度よみこみ直す処理をつくってみました。

が、マーカーにクリックイベントをつけて吹き出しを表示するようにすると、
場所によっては吹き出しを表示するときに地図が移動するので、
移動し終わった時にマーカーが再読込されて、吹き出しが消えてしまう問題が

他にもいい方法がありそうですが、とりあえずremoveListenerで一時的にリスナーを消して、
無理矢理問題解決してみました。
※追記:残念ながら、不具合があります。

removeListener部分を実装する前。

修正後。
一見同じですが、
秋田辺りにあるマーカーをクリックすると違いがわかると思います。


そのソースコードの抜粋。
実際の例は、このページを参照してください。12行目。addListener時に、消すリスナーを保持しておくために、
reloadMarkerEventで返値を受けておきます。

  1. var reloadMarkerEvent;
  2. function load() {
  3.         if (GBrowserIsCompatible()) {
  4.                 map = new GMap2(document.getElementById("map"));
  5.                 map.addControl(new GLargeMapControl());
  6.                 map.addControl(
  7.                         new GMapTypeControl(),
  8.                     new GControlPosition(G_ANCHOR_TOP_RIGHT,
  9.                     new GSize(10,10)));
  10.                 map.setCenter(new GLatLng(36.705663020513555, 137.76159691810608), 5);
  11.                 displayMark(map);
  12.                 reloadMarkerEvent = GEvent.addListener(map, "moveend", reloadMark);
  13.         }
  14. }

5~10行目。openInfoWindowHtmlの前にいったんリスナーを消してます。
openInfoWindowHtmlの後に、移動が終わったら再度Listenerを追加するようにしてます。

  1. function addMarker( map, p, text ) {
  2.         var marker = new GMarker(p);
  3.         var wattingEvent;
  4.         GEvent.addListener( marker, "click", function() {
  5.                 GEvent.removeListener(reloadMarkerEvent);
  6.                 marker.openInfoWindowHtml(text);
  7.                 var wattingEvent = GEvent.addListener(map, "moveend", function() {
  8.                         reloadMarkerEvent = GEvent.addListener(map, "moveend", reloadMark);
  9.                         GEvent.removeListener(wattingEvent);
  10.                         });
  11.  
  12.                 });
  13.         map.addOverlay(marker);
  14.         return marker;
  15. }
2008年02月13日(水)

iノードの使用量を確認する(df -ih)

普通なかなかiノードが制限超えること無いと思いますが、
毎日、毎時、小さいファイルを大量に吐き出したりするシステムだと、
知らぬまにひどくiノードが増えてるかも・・・。

  1. df -ih

例)

  1. # df -ih
  2. Filesystem            Iノード  I使用   I残り I使用% マウント位置
  3. /dev/hda1               1.3M    176K    1.1M   15% /
  4. /dev/hda4               6.9M    1.9K    6.9M    1% /home
  5. none                     55K       1     55K    1% /dev/shm
  6. /dev/hda2              1003K     40K    963K    4% /var
2008年02月13日(水)

各ファイルシステム(パーティション)の使用量を確認する(df -mh)

各ファイルシステム(パーティション~の使用量(空容量)を確認するためのコマンド。
※大抵mオプションは不要だと思います。

  1. df -mh

例)

  1. # df -mh
  2. Filesystem          サイズ  使用  残り 使用% マウント位置
  3. /dev/hda1             9.7G  3.7G  5.5G  41% /
  4. /dev/hda3              55G  10M   45G   18% /home
  5. none                  218M     0  218M   0% /dev/shm
  6. /dev/hda2             7.7G  976M  6.4G  14% /var

ぼーっとMySQLをインストールして、
varの下にデータを置く設定なんかにしてると、
(大量の)初期データインポート中に容量いっぱいになって怒られてしまいます・・・。

muninとかcactiを仕掛けて監視してても気分で打ってしまうコマンド。