過去と他人はかえられないが、未来と自分はかえられる このページをアンテナに追加 RSSフィード

2010-02-04 PEAR_PackageProjector1.0.3リリース

[]PEAR_PackageProjector1.0.3リリースしました。 13:40 PEAR_PackageProjector1.0.3リリースしました。 - 過去と他人はかえられないが、未来と自分はかえられる を含むブックマーク PEAR_PackageProjector1.0.3リリースしました。 - 過去と他人はかえられないが、未来と自分はかえられる のブックマークコメント

そしてごめんなさい。

コマンドが使えなくなっていたのを修正しました。

k2ak2a 2010/12/09 18:28 いつも利用させていただいています。
[file://] で複数のディレクトリについてroleを設定したいのですが、最後のものしか有効にならないようです。
以下の変更を行ってみたのですが、問題ありませんでしょうか。


--- PEAR/PackageProjector/Package.php.org 2010-10-09 01:48:44.000000000 +0900
+++ PEAR/PackageProjector/Package.php 2010-12-09 20:12:38.000000000 +0900
@@ -91,7 +91,7 @@

public function addDirectoryRole($path, $role)
{
- if (isset($this->options['dir_roles'])) {
+ if (!isset($this->options['dir_roles'])) {
$this->options['dir_roles'] = array();
}
$this->options['dir_roles'][$path] = $role;

2010-01-30 PEAR_PackageProjector1.0.2リリース

[]PEAR_PackageProjector1.0.2リリース 13:40 PEAR_PackageProjector1.0.2リリース - 過去と他人はかえられないが、未来と自分はかえられる を含むブックマーク PEAR_PackageProjector1.0.2リリース - 過去と他人はかえられないが、未来と自分はかえられる のブックマークコメント

ディレクトリーに対してのroleの設定が効いていなかったのを修正しました。

msakamoto-sfサン謝謝

ソース

http://openpear.org/package/PEAR_PackageProjector

ドキュメント

http://servlet.sakura.ne.jp/PEAR_PackageProjector/doc/

なにか不都合や要望があればココにコメントにお願いします。

msakamoto-sfmsakamoto-sf 2010/01/30 18:20 dir_roles確認出来ました!ありがとうございます。
あと、さらにさらにで申し訳ないのですが、openpearでリリースする時にscriptの設定無しでリリースしていませんか?pearprojのbatやshが、binではなくてdataディレクトリにインストールされてしまいました・・・(´Д⊂グスン

magiwomagiwo 2010/02/04 22:10 ゴメンナサイ。
修正しました。リリース時のオプション設定まるまるわすれていました。

2009-08-31 PHPでマクロを使えるようにするライブラリ作りました。

[]PHPでマクロを使えるようにするライブラリ作りました。 10:59 PHPでマクロを使えるようにするライブラリ作りました。 - 過去と他人はかえられないが、未来と自分はかえられる を含むブックマーク PHPでマクロを使えるようにするライブラリ作りました。 - 過去と他人はかえられないが、未来と自分はかえられる のブックマークコメント

名前はStream_Macroです。

C言語のようにマクロ機能が使えるようになります。

 http://openpear.org/package/Stream_Macro

作成理由

元々既存のPHPファイルやテンプレートファイルを雛形にしてソース生成したいと思ったけど、

既存のテンプレートエンジンやジェネレータを以下の問題があって断念しました。

  1. テンプレートファイル雛形をテンプレートエンジンで記述するとわけわかめになる。
  2. PHPで直書いても良いけど今度は、PHPコードが生成前に使うコードか、生成後に使うコードか、わけわかめになる。
  3. Zend Frameworkなどにもコードジェネレートはあって、クラス定義などする場合は、とても便利だけど

 処理部分は結局、文字列で定義しないといけない。

という理由があって、考えた結果、「マクロなら見やすくね?」と思い作りました。

利用方法

実装はストリーム関数を使っています

※ストリーム関数を知らない方は、http://itpro.nikkeibp.co.jp/article/COLUMN/20070117/258941/を参照して下さい。

なので、マクロ機能は、include, require, file_get_contents, fopenで使えるようになります。

ちなみに読込専用です。

マクロ未使用時
include "hoge.php";
マクロ使用時
$opts = array();
$opts['debug'] = true;
Stream_Macro::registByArray('macro', $opts);
include "macro://hoge.php";

サポートする構文

インクルード

#include [ファイル名]

定義

#define 変数名 値

#define マクロ関数 式

条件

#ifdef 変数名

#if 条件式

#else

#endif

ループ

#for 式

#endfor

#foreach 式

#endforeach

#while 式

#endwhile

インストール

sudo pear install openpear/Stream_Macro

のはずなんですけど、2009/08/31の時点でリリース処理を行ってもリリースされない(メールも来ない)状態なので、

すぐ使ってみたい方は、

sudo pear install http://svn.openpear.org/Stream_Macro/trunk/release/Stream_Macro-0.1.0.tgz

を実行して下さい。

*1

リリースできるようになったらまたご連絡します。

*1:2009/08/31 14時頃リリースされました

2009-05-24 PEAR_PackageProjector1.0.1リリース

[]PEAR_PackageProjector1.0.1リリース、ドキュメント生成に対応しました。 19:00 PEAR_PackageProjector1.0.1リリース、ドキュメント生成に対応しました。 - 過去と他人はかえられないが、未来と自分はかえられる を含むブックマーク PEAR_PackageProjector1.0.1リリース、ドキュメント生成に対応しました。 - 過去と他人はかえられないが、未来と自分はかえられる のブックマークコメント

ついこの前0.2.2をリリースしたばかりですが、またリリースです。

今回リリースの売りとしては、ドキュメントが生成できるようなった事です。

ドキュメントのチュートリアルははてな記法で記述できるのでいままで

敬遠しがちなマニュアル整備が楽になると思います。

主な変更点

  • コマンドオプション--project(-p)の初期値が"./"になりました。
  • コマンドオプション--config(-confg)の初期値が"build.conf"になりました。
  • コマンドオプション--updatedoc(-doc)が追加されました。これによりドキュメントが生成できるようになりました。
  • コマンドオプション--install(-i)が追加されました。これによりビルド後、自動的にPEARインストールが走るようになりました。
  • コマンドオプション--clear(-c)が削除されました。
  • コマンドオプション--tmpが削除されました。
  • メソッドPEAR_PackageProjector_Project#updatedoc()が追加されました。
  • メソッドPEAR_PackageProjector_Project#pearinstall()が追加されました。
  • メソッドPEAR_PackageProjector_Project#serialize()が追加されました。
  • メソッドPEAR_PackageProjector_Project#unserialize()が追加されました。
  • クラスPEAR_PackageProjector_MessageHandler_Callbackが追加されました。これにより出力結果を制御しやすくなりました。
  • メソッドPEAR_PackageProjector_Project#configure()にファイルパス以外に連想配列を指定することができるようになりました。これによりconfファイルを生成しなくても連想配列で設定できるようになります。

ソース

http://openpear.org/package/PEAR_PackageProjector

ドキュメント

http://servlet.sakura.ne.jp/PEAR_PackageProjector/doc/

なにか不都合や要望があればココにコメントにお願いします。

msakamoto-sfmsakamoto-sf 2010/01/28 06:35 トラックバックを打たせて頂きましたが、PEAR_PackageFileManager2側にdir_roles設定が渡っていないようでしたので、修正patchを作成してみました。

magiwomagiwo 2010/01/30 13:37 ご指摘ありがとうございます。
修正patch見させて頂きました。
触ってみたところ特に問題ないようなので1.0.2で反映させていただきました。
恥ずかしながらdir_rolesの存在自体知りませんでした。
勉強になります。

2009-05-21 PEAR_PackageProjector0.2.2リリース

[] 07:10 PEAR_PackageProjector0.2.2リリース - 過去と他人はかえられないが、未来と自分はかえられる を含むブックマーク PEAR_PackageProjector0.2.2リリース - 過去と他人はかえられないが、未来と自分はかえられる のブックマークコメント

はい、修正しました。

修正点

  • checkcodeが使えなくなっていた問題を解決しました。
  • 自作コマンドが作成できます。

サンプルは↓に書きます。

  • 依存するパッケージにPEAR_PackageFileManager_Plugins追加しました。

以前は、PEAR_PackageFileManager_FileがPEAR_PackageFileManagerと一緒にパッケージングされていた思うんですけど、いつの間(たぶん2009年4月頃)から分離していて、

んでもってPEAR_PackageFileManagerの依存するパッケージにPEAR_PackageFileManager_Pluginsがあるからバージョンアップすればかってに入るはずなんだけど、

自分の環境だとPEAR_PackageFileManager_Pluginsがインストールされなかったので追加しました。

自作コマンドの作り方(概要)

  • 手順
    1. プロジェクト作成
    2. コマンド本体を作成
    3. windowsでも使えるようにバッチファイルを作成
    4. build.confに設定を追加
    5. ビルドする
    6. pear install する
  • サンプルの仕様
    1. コマンド名はhellopearにします。
    2. 引数はなし
    3. コマンドを実行すると「Hello PEAR!!」と表示する
    4. コマンドのスクリプト本体はsrc/scripts直下に作成

自作コマンドの作り方(詳細)

1.プロジェクト作成

pearproj --create -p hellopear

2.コマンド本体を作成

src/scripts/hellopear.shを作成

#!@php_bin@
<?php
echo 'Hello PEAR!!';
?>

3.windowsでも使えるようにバッチファイルを作成

src/scripts/hellopear.batを作成

@echo off
"@php_bin@" -d include_path="@php_dir@" "@bin_dir@\hellopear" %*

4.build.confに設定を追加

[role]
sh = script

[file://scripts/hellopear.sh]
commandscript = hellopear

[file://scripts/hellopear.bat]
commandscript = hellopear.bat

「sh = script」を追加するのは、拡張子「.sh」のファイルをパッケージング対象にする為です。

5.ビルドする

コマンドラインで実行

build

6.pear install する

pear install release/hellopear-0.1.0.tgz

7.自作コマンドを実行する

hellopear

「Hello PEAR!!」と表示されるはずです。