home ホーム search 検索 -  login ログイン  | help ヘルプ

find 検索

841 - 850 / 1320    [|<]  [|<]  [<]  81  82  83  84  85  86  87  88  89  90   [>]  [>|][>|]
タイトル/名前 更新者 更新日
日記/2010/01/28/PackageProjectorのdir_roles用patch送付 msakamoto-sf 2010-01-28 21:51:15
日記/2010/01/28/pearhub.org msakamoto-sf 2010-01-28 21:46:07
予告:第49回PHP勉強会で、JOJOのDIO様がBrainF*ckで"HelloWorld"するようです。 msakamoto-sf 2010-01-23 23:55:27
日記/2010/01/23/URL短縮サービス msakamoto-sf 2010-01-23 23:30:46
日記/2010/01/22/習志野市に引っ越しました。 msakamoto-sf 2010-01-22 22:52:01
PHP msakamoto-sf 2010-01-19 21:28:31
日記/2010/01/19/ PEAR_PackageProjector のdir_roles有効化patch msakamoto-sf 2010-01-19 15:31:47
日記/2010/01/19/ PEAR_PackageFileManager_Plugins の File.php で"ignore"がおかしい。 msakamoto-sf 2010-01-19 15:19:48
日記/2010/01/18/PEAR_PackageProjectorでディレクトリに対してroleを設定できない・・・ msakamoto-sf 2010-01-18 23:47:27
日記/2010/01/17/Jsphonってcodereposに移動してたんだ・・・。 msakamoto-sf 2010-01-17 12:02:39
ソート項目 / ソート順     1ページ 件ずつ表示

日記/2010/01/28/PackageProjectorのdir_roles用patch送付  

所有者: msakamoto-sf    作成日: 2010-01-28 21:48:18
カテゴリ: PHP 

日記/2010/01/19/ PEAR_PackageProjector のdir_roles有効化patch で作成したpatchをソースコード中に書いてあったメールアドレスに送ってみました。

あと念のため、はてなダイアリの方からTBを打ってみました。採用してくれるかな・・・wktk

TB先:


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-28 21:51:15
md5:53ed66ddd870960fc53a61c7e782d6e2
sha1:3fdf9075168d0f42169788a23089983633e75b0d

日記/2010/01/28/pearhub.org  

所有者: msakamoto-sf    作成日: 2010-01-28 21:44:24
カテゴリ: PHP 

こんなのあったんだ、知らなかったな・・・。SimpleTestとかもこっちに来ちゃってるし。

PEARチャネルサーバはPIRUMというのを使っているらしい。

やっぱり英語で来られちゃうと、きっついよな・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-28 21:46:07
md5:c38e1a507d317a0ba3dca38fe17c7c70
sha1:bebdcc6a4555ca96fa1b7077c84393ffc4ab7150

予告:第49回PHP勉強会で、JOJOのDIO様がBrainF*ckで"HelloWorld"するようです。  

所有者: msakamoto-sf    作成日: 2010-01-23 23:34:57
カテゴリ: PHP 

やる夫・やらない夫シリーズでお馴染みの、「でっていう」も参加するよ!

一足早めに「PHPでBrainF*ck」したい人は、openpearから"Acme_BrainPhack"をインストールしよう!

pear channel-discover openpear.org
pear install openpear/Acme_BrainPhack

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-23 23:55:27
md5:b2ed304d06fabc0c75daae4c9fe61b6e
sha1:1c8fd7399f479e05c91e29911e6d3debedbb2d03

日記/2010/01/23/URL短縮サービス  

所有者: msakamoto-sf    作成日: 2010-01-23 23:28:59
カテゴリ:

が流行っているの、何でだろう・・・って今まで謎だったんだけれど。
Twitterのせい?140何文字かに収めるため?そう考えれば納得。
Twitterはイマイチ使う気になれないので放置してるけれど。
多分、「お腹いっぱいふわふわ~」とか「しろたんもふもふ~」とかで埋め尽くしそうな気がして。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-23 23:30:46
md5:7acd694c8d55a266e206d1ec39577eee
sha1:029091ea3fce354389ba766aa5f7e32dce47abaf

日記/2010/01/22/習志野市に引っ越しました。  

所有者: msakamoto-sf    作成日: 2010-01-22 22:47:40
カテゴリ:

昨日、千葉県は習志野市に引っ越しました。ようやく片づけも終わりました。

家賃がほぼ半額。前の所が墨田区で賃貸マンションで、今度は学生や単身者向けのワンルームアパートなのでまぁ半額になっちゃいますね・・・。

しばらくここで隠遁します。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-22 22:52:01
md5:0f9311492ef37b1ed05b3911d44b257f
sha1:46f61d0aa5fe04bec3ef5d9ecc269dbd98069429

PHP  

所有者: msakamoto-sf    作成日: 2008-12-15 08:12:02
カテゴリ: PHP 

はてなダイアリ時代の記事で、今でも見たりアクセスがある記事




プレーンテキスト形式でダウンロード
現在のバージョン : 2
更新者: msakamoto-sf
更新日: 2010-01-19 21:28:31
md5:59b0b8d7f4e95ee3ea89debf53a03abc
sha1:93c849579dd3adb821a49b4ac2faa156735a76e5

日記/2010/01/19/ PEAR_PackageProjector のdir_roles有効化patch  

所有者: msakamoto-sf    作成日: 2010-01-19 15:27:46
カテゴリ: PHP 

日記/2010/01/18/PEAR_PackageProjectorでディレクトリに対してroleを設定できない・・・
で愚痴った、PEAR_PackageProjectorでdir_rolesが使えない点を修正するpatchを作ってみました。
修正行数自体はほんの数行程度なんだけど、この数行を特定するのに随分手間取ってしまった・・・。

あとはこれを作者に送って、OKならSVNに反映→packageリリースしてもらって、openpearの方にも反映して貰って・・・ようやくAcme_BrainPhackがリリース出来ます。testコードをパッケージングしたいばかりに随分遠回りになっちゃった・・・。゚(゚´Д`゚)゚。

Index: PEAR/PackageProjector/Package.php
===================================================================
--- PEAR/PackageProjector/Package.php	(リビジョン 1535)
+++ PEAR/PackageProjector/Package.php	(作業コピー)
@@ -89,6 +89,14 @@
         $this->Installgroups[$groupname] = $groupname;
     }
     
+    public function addDirectoryRole($path, $role)
+    {
+        if (isset($this->options['dir_roles'])) {
+            $this->options['dir_roles'] = array();
+        }
+        $this->options['dir_roles'][$path] = $role;
+    }
+    
     public function addExceptions($path, $role)
     {
         if (isset($this->options['exceptions'])) {
@@ -159,6 +167,8 @@
         $this->pkg->addRelease();
 
         $this->pkg->generateContents();
+        // for debug dump:
+        //$result = $this->pkg->debugPackageFile();
         $result = $this->pkg->writePackageFile();
         if (PEAR::isError($result)) {
             throw new PEAR_Exception($result->getMessage(), $result->getCode());
Index: PEAR/PackageProjector/ProjectInfo/Attribute.php
===================================================================
--- PEAR/PackageProjector/ProjectInfo/Attribute.php	(リビジョン 1535)
+++ PEAR/PackageProjector/ProjectInfo/Attribute.php	(作業コピー)
@@ -192,7 +192,11 @@
         $role = $this->_getAttr('role');
         if (!is_null($role)) {
             $handler->buildMessage(5, "Add attribute 'role' of [{$this->path}]... {$role}", true);
-            $package->addExceptions($this->path, $role);
+            if (is_dir($fullpath)) {
+                $package->addDirectoryRole($this->path, $role);
+            } else {
+                $package->addExceptions($this->path, $role);
+            }
         }
         //
         $platform = $this->_getAttr('platform');

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-19 15:31:47
md5:011a60d2518c59c1db5b9e33986bf48b
sha1:b6aa12054d2afde40a7272c163817fd52a0cb6ab

日記/2010/01/19/ PEAR_PackageFileManager_Plugins の File.php で"ignore"がおかしい。  

所有者: msakamoto-sf    作成日: 2010-01-19 15:18:04
カテゴリ: PHP 

Windows上でPEAR_PackageFileManager2を久しぶりに触っていたら、どうも "ignore" 指定がうまく動かない。
ファイルに対する"ignore"は効くのだけれど、ディレクトリに対する"ignore"がignoreしてくれない。

これはPEAR_PackageFileManager2の問題と言うよりは、PEAR_PackageFileManager_Pluginsに含まれるFile.phpが原因らしい。

PEAR/PackageFileManger/File.php

これの _checkIgnore() メソッドが、各ファイルに対して"ignore"するか判定するメソッドになっている。
流れ的には_checkIgnore()の前に_setupIgnore()が呼ばれていて、この中でワイルドカードなどを正規表現に変換している。

どうもその辺が怪しい気がしている。
以前にもPackageFileManager周りでバグを発見しているのだけれど、何となくなんだがWindows上での動作があまりテストされていないような気がする。
http://pear.php.net/bugs/bug.php?id=12023
↑これが前回見つけたバグ(よく見たら同じFile.phpだし!!)。
原因こそPHP本体のrealpath()のWindows/UNIX間での差異だったのだけれど、そもそもWindows上で動かしていれば自分がレポートするよりも早く直されていた筈で・・・。やっぱりWindows上での動作確認は優先度が低いのかな・・・。゚(゚´Д`゚)゚。

Windows上でPEAR_PackageFileManager_Plugins の checkIgnore() のregressionテストを実行すると、ちょうどディレクトリパスのところだけFAILする。

> pear run-tests -r (...)tests\PEAR_PackageFileManager_Plugins\tests\PEAR_PackageFileManager_File\checkIgnore
Running 9 tests
PASS PEAR_PackageFileManager_File->checkIgnore, multiple non-match[(...)\test_complex_multiple_no.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, multiple match[(...)\test_complex_multiple_pass.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, complex non-match[(...)\test_complex_no.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, empty array[(...)\test_emptyarray.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, non-array[(...)\test_nonarray.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, simple non-match with directory[(...)\test_simple_dir_no.phpt]
FAIL PEAR_PackageFileManager_File->checkIgnore, simple directory, match[(...)\test_simple_dir_pass.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, simple non-match[(...)\test_simple_no.phpt]
PASS PEAR_PackageFileManager_File->checkIgnore, simple match[(...)\test_simple_pass.phpt]
wrote log to "(...)\run-tests.log"
TOTAL TIME: 00:04
8 PASSED TESTS
0 SKIPPED TESTS
1 FAILED TESTS:
(...)\tests\PEAR_PackageFileManager_Plugins\tests\PEAR_PackageFileManager_File\checkIgnore\test_simple_dir_pass.phpt

"test_simple_dir_pass.phpt"中のテストコード本体:

// 1 = ignore - 0 = include
$packagexml->_setupIgnore(array('frog*/'), 1);
$packagexml->_setupIgnore(array('frog*/'), 0);

$res = $packagexml->_checkIgnore('test.php', 'anything\\froggoes\\test.php', 1);
$phpunit->assertNotFalse($res, 'wrongo 1');

$res = $packagexml->_checkIgnore('test.php', 'anything\\froggoes\\test.php', 0);
$phpunit->assertNotTrue($res, 'wrongo 2');

"ignore"検出は正規表現(preg_match)を使っているが、ワイルドカードなどを正規表現に変換する_getRegExpableSearchString()メソッドは以前(Pluginsに分離する前、Xhwlayのリリースに使っていた時点)と変わっていない。

少し弄ってみたけど、何か泥沼に入りそうだったので一旦逃亡します・・!
UNIX上ならno problemだったかもしれないし・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-19 15:19:48
md5:75461f21d25a6e055f4c96a5ee2bf42a
sha1:2bdd63ba397b4995d7aabb5907e87dd16e804b1d

日記/2010/01/18/PEAR_PackageProjectorでディレクトリに対してroleを設定できない・・・  

所有者: msakamoto-sf    作成日: 2010-01-18 23:29:58
カテゴリ: PHP 

今日の数時間ほどのhackなので間違ってたらごめんなさい。

PEAR_PackageProjectorを使ってパッケージ作成を試みたのですが、ディレクトリに対してrole設定をできていないような気がします。

PEAR_PackageManagerはPEAR_PackageManager2を呼び出していますが、PEAR_PackageManager2の場合ディレクトリに対してrole指定したい場合は、setOptions()に渡す連想配列で次のように指定します。

$pkg->setOptions(array(
    'dir_roles' => array(
        'dir1' => 'src',
        'dir2' => 'doc',
        'dir3' => 'test',
        ...

こうすることで、'dir1'は"PEAR"ディレクトリに、'dir2'はpear.iniの"doc_dir"で指定されたディレクトリに、'dir3'は同じくpear.iniの"test_dir"で指定されたディレクトリに配置されるようになります。

PEAR_PackageProjectorにおけるファイル/ディレクトリのrole指定はbuild.confで以下のようにします。

[file://(src/ディレクトリに対する相対ディレクトリ)]
role = {"php" or "data" or "doc" or "test" or "script" or "src"}

この設定の解析結果を元に呼び出され、内部状態を設定するコードは以下のようです。
PEAR/PackageProjector/Configure/File.php :

public function setting(PEAR_PackageProjector_ProjectInfo $projinfo, $key, $value)
{
    switch($key) {
    case 'ignore':
        $projinfo->getAttribute($this->filepath)->setIgnore(true);
        return true;
    case 'platform':
        $projinfo->getAttribute($this->filepath)->setPlatform($value);
        return true;
    case 'install':
        $projinfo->getAttribute($this->filepath)->setInstall($value);
        return true;
    case 'commandscript':
        $projinfo->getAttribute($this->filepath)->setCommandScript($value);
        return true;
    case 'role':
        $projinfo->getAttribute($this->filepath)->setRole($value);
        return true;
    }
    return false;
}
$projinfo->getAttribute($this->filepath)

で、filepathに対応するPEAR_PackageProjector_ProjectInfo_Attributeインスタンスが生成され、roleなりignoreなりの属性情報が保存されます。

ここまでは問題無さそうに思えます。ですが、AttributeからsetOptions()に渡すところでdir_rolesとして渡っていないように見えます。
Visitorパターンを使っているようですが、PEAR_PackageProjector_ProjectInfo_Attributeクラスのvisit()メソッドの"role"の所を見てみると、addExceptionとして'exceptions'に入れているようです。

$role = $this->_getAttr('role');
if (!is_null($role)) {
    $handler->buildMessage(5, "Add attribute 'role' of [{$this->path}]... {$role}", true);
    $package->addExceptions($this->path, $role);
}

これにより、setOptions()で渡す連想配列では"dir_roles"ではなく"exceptions"の方に情報が渡されます。
"exceptions"はファイル一つ一つに対してroleなどを上書く設定ですので、ディレクトリには影響しません。
実際にPackageManager2のソースをあたっても、exceptionsを用いているのはファイルに対する処理で、ディレクトリに対する処理には出てきません。

というわけでどうもこれが怪しい・・・ように思えるのですが、まだPEAR_PackageProjectorも読み切ったわけでもないので、もうちょっと調べてみます。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-18 23:47:27
md5:11b03058939664c4ba8128ef79cfc182
sha1:49e7b222db69d1ff9a3ff79c7e35ab83e5a5d197

日記/2010/01/17/Jsphonってcodereposに移動してたんだ・・・。  

所有者: msakamoto-sf    作成日: 2010-01-17 11:58:31
カテゴリ: PHP 

Xhwlayで、Rendererの一例としてJsphonつかったJSON出力を使ってて、その影響でパッケージの依存関係にJsphon入れてて、でもhawklab止まっちゃってて弱ったナー、どうしようかとずるずる引きずってたのだけれど、codereposの方にhalt氏が移動してくれてたんですね。

依存関係とあとjsphon使ったtestcaseも削り、READMEに一言注意書き入れようかな・・・。
というかsf.net使ってPEARパッケージリリースしたりするのも(パッケージ作成が)しんどいので、Xhwlayもopenpear.orgに移行しようかな・・・。


プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2010-01-17 12:02:39
md5:587d7767ea67e7c911fe8245c9e73a7f
sha1:5d1ffb538b1b6ce236c92122cfdf44b1ea2e84f2