Духовность™
Продвинутый новичок
HraKK
ты с глобалсами не согласен? или в обилии строк? или в обилии фактических действий в методе?
ты с глобалсами не согласен? или в обилии строк? или в обилии фактических действий в методе?
-~{}~ 03.10.08 00:19:или в обилии строк? или в обилии фактических действий в методе?
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.но для бэкенда (пока что) смысла делать этого нет
мне нужен сайт настолько же динамичный, насколько динамичный сайт имеет CNNАвтор оригинала: whirlwind
> главное в нашей работе программистов - это решение проблем кратчайшим путем и соразмерными затратами
Боюсь, что Вы сами себя опровергаете. Иначе зачем было разрабатывать еще один велосипед? Вероятно, не для того, что бы решить проблему кратчайшим путем, а?
венегрет не смертелен, я сомневаюсь, что тебе понадобится переделывать бэкендАвтор оригинала: HraKK
-~{}~ 03.10.08 00:19:
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
у тебя все для бекенда нету смысла. И венегрет и то и все. А для чего смысл есть? Понимаешь ООП это не чо-то такое волшебное, это просто стиль мышления. И если ты им не мыслишь у тебя не будет в другом месте более ООП чем тут. Если ты им мыслишь, он у тебя оправдан и быстрее и лучше везде. А ты пишешь лишь бы написать что это ООП.
Хороший вопрос. Сейчас обосную принципы, которыми руководствовался.Автор оригинала: Angerslave
HraKK
Да лан, не возносись на облака, все мы смертные
pilot911
А ты и правда мыслишь скорее переменными, массивами и функциями, чем объектами, их методами и их взаимодействием.
А вот такой у меня каверзный вопрос: если ты заявляешь главным принципом - повышенную скорость, то какие механизмы распределения нагрузки в твоей CMS имеются?
$GLOBALS['DB_CONFIG'] = array(
'1' => array(
'host' => '',
'user' => '',
'password' => '',
'database' => '',
'type' => 'mysql',
'enable_insert' => false,
'enable_select' => false,
),
'2' => array(
'host' => '',
'user' => '',
'password' => '',
'database' => '',
'type' => 'mysql',
'enable_insert' => false,
'enable_select' => false,
),
'3' => array(
'enable_insert' => false,
'enable_select' => false,
)
//...etc
);
$GLOBALS['DB_CONFIG_SELECT'] = cmf_manager_db::getConfigDB('',true);
# Connect to DB SELECT
$GLOBALS['DB_SELECT'] = cmf_manager_db::getDB($GLOBALS['DB_CONFIG_SELECT']);
$GLOBALS['DB_SELECT']->connectDB($GLOBALS['DB_CONFIG_SELECT']['host'], $GLOBALS['DB_CONFIG_SELECT']['user'], $GLOBALS['DB_CONFIG_SELECT']['password']);
$GLOBALS['DB_SELECT']->setUTF8();
if(false){}
else if($GLOBALS["ROUTER"]->addRoute("1", new cmf_request_route(
"[B]:language/main[/B]", array(
"controller" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["controller"],
"subcontroller" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["subcontroller"],
"function" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["function"],
),
$GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["array_regexp"],
$GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["default_GETvar"]))) { }
else if($GLOBALS["ROUTER"]->addRoute("2", new cmf_request_route(
"[B]:language/registration[/B]", array(
"controller" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["controller"],
"subcontroller" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["subcontroller"],
"function" => $GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["function"],
),
$GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["array_regexp"],
$GLOBALS["CONFIG_CONTROLLER"]["controller_index_main"]["default_GETvar"]))) { }
Хорошее замечание, подумаю над ним.Автор оригинала: Angerslave
Ну вот, уже что-то. И такое не в каждой цмс встретишь.
А по поводу глобалсов... Обычно вместо них используют паттерн Singleton - попробуй, код сразу станет понятнее, а то сейчас в глаза только эти $GLOBALS['DB_INSERT'] и бросаются.
так получилось, я создал файл конфигурации с помощью многомерного $_CONFIG.А по поводу глобалсов... Обычно вместо них используют паттерн Singleton - попробуй, код сразу станет понятнее, а то сейчас в глаза только эти $GLOBALS['DB_INSERT'] и бросаются.
$_CONFIG['dir'] = '......';
$_CONFIG['dir']['functions'] = '......';
$_CONFIG['dir']['classes'] = '......';
$_CONFIG['dir']['etc'] = '......';
// в методах, вместо registry и глобалсов:
$var_dir = getConfig('dir');
$var_cls = getConfig('dir', 'classes');
у меня так же возвращается конфиг контроллеров, виджетовАвтор оригинала: triumvirat
так получилось, я создал файл конфигурации с помощью многомерного $_CONFIG.
Тоже в классах использовал глобалсы, пока банально не написал функцию, которая возвращала указанный элемент конфига. Те.:
я во многом не прав? ведьPHP:$_CONFIG['dir'] = '......'; $_CONFIG['dir']['functions'] = '......'; $_CONFIG['dir']['classes'] = '......'; $_CONFIG['dir']['etc'] = '......'; // в методах, вместо registry и глобалсов: $var_dir = getConfig('dir'); $var_cls = getConfig('dir', 'classes');
абстракция - есть
инкапсуляция - тоже
$this->config_controller = cmf_loadconfigs::getConfig($this->page_data['controller_name'], 'controller');
честно скажу, это не коробочный код типа мамбы, битриксаАвтор оригинала: whirlwind
Ой, простите, не удержалсо
>Выборка сервера (рандомно) происходит в менеджере БД:
http://www.hardwareloadbalancer.com/ нервно курят в сторонке))
pilot911 на самом деле, я уверен, что в Вашем продукте есть хорошие идеи. Правда их трудно разглядеть в такой реализации. Ну, вот хотя бы вопросы
1. Я хочу изменить алгоритм работы менеджера БД. Как мне это сделать не меняя Ваш код?
2. Я хочу сделать импорт данных в другую базу используя классы модели. Как мне это сделать?
3. Нужно создать модель, очень похожую на модель новостей, с небольшими изменениями или даже без изменений. Можно ли использовать класс модели новости для этого?
$GLOBALS['add_class']['model_news'] = 'extensions/service/special/models/class.model_news.php';
cmf_loadconfigs::addClassFunction('model_fe_user', 'model_fe_user_ext', 'getMaxUsernameLength');
model_fe_user_ext
getMaxUsernameLength()
class model_be_user ... {
static function getInstance() {
if (!isset(self::$instances)) {
self::$instances = new model_be_user();
}
return self::$instances;
}
}