ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

グローバル変数ダメ!絶対!コミュの【雑談】うわぁすごいぃ(小ネタかしらん?

  • mixiチェック
  • このエントリーをはてなブックマークに追加
んむぅ。PHPに、HTML_QuickFormっちゅーのがあるです。
なんでも「ぐろぉばる変数」を積極的に使ってるとのことで、お宅拝見。

……………ごめん俺が悪かった全面的に非を認める誤る謝罪する詫びるから勘弁してくれ。

是非。この「不」幸せを皆様にも。

$GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'] =
array(
'group' =>array('HTML/QuickForm/group.php','HTML_QuickForm_group'),
'hidden' =>array('HTML/QuickForm/hidden.php','HTML_QuickForm_hidden'),
'reset' =>array('HTML/QuickForm/reset.php','HTML_QuickForm_reset'),
'checkbox' =>array('HTML/QuickForm/checkbox.php','HTML_QuickForm_checkbox'),
'file' =>array('HTML/QuickForm/file.php','HTML_QuickForm_file'),
'image' =>array('HTML/QuickForm/image.php','HTML_QuickForm_image'),
'password' =>array('HTML/QuickForm/password.php','HTML_QuickForm_password'),
'radio' =>array('HTML/QuickForm/radio.php','HTML_QuickForm_radio'),
'button' =>array('HTML/QuickForm/button.php','HTML_QuickForm_button'),
'submit' =>array('HTML/QuickForm/submit.php','HTML_QuickForm_submit'),
'select' =>array('HTML/QuickForm/select.php','HTML_QuickForm_select'),
'hiddenselect' =>array('HTML/QuickForm/hiddenselect.php','HTML_QuickForm_hiddenselect'),
'text' =>array('HTML/QuickForm/text.php','HTML_QuickForm_text'),
'textarea' =>array('HTML/QuickForm/textarea.php','HTML_QuickForm_textarea'),
'link' =>array('HTML/QuickForm/link.php','HTML_QuickForm_link'),
'advcheckbox' =>array('HTML/QuickForm/advcheckbox.php','HTML_QuickForm_advcheckbox'),
'date' =>array('HTML/QuickForm/date.php','HTML_QuickForm_date'),
'static' =>array('HTML/QuickForm/static.php','HTML_QuickForm_static'),
'header' =>array('HTML/QuickForm/header.php', 'HTML_QuickForm_header'),
'html' =>array('HTML/QuickForm/html.php', 'HTML_QuickForm_html'),
'hierselect' =>array('HTML/QuickForm/hierselect.php', 'HTML_QuickForm_hierselect'),
'autocomplete' =>array('HTML/QuickForm/autocomplete.php', 'HTML_QuickForm_autocomplete'),
'xbutton' =>array('HTML/QuickForm/xbutton.php','HTML_QuickForm_xbutton')
);

$GLOBALS['_HTML_QuickForm_registered_rules'] = array(
'required' => array('html_quickform_rule_required', 'HTML/QuickForm/Rule/Required.php'),
'maxlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
'minlength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
'rangelength' => array('html_quickform_rule_range', 'HTML/QuickForm/Rule/Range.php'),
'email' => array('html_quickform_rule_email', 'HTML/QuickForm/Rule/Email.php'),
'regex' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'lettersonly' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'alphanumeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'numeric' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'nopunctuation' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'nonzero' => array('html_quickform_rule_regex', 'HTML/QuickForm/Rule/Regex.php'),
'callback' => array('html_quickform_rule_callback', 'HTML/QuickForm/Rule/Callback.php'),
'compare' => array('html_quickform_rule_compare', 'HTML/QuickForm/Rule/Compare.php')
);

-中略-

function registerElementType($typeName, $include, $className)
{
$GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($typeName)] = array($include, $className);
} // end func registerElementType

-中略-

$className = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][1];
$includeFile = $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][$type][0];

-中略-

function isTypeRegistered($type)
{
return isset($GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES'][strtolower($type)]);
} // end func isTypeRegistered

-以下省略-

…ねぇねぇ。これっておとなしく素直に、クラスとかで持っちゃだめなん?
っつか何ゆえにGlobalなん?

こーゆーの見せられて「global使うか否かという宗教論争」言われても…ねぇ。
直接該当するところに言っても無駄なので、でもあまりの感動に打ち震えてしまったので、思わずここに(笑
# …気が向いたら後でBlogにも書くかも。

コメント(2)

下手なOOPと下手なGLOBAL多用システムとでは、どちらのほうが厄介なのだろう?

僕の今の現場は2次請負のシステム屋なのですが、1次請負元がウォーターフォールで仕様を切る為、現存する機能のほとんどが関数べた書きグローバルガシガシのウォーターフォールなのですよ。
そこに今OOP持ち込んでいるのですが、今僕がサッと抜けた場合、システム全体からみたら僕のOOPのが厄介にうつるのかなぁとたまに思ったり。

もちろんこれは「長期スパンでの教育」っていうタスクを課していないが故の問題なんですけれどね〜。
難しい問題きたねぇ。
「下手なOOPと下手なGLOBAL多用システムとでは、どちらのほうが厄介なのだろう? 」かぁ。

んっと。以下の論理展開にしたがって「ヘタなOOPのほうがより厄介」だと考えるです。

基準1。「発生しうる最悪の事態がより悪いか」をもって「より厄介である」とする。

考察
GLOBALはつまるところ「変なところで変なもの突っ込まれる(データが破壊される)だけなので。
最悪、egrepとかである程度探し出せるです。どんなボリュームだとて。
OOPの場合、クラス切りに失敗されると、改修の問題、依存性の問題、その他、その災厄の広がる範囲はかなり頭痛ものです。

結論
ゆえに。OOPのほうがより厄介な気が。

余談
基準ラインのはるかかなたに下なのはいふべきにもあらず。
どっちも「………ヤれ」レベルだよねぇ(苦笑

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

グローバル変数ダメ!絶対! 更新情報

グローバル変数ダメ!絶対!のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング