Нашли или выдавили из себя код, который нельзя назвать нормальным,
на который без улыбки не взглянешь?
Не торопитесь его удалять или рефакторить, — запостите его на
говнокод.ру, посмеёмся вместе!
##############################################
# Bitrix: SiteManager #
# Copyright (c) 2002-2006 Bitrix #
# http://www.bitrixsoft.com #
# mailto:<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8eefeae3e7e0ceece7fafce7f6fde1e8faa0ede1e3">[email protected]</a> #
##############################################
if (!class_exists("CCaptcha"))
{
class CCaptcha
{
var $imageWidth = 180;
var $imageHeight = 40;
// ...etc
Это Битрикс. Опять. bitrix\modules\main\classes\general\capt cha.php
Определение нативной капчи.
В строке 8 создатели сего как бы задаются воспросом «А вдруг еще никто не писал до нас капчи?».
Или перестраховываются — «а вдруг require() уже вызывался? И что такое require_once(), про который все так много говорят?»
Добротный, защищенный на все сто, класс капчи. Невозможно сломать, уже просто потому, что невозможно понять...
Окей, require_once сам предпочитаю избегать. Но как можно оставлять подключение библиотек в таком сыром состоянии?
Опять же, "каждое" подключение, это сколько? Я на практике не выводил на странице более двух капч (каждый рендеринг - вообще только 1 экземпляр). Даже если бы и двадцать - расходы спичечные.
Поэтому уж лучше не class_exists(), а грамотно проектировать архитектуру приложения.
эх, а я так надеялся
Опять же, "каждое" подключение, это сколько? Я на практике не выводил на странице более двух капч (каждый рендеринг - вообще только 1 экземпляр). Даже если бы и двадцать - расходы спичечные.
Поэтому уж лучше не class_exists(), а грамотно проектировать архитектуру приложения.
return;
class CCaptcha
...