Dcms Secwind | Оценка

1. Tadochi (13.04.2013 / 16:37)
Хелло всем. просьба оценить на ***кодность
SecWind - mod. Dcms 6.6.4 от меня(а что, все делают, я тоже хачу). из основных изменений:
1. Переписан на MySQLi
2. Рефакторинг кода
3. Оптимизация
4. Удалены модули (станд.): Чат, Обменник
Скачать

2. Антон (13.04.2013 / 16:50)
1. Tadochi, что означает надпись CPU 74kb на скрине?

3. Tadochi (13.04.2013 / 17:13)
2. WmLiM, количество памяти использованное php E

4. xbbx (13.04.2013 / 17:34)
внешний вид неочень

5. iNeeXT (13.04.2013 / 17:36)
1. Все константы пиши заглавными буквами:
<?php
// engine/includes/start.php
# ...
    define('incDir', H . 'engine/includes/');
    define('tmpDir', H . 'engine/files/tmp/');

2. Соб@чки лучше не использовать в коде.
25 строка: @set_time_limit(4);

3. DOC-блоки правильно пишутся так:
<?php
/**
 * Определение устройства
 * Если юзер с компьютера, $web вернет true
 */
/* Отступы необходимо делать */

4. Для определения версии сайта - wap, web лучше использовать класс Mobile Detect.

5. Почему не используется метод из класса sql?
$user = $sql->fetch(mysqli_query($sql->db, 'select * from `user` where `id` = "' . $id . '" limit 1 ')); // engine/includes/start.php 89 строка

6.
<?php
 static function stop($page = '/')
  {
    exit(header('location: '.$page));
  }

WTF?!!! Где в мануале такое разрешено?

Правильно:
<?php
 static function stop($page = '/')
  {
    header('location: '.$page);
    exit;
  }

7.
<?php
static function time($time)
 {
   return date('d.m.Y / H:i', $time);
 }
лучше так, чтобы можно было изменить вывод:
<?php
static function time($time, $watch = 'd.m.Y / H:i')
 {
   return date($watch, $time);
 }

8. AND `pass` = '".md5($_COOKIE['pass'])."' хранить открытый пароль в куках нельзя.

6. iNeeXT (13.04.2013 / 17:47)
P.S. отвратительная подсветка кода в роторе.

7. Tadochi (13.04.2013 / 17:49)
iNeeXT,
1. Это уже делается на свой вкус smile
2. та да, но на некоторых хостингах функция выключена. а мне лень было ставить условие гг
3. я думал с этим там не строго. спс
4. подумаю, а не громоздкая она?!
5. невнимательность :-D
6. хм. спс smile
7. лучше тогда просто date() юзать гг
8. посмотри /login.php smile [b][/b]

8. Тимофей (13.04.2013 / 17:58)
<?php
/**
	* Cache юзеров. 
	* 1000 юзеров = 1000 файлов  =)
	* Кэш обновляется через час (на момент написания комментария)
	* Чтобы обновить кэш: Core::get_user($user['id'], true);
	* @param integer $id id юзера, данные которого нужно получить
	* @param boolen $update если указать true, данные обновятся
	* @return array
*/
?>
убило..

9. iNeeXT (13.04.2013 / 17:58)
7. Tadochi,

