[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обсуждение варианта twin
Страницы: 1, 2, 3, 4, 5
OleKh
Особо не вникая в суть спора, ожидал увидить в коде противоположность ООП подхода, а фактически MVC и ООП. Как по мне, так очень акуратно оформлено и в демке кликательно.

Это ещё не CMS, т.к. CMS предполагает функционал управления контентом, а как для простенького сайта визитки, очень даже может подойти.

Я уже давно себе что-то типа такого сделал для сайта из 2 страничек на этом примере http://habrahabr.ru/post/150267/#Intro, но не уверен в надежности по безопасности.

А сайт визитку для фриланса вообще на html5 сделал и в index.php добавил и стили прикрутил и всё. Кто сейчас на это уже внимание обращает. Чтобы впечатлить лучше что-то на js передрать )
twin
OleKh
Цитата
Особо не вникая в суть спора, ожидал увидить в коде противоположность ООП подхода, а фактически MVC и ООП.
MVC - одно из условий соревнования. А вот где тут ООП? Там есть только один единственный объект - шаблонизатор. И то, мы оговаривали этот момент. Это не ООП, это чистый императив. То, что там статические классы, так этого никто не запрещал. Они используются как контейнера, не более. Классы, это удобно в плане автозагрузки и локализации функционала. Даже намека на ООП тут нет.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Guest
Пробежался глазами


/**
* Удаляем категорию
*
@access public
*
@param int $id
*
@return bool|string
*/

public static function deleteCategory($id)
{
$id_pages = array();

db::query('START TRANSACTION');

$res = db::query("SELECT `id`, `id_parent`
FROM `"
. IRB_CONFIG_DBPREFIX ."pages_category`"
);

while($row = mysqli_fetch_assoc($res))
$ids[$row['id']] = $row['id_parent'];

self::_setTreeCategory($ids, $id);
self::$_id_cat[] = $id;

$res = db::query("SELECT `id`
FROM `"
. IRB_CONFIG_DBPREFIX ."pages`
WHERE `id_parent` IN ("
. implode(',', db::intval(self::$_id_cat)) .")"
);

while($row = mysqli_fetch_assoc($res))
$id_pages[] = $row['id'];

$cond = "`id` IN (". implode(',', db::intval(self::$_id_cat)) .")";

if(false === parent::deleteFrom('pages_category', $cond))
return getLanguage('FATAL_ERROR');
if(!empty($id_pages))
{
if(false === parent::deleteFrom('pages', $cond))
return getLanguage('FATAL_ERROR');

if(false === Comments::delete('page', $id_pages))
return getLanguage('FATAL_ERROR');
}

if(false === Comments::delete('category', self::$_id_cat))
return getLanguage('FATAL_ERROR');

db::query('COMMIT');
return false;
}

1.Вы не умеете пользоваться транзакциями.
При ошибке, Вы должны делать rollback, а не выводить ошибку в виде строки,иначе у Вас транзакция осталось открытой.
Цитата

With START TRANSACTION, autocommit remains disabled until you end the transaction with COMMIT or ROLLBACK. The autocommit mode then reverts to its previous state.

autocommit remains disabled

2.Вы не умеете пользоваться исключениями.
Внутри DB class

  if($result === false)
{
throw new \Exception(debug::prepareError($trace[0]['file'], $trace[0]['line'], $sql, $error),
E_USER_ERROR);
}


Это еще раз доказывает что Вы не имеете понятия об множественных исключениях и как их разделять по типам.


А так же , как их нужно обрабатывать.
3.* @return bool|string -
Возврат миксовых типов - Говно-код.
Вы делаете хуже не только себе но и тому кто потом будет с этим работать.
Без комментариев.


$res = db::query("SELECT `id` 
FROM `"
. IRB_CONFIG_DBPREFIX ."pages`
WHERE `id_parent` IN ("
. implode(',', db::intval(self::$_id_cat)) .")"
);

while($row = mysqli_fetch_assoc($res))
$id_pages[] = $row['id'];

db::query('COMMIT');


Сначала используете DB класс, потом используете mysqli_fetch_assoc внутри модели.
Если использовать PDO,то у Вас все рухнет. :D
4.Использование статических методов где они вообще не нужны.

Использование микса английских слов с русскими комментариями вызывает не уверенность в коде.

Я лишь пробежался глазами и убедился в Вашем уровне.
Вы многое не понимаете и Вам нужно самому учиться и учиться.

Если Вы считаете что Вы правы,то задайте Ваш вопрос на мировом уровне,где Вас будут оценивать программисты со всех стран мира ,а не токаря,студенты и люди с заводов итд.

http://programmers.stackexchange.com/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.