Zend Framework 1.12.0で最も長いクラス名を探してみる

これはZend Framework Advent Calendar19日目の記事でもなんでもありませんし、開催されてるのかも知りません。

ここ1ヶ月半ぐらい仕事で久しぶりにZend Framework1系を使ってますけど、PHP5.2時代に擬似namespaceを実現したようなクラス名の命名規約になっていてとにかくクラス名が長いのが気になる。そんな中でもいったいどのクラスが一番長いか探しだしてみた。焼酎お湯割り数杯が入った状態で書いてるので何か間違ってるかもしれませんがあまり気にしないでください。

<?php

$path = '/path/to/ZendFramework-1.12.0/library/';

$max = 0;
$maxName = '';
foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path)) as $file) {
    if (strpos($file->getPathname(), '.php') === false) continue;
    $className = str_replace(array($path, '.php', '/'),
        array('', '', '_'), $file->getPathname());
    if (strlen($className) > $max) {
        $max = strlen($className);
        $maxName = $className;
    }
}
echo 'className: ', $maxName, ' length: ', $max, "¥n";

実行してみると、以下のクラス名が得られました。

className: Zend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType length: 97

Zend_Service_DeveloperGarden_Response_ConferenceCall_AddConferenceTemplateParticipantResponseType、なんと97文字。ちなみにZend Framework1系のコーディング規約では1行の長さは80文字以内を目指しましょう、なのですけどクラス名だけで大幅オーバー。

Zend Framework1系は、ソースも読みやすいしまあ悪くはなかった(チューニングしないとかなり遅いけど)ですけど、そろそろ卒業してZend Framework2系(これも結構遅いらしい?)だとかSymfony2だとかに移行するといいんじゃないですかね。