1. Нет, это принятые стандарты многими PHP-программистами - http://www.php-fig.org/
2. К чему она вообще там? Да и добавить if(ini_set( не трудно.
3. Почитай про PHPDoc 1, 2.
4. Нет, код что у тебя не пойдет.
8. Сделай отдельную функцию для хеширования [url=http://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BB%D1%8C_(%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F)]пароля с солью[/url].

10. Tadochi (13.04.2013 / 18:15)
8. Wennel, чем убило?

11. Андрей (13.04.2013 / 22:57)
MySQLi неплохо. А можно спросить, почему не PDO?

Добавлено через 07:02 сек.
md5(md5(md5($_GET['pass'])))
- стараетесь отойти от обычного md5, хорошо, но лучше уже тогда свой шифратор написать.
my_esc
- неужели mysql_real_escape_string такая длинная что на функцию стоит менять? Хотя это лучше Дисуре адресовать вопрос.
Некогда изучать далее, но вроде так неплохой вариант, за исключением того что вы уже написали.

12. Tadochi (13.04.2013 / 23:06)
6. iNeeXT, так пойдет?

Добавлено через 05:21 сек.
11. EvroHoster, подумал что pdo испугает юзеров dcms 6.64 E
чем md5() плох? smile

Добавлено через 09:47 сек.
iNeeXT (13 Апреля 2013 / 20:58)
7. Tadochi,

3. Почитай про PHPDoc 1, 2.
не заметил ))

13. iNeeXT (13.04.2013 / 23:20)
чем md5() плох?
Привет радужным таблицам smile

Добавлено через 01:51 сек.
Tadochi (13 Апреля 2013 / 21:06)
6. iNeeXT, так пойдет?
http://codepad.org/VsZEmdgy

Добавлено через 03:08 сек.
return mysqli_real_escape_string($sql->db, $str);

Функцию mysqli_real_escape_string вынеси в класс sql

14. Tadochi (13.04.2013 / 23:27)
13. iNeeXT,
Привет радужным таблицам
почитал. спс. буду солить
http://codepad.org/VsZEmdgy
да я только что прочитал, и так уже сделал. просто сначала, как здесь увидел - так и сделал E

15. iNeeXT (13.04.2013 / 23:29)
К тому же твой класс Core вообще не нужен, ибо все методы статистические, что является простым "контейнером" функций.

Совет - сделать автозагрузчик функций из определённой папке.

16. Don (13.04.2013 / 23:35)
Такой вопрос как вам dcms.su 7?
1) Хочу узнать насчет оптимизации нагрузку в 10-20 к выдержит?
2) Если сервисы что проверить проект на нагрузку
3) генерация страниц, расскажите о ней, если 100 в онлайне 0.07 это нормально?

17. iNeeXT (13.04.2013 / 23:36)
да я только что прочитал, и так уже сделал. просто сначала, как здесь увидел - так и сделал E
Я же говорю - подсветка не айс.

Добавлено через 03:03 сек.
Сулейман (13 Апреля 2013 / 21:35)
Такой вопрос как вам dcms.su?
1) Хочу узнать насчет оптимизации нагрузку в 10-20 к выдержит?
2) Если сервисы что проверить проект на нагрузку
3) генерация страниц, расскажите о ней, если 100 в онлайне 0.07 это нормально?

1. Нет, требуется массовая оптимизация и кеширование большинства мест.
2. Написать бота, который будет вести себя как 300-400 пользователей онлайн.
3. Все зависит от оптимизации не только кода, но и настройки сервера. Может быть 10000 в онлайне и 0.0001 это нормально.

18. Tadochi (13.04.2013 / 23:40)
пример хостов в день 3-4. норм держится. 10-20к наверн тоже выдержит E право же я не знаю как он держится при нагрузках))

Добавлено через 03:27 сек.
iNeeXT
требуется массовая оптимизация...
я столько оптимизировал 6.6.4, неужели ей еще нужна "массовая оптимизация"?
и кеширование большинства мест.
там только форум не кешируется.

19. Don (13.04.2013 / 23:44)
а есть какой нибудь сервис? например tysu.ru выдержит большие нагрузки 10 тысяч?

20. Tadochi (13.04.2013 / 23:45)
iNeeXT (14 Апреля 2013 / 02:29)
К тому же твой класс Core вообще не нужен, ибо все методы статистические, что является простым "контейнером" функций.

Совет - сделать автозагрузчик функций из определённой папке.

// Загрузка остальных функций из папки "sys/fnc"
$opdirbase=opendir(H.'sys/fnc');
while ($filebase=readdir($opdirbase))
{
if (preg_match('#\.php$#i',$filebase))
{
include_once(H.'sys/fnc/'.$filebase);
}
}

это из 6.6.4. Вернуть что ли? знаешь как она тормозила...

Добавлено через 01:15 сек.
Сулейман (14 Апреля 2013 / 02:44)
а есть какой нибудь сервис?
есть программы ддосеры E
на том сайте не проверять!! E

21. iNeeXT (13.04.2013 / 23:57)
Tadochi (13 Апреля 2013 / 21:40)

Добавлено через 03:27 сек.
я столько оптимизировал 6.6.4, неужели ей еще нужна "массовая оптимизация"?
там только форум не кешируется.

Сулейман спросил про дцмс.су, который на 7-ке.



// Загрузка остальных функций из папки "sys/fnc"
$opdirbase=opendir(H.'sys/fnc');
while ($filebase=readdir($opdirbase))
{
if (preg_match('#\.php$#i',$filebase))
{
include_once(H.'sys/fnc/'.$filebase);
}
}

это из 6.6.4. Вернуть что ли? знаешь как она тормозила...

Нет, сделай маппер (массив) адресов функций и загружай их, например:

<?php
// array functions files
$list = array(
'func.php', 'func1.php', 'ffsfsf.php'
);

foreach($list as $file) {
 // load
 if(file_exists($file)) {
   require '/funcdir/' . $file;
 }
}
?>


22. iNeeXT (14.04.2013 / 00:47)
Ой, ошибочка. Вот так:
<?php
// array functions files
$list = array(
'func.php', 'func1.php', 'ffsfsf.php'
);

foreach($list as $file) {
 // load
 if(file_exists('/funcdir/' .$file)) {
   require '/funcdir/' . $file;
 }
}
?>


23. Don (14.04.2013 / 00:49)
короче фигня двиг так я понял?

24. iNeeXT (14.04.2013 / 01:19)
23. Сулейман, нет, если у Вас нет толкового программиста - обратитесь на фриланс, если сайт начнет "тупить" с увеличением посещаемости.

В данный момент я не заметил долгой загрузки сайта tysu.ru.

25. Tadochi (14.04.2013 / 07:20)
Сулейман (14 Апреля 2013 / 03:49)
короче фигня двиг так я понял?
здесь тема о модификации 6.6.4. лучше обсуждать dcms 7 в другом месте, например на оф сайте джона ))

Добавлено через 04:38 сек.
и вопрос, захотелось чтобы главное меню было через спрайты. вопрос не в том, как сделать спрайт, а как это организовать, ведь это главное меню выводится циклом и [will] редактируется в админке?! E

26. Tadochi (16.04.2013 / 19:58)
iNeeXT (14 Апреля 2013 / 02:29)
К тому же твой класс Core вообще не нужен, ибо все методы статистические, что является простым "контейнером" функций.

Совет - сделать автозагрузчик функций из определённой папке.
Не лучшее этот контейнер оставить, чем забивать ее циклами

27. Tadochi (20.04.2013 / 07:29)
Как думаете, может выпилить из админки редактор главного меню?

28. Дмитрий (20.04.2013 / 09:02)
27. Tadochi, а зачем? это нужная вещь

29. Zдешний (20.04.2013 / 11:24)
Apocalyps (20 Апреля 2013 / 11:02)
27. Tadochi, а зачем? это нужная вещь
Ты так часто изменяешь главное меню, что это такая важная функция стала?

30. Tadochi (20.04.2013 / 13:22)
Apocalyps (20 Апреля 2013 / 12:02)
27. Tadochi, а зачем? это нужная вещь
потому что, имхо это ограничивает дизайнеров. в смысле главное меню выводится через див "menu_razd" и если сменить тему, то главная не очень меняется.
а я планирую перейти на шаблонизаторыыыы сделать в каждой теме свой вариант главного меню. Надеюсь понятно гг

31. Tadochi (11.05.2013 / 21:03)
Версия 0.4

Добавлены разделы "Модули", "MySQL" в админку
Улучшен алгоритм сохранения пароля
Все модули перейдены под модульность
Для определения девайса, теперь используется класс Mobile_Detect
Исправлен поиск в форуме
Исправлены ошибки в логированиях (админка)
Исправлен поиск в форуме
Исправлена проверка chmod

http://tadochi.spaces.ru/files/?read=40649084

32. Tadochi (06.06.2013 / 09:41)
Теперь SecWind позволяет вам не влезая в код, ftp, и phpmyadmin устанавливать, удалять модули.
SecWind_v_0.4.2_Demo.zip

33. Tadochi (28.06.2013 / 18:19)
Новые разделы: Дизайны, Сервер в админке
Изменен интерфейс в создателях бекапов
Добавлен интерфейс для просмотра беков, как файлов , так и бд.
Исправлена ошибка с установкой модуля: существующие файлы не заменялись
У класса Cache новый метод - multi_cache
Новый класс Query_Builder. Предназначен для удобной постройки простых запросов
Настройки пользователя
Автологин в смене пароля
Новый дизайн - Grey
Новая почта от FoXxs
Антифлуд
SecWind_v_0.5.1_Demo
p.s это уже не dcms ))

34. Tadochi (16.07.2013 / 13:19)
Новая версия. Оч хотелось бы узнать мнение жителей visavi ))
SecWind 0.6

35. Tadochi (24.02.2014 / 19:57)
Исправлена ошибка в бб-коде url (баг нашел Sea)
Исправлена ошибка в регистрации
Исправлена ошибка с удалением постом в форуме
Исправлена ошибка с скачиванием файла в форуме
Исправлена ошибка с скачиванием txt в форматах zip, jar и jad (баг нашел Viy)
Исправлена ошибка с дизайном пагинации (баг нашел CoMMoN)
Исправлен вывод ошибок в установке (баг нашел Sea)

SecWind 0.8.4

URL: https://visavi.net/topics/37502