“最近、ZendFrameworkを使おうじゃないかという事で色々いじってたんですけど、
require_onceとか使わずに
require_once ‘Zend/Loader.php’;
Zend_Loader::registerAutoload();
ってはじめに書くだけで「Zend_ほげほげ」っていうクラスは自動でロードしてくれると知って、喜び勇んで使い始めました。

そしたら
Cannot redeclare class Zend_Config」とかエラーが出まくり。
Zend_Configってクラスが二重に定義されてるよ!って意味なんだけど、autoloader使ってるからそんな事言われても・・・って感じでずっと悩んでました。

原因はZend_Loaderを読み込んでるときのinclude_pathと、それ以降のinclude_pathが違ったから・・・。
わかりますでしょうか。
ボクの開発環境には全体で使えるライブラリ置き場があって、そことは別にアプリケーションごとでlib/ディレクトリを作ってました。(そして両方にZendFrameworkが入ってる)
はじめのZend_Loaderは共通の所から。そのあとinclude_pathをアプリケーションごとのライブラリが置いてある所にinclude_pathを上書き。次よりそこからZendパッケージを自動で読み込み。
でファイルは同じでもパスが違うから2回requireしちゃう。ってわけ。

なのでset_include_pathは
set_include_path(
    get_include_path() .
    PATH_SEPARATOR . NEW_LIB_DIR
);
って書こう。

リアクション