- blogs:
- cles::blog

PEARにproxyを使って接続するには


PEARのプロキシの設定のやり方がわからなくて時間を食ってしまったのでメモ。
あまり設定を変えたことがないので、知らなかったのですが、pearの設定はpear config-setというコマンドを通して行うようになってるんですね。config-getを使うと現在の設定値が参照できるようになっているみたいです。

PHPでモバイルとPCを区別する


PHPでモバイルとPCを区別してリダイレクトするスクリプトが必要になったのでNet_UserAgent_Mobileでサラッと書いてみました。
インストールはPEARなので、コマンドから一撃でインストールできます。
今回はPCとモバイルの振り分けができさえすればよかったので、こんな感じでした。
ライブラリ的には、DoCoMoとAUとSBの識別とかにも対応しているようです。

PEAR/Net_Url_Mapper

Webアプリを作るときに、SEO対策になるということでPATH_INFOを使ってアプリケーションにパラメータを渡す方法((NucleusのURLでいうところのFancyURL))をとるということもしばしばあるわけですが、PEARにはそのURLのパースと組み立てを行ってくれるライブラリがあるようです。
eringi blog: Pear/Net_Url_Mapper
今はたいていのフレームワークにURLをルーティングする機能が備わってるけど、その機能だけを抜き出したようなパッケージ。 やっつけで作ったオレオレフレームワークに組み込んだり、いまいち使い方が分からないEthnaのステキURLを代替できそう。
上記のページに例がありますが、これは自分でいろいろ書かなくて良いので楽そう。

Jsphon



Chart (WebFX)を使ってJavaScriptでグラフを作っていたんですが、PHPからJavaScriptを生成する処理を書いていると、おのずとPHPの中にJavaScriptが埋まっているような状態になるわけですが、これがかなり汚いのでちょっと整理することにしました。とりあえず、phpが吐くのはJSON形式のデータだけにして、JavaScriptからはAJAXで呼び出してeval()することによって動作させることにします。
そんなときに「PHPの変数→JSON」ということをやってくれるライブラリが欲しくなるわけですが、今回は王道のPEAR::Service_JSONではなく、Hawkさんの作ったJsphonを使ってみました。ライセンスはPHP License 3.0のようです。
Hawk's Laboratory Jsphon - JSON in PHP
Jsphon。pure PHPで書かれたJSONライブラリ。
Services_JSON等との機能比較表も作っておいた。まとめると、
* エラー処理も含めてPHP4/5両対応
* マルチバイト文字列処理にこだわりがある
あたりがJsphonの特長となる。逆にJSON仕様に含まれない独自機能などはない。またJSONのオブジェクト {}は常に連想配列に変換される
上記にも書かれていますが、Service_JSONと機能的には互換であり、日本語関係の機能が充実していて、PEARへの依存がないということが決め手になりました。
[Jsphon の続きを読む]
PEAR System_SharedMemory



NP_BlacklistでちょっとeAcceleratorの共有メモリ関数をいじくっていたんですが、ちょっと環境に依存しすぎなのでなんとか互換性が高い方法がないものかとPEARを眺めていたら面白いライブラリを見つけてしまいました。
PEAR :: Package :: System_SharedMemory
common OO-style shared memory API
System_SharedMemoryって見事にそのまんまな名前ですね。このライブラリは共有メモリ関数(一部、共有メモリでないものもある)を共通のインタフェイスで使えるようにするライブラリのようです。データベースに対するPEAR_DBのようなものだと思えばいいと思います。
[PEAR System_SharedMemory の続きを読む]
pear install Services_Hatena


PEARにServices_Hatenaが入っているというので調べてみたらいつの間にかPEARの正式なパッケージになっていました。
Services_Hatena が PEAR に収録:phpspot開発日誌
Web Servicesのカテゴリには、Amazon, Yahoo, Google, Ebay とあるなか Hatena も仲間入りしています^^
pearコマンドで簡単に入るので大いに活用できそうです。PHP4でも使えるのが嬉しいですね。
確かProposalのときは PHP5でないと駄目みたいに書いてあったはずなのですが、PHP4でも使えるとは。なにかこれを使ったNucleusプラグインとかできないかなぁと考えてしまいます。とりあえずインストールはできたので新ネタをぼちぼち考えたいと思います。
[pear install Services_Hatena の続きを読む]
NP_TypeKeyを作ってみた


新たなコメントスパム/なりすまし対策としてNucleusをTypekey認証に対応させてみました。今のところベータ版なので、簡単なアクセス制御(ログインを必須にするかしないか)しかできないのですが、機能的にはもうちょっと充実させたいと思っています。
近日中に公開したいと思います。リリースしました。
毎度ながらドキュメントがめんどくさい・・・・・。
需要がなければ本格リリースはしばらくあとになりそうです。
† 実装はAuth_TypeKey
TypeKey自体はは前々からちょっと興味があって、以前からAuth_TypeKeyをいじってみたりしていたので、思っていたよりもサクッと作ることができました。Auth_TypeKeyを使えばPHPのアプリケーションをTypeKeyさせるのはかなり簡単にできますね。
[NP_TypeKeyを作ってみた の続きを読む]
QuickFormを調べる


古いPHPのプログラムを書き直すことになったのですが、これが5年くらい前のプログラムでHTMLとロジックが入り混じっていたりとか、かなり汚いことになっているので、この際なのでちょっと叩きなおすことにしました*1。
本当は最近流行のPHPフレームワークとか使ってみたいのは山々なんですが、今回は時間的な余裕がないのでPEARのHTML_QuickFormを使ってみるくらいにとどめておくことにします。
[QuickFormを調べる の続きを読む]- *1: テストケースとか書いていないのでリファクタとは言いません。。。。
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
- Rufus Windows11 インストーラカスタム
- Rufus に Windows のインストールをカスタマイズできる機能がついてた
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110922)
3 . 年次の人間ドックへ(110486)
4 . 2023 年分の確定申告完了!(1つめ)(110034)
5 . 三菱鉛筆がラミーを買収(109934)
Academic[574]
Book[155]
Diary[522]
Disaster[101]
Foodlogue[1425]
Game[284]
Goods[805]
Healthcare[341]
Hobby[32]
IT[1195]
Military[343]
misc.[1570]
Mobile[510]
Music[38]
Neta[106]
News[95]
Photo[391]
RealEstate[120]
Security[1178]
SEO Contest[36]
Software[634]
Tips[1886]
Travelogue[1238]
Web[675]
Work[193]