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

2017-11-14 復活!! このエントリーを含むブックマーク このエントリーのブックマークコメント

最近は待っているIoTについて書くつもり!!

トラックバック - http://d.hatena.ne.jp/magiwo/20171114

2010-08-19 Safari 判定は難しい? このエントリーを含むブックマーク このエントリーのブックマークコメント

Safariの判定に

function isSafari() {return /a/.__proto__=='//'}

を使っていたけど、これだとAndroid1.6のChromeでTRUEを返します。

なので、ユーザエージェントを使わず、スマートにAndroid1.6のChromeを除外できないか探したけど見つからず・・・

とりあえず、navigator.appVersionで判定するロジックを追加

function isSafari() {return /a/.__proto__=='//' && !window.navigator.appVersion.match(/(Chrome|Android)/i) }

どなたかもっとスマートやり方教えてー

※元の判定ロジックのネタ元はこちら

トラックバック - http://d.hatena.ne.jp/magiwo/20100819

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;

トラックバック - http://d.hatena.ne.jp/magiwo/20100204

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 ゴメンナサイ。
修正しました。リリース時のオプション設定まるまるわすれていました。

トラックバック - http://d.hatena.ne.jp/magiwo/20100130

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時頃リリースされました

トラックバック - http://d.hatena.ne.jp/magiwo/20090831