PHP: htmlspecialchars_decode – Manual

htmlspecialchars_decode

(PHP 5 >= 5.1.0RC1) htmlspecialchars_decode— 特殊な HTML エンティティを文字に戻す

全米の↓この関数の持ち主が泣いた。。。

function unhtmlspecialchars($str) {
    $entry = array_flip(get_html_translation_table(HTML_SPECIALCHARS));
    return strtr($str, $entry);
}
PRADOバージョン3.0aリリース – HotPHPPER News

PHP 5専用のフレームワークであるPRADOのバージョン3.0aがリリースされました。 日本ではmojaviや最近ではsymfonyが有名ですが、PRADOも一部では期待されているフレームワークです。

PHP Pro Podcastに作者が出てましたが、JSFみたいなイベントドリブンのフレームワークってことで他とはかなり違いそうです。超面白そう。 あと作者は少し落ち着け。(噛み過ぎ)

そんなのあるんだったら(略)シリーズ。

本番ではエラーを画面に出さない。(以下、php.ini)

display_errors = Off

ログファイルには出す。

log_errors = On
error_log = /var/log/php

syslogに出す。

error_log = syslog

PHPの “そんなのあるんだったらはじめに教えといてくれよ!” シリーズ

PEAR Pager。 ページング処理(↓こういうやつ)をやってくれるライブラリ。

paging.png

Mojavi2で“user1とuser2だけに見せたいページ”みたいな認証の仕方ができないかと聞かれました。

デフォルトのPrivilegeAuthorizationHandlerだとできないようなのでこんな感じで複数権限一度に指定できるPrivilegesAuthorizationHandlerを作ってみました。(sが付いている)

class FooAction extend Action {
    function getPrivilege(&$controller, &$request, &$user) {
        return array(
            array("user1", "members"),
            array("user2", "members")
        );
    }
}

PrivilegesAuthorizationHandler.class.php.gz

index.phpで元の奴の変わりに使う。

//require_once(AUTH_DIR . 'PrivilegeAuthorizationHandler.class.php');
require_once(AUTH_DIR . 'PrivilegesAuthorizationHandler.class.php');
require_once(USER_DIR . 'PrivilegeUser.class.php');
//$authHandler =& new PrivilegeAuthorizationHandler;
$authHandler =& new PrivilegesAuthorizationHandler;
$user        =& new PrivilegeUser;
$controller->setAuthorizationHandler($authHandler);
$controller->setUser($user);

自分のPHP開発環境について。

ちまたでよく言うWcPE(Windows coLinux Putty + Emacs)というやつです。 ・・・よく言わない上にウザいですか、そうですか。

Sooeyさんのとこを見てたら環境以外にも書いてアップして確認するみたいな開発のライフサイクルもわかると 参考になっていいなと思いました。

仕事時のライフサイクルはどんなのが普通なんだろう。おれは

  • Emacsで編集
  • coLinux上のApacheで確認
  • 切りの良いところでチームで共通のテスト環境にアップ
    (rsync -rzC -e ssh ~/project/foo foo@dev.foo.com:/www)
  • テスト環境上のApacheで確認
  • OKだったらCVSにコミット
  • 1に戻る

て感じです。(おれもUnitテストとかしたい。Subversionに移行したい。)

wcpe.png

ref: PHPどうやって開発してる?

hatotech::kumatch: PHP String_Random 0.3.1

一部の人にだけ大好評な PHP 版 String_Random が約一年ぶりに Ver.UP!

地味に便利でうれしい!

もはやPHPerはmkpasswdのためだけににexpectなんて入れてる場合じゃないね!(嘘)

colinux:~% sudo pear install http://hatotech.org/kumatch/datas/String_Random-0.3.1.tgz
colinux:~% php -r 'include "String/Random.php"; echo String_Random::getRandRegex("[a-zA-Z0-9]{5,8}")."\n";'
IcxP20CZ

pear-not-found.png

日本のPHPライブラリ界の発展を著しく阻害していた(日本語でPEARとググるといつもブッチギリだった)あの忌々しいサイトがヘイサ!

PHPどうやって開発してる?という基本的な問題を今更悩み、一通り使ってみて一段落したので大まかにまとめてみた。

Type A  開発環境:秀丸(PHPエディタもしくは同等のフリーのエディタ)  テスト環境:Windows

Type B  開発環境:Eclipse(もしくはZendStudio)  テスト環境:Windows

Type C  開発環境:vi(vim, nvi, elvis)  テスト環境:UNIX

Type D  開発環境:emacs php-mode  テスト環境:UNIX

Type Aはたぶん一番人口が多い。既に慣れたエディタがある人も多い。ローカルのApacheは使わず、テスト用のUNIX系サーバに上げて確認も多い。 Type Bは進化に期待。CVS/SVNとのシームレスな連携やステップ毎に実行できるデバッグ機能などが超でかい。 Type Cはシンプルな構成のためか、上級者に使用者多し。今日びのvimは機能がスゴイ。 Type Dは古いユーザーに多い。既存emacsユーザーはこれしか選択肢無し。

初学者はType Aがおすすめ。Java/MSの人はType Bがおすすめ。すでにUNIXに慣れてる人はType C、Emacsの人はType Dという感じです。 Windows系のエディタを使ってUNIX上で楽に確認したい場合はcoLinux + sambaが手軽でした。

これ以外でひそかに超便利な環境でやってるぜって人は教えてください!

PEAR :: Package :: System_SharedMemory

Summary common OO-style shared memory AP

Current Release 0.9.0RC1 (beta) was released on 2006-01-10 (Changelog)

Description OO-style shared memory API for several shared memory engines

PEAR System_SharedMemory 0.0.9RC1がリリース。 OO-style shared memory API for several shared memory enginesって共有メモリ界のPEAR DBみたいなもんか?面白そう。