Guyver пишет:Мда... Так я и думал ;о))))))))))))))))
Думаете "а мальчик-то слился, не потянул..". Вы ошибаетесь. Новый движок я потяну. Даже в одиночку. Вопрос времени. Около 20 функций я уже реализовал. Полностью: работа с файлами, запись в пользовательский лог, в лог ошибок, вариант авторизации, начал регистрацию, начал функции вывода элементов главной страницы. Просто сейчас процесс несколько застопорился, 2-3 дня не приступал к кодингу, были другие интересы. Написать форум задача далеко не тривиальная, много думать нужно своей головой прежде чем пальцы начнут стучать по клаве.. Мы же хотим уйти от того, чтобы лазить в сырой код при добавлении плагинов-модов. Поэтому тут нужно так всё сделать, чтобы обеспечить такой функционал, при этом сохранить простоту кода.
Насчёт ГОДОВ конечно я погорячился. Если тратить хотя бы по 4-5 часов в день, то ядро можно написать за несколько месяцев.
NordWest пишет:В смысле устранить ошибки в текущем движке?
Таких уж серьёзных ошибок в движке уже и нет, так как за годы множество багов было исправлено. Я имел в виду общую архитектуру. Например вместо 10 кук сделать одну. Изменить работу с файлами, сделав файловую базу более читаемой, примерный код я уже приводил. Подключение модулей сделать через индексный файл. Избавится от ООП он там поверьте вообще ненужен.. Помните был простой движок, потом взяли его усложнили, спрашивается зачем? Усложнение должно было идти в виде усложнения функционала движка, а не его кода..
Вот, вчера написал свои сомнения и мысли, затем опять в тысячный раз открываю код exbb и понимаю: ну тупик же, причём полный.. Опять заниматься приукрашиванием?. Там много моментов, которых по большому счёту просто не должно там быть. Эх, надо засучивать рукава и ПРОДОЛЖАТЬ делать новое ядро! Думаю, к новому году оно будет готово!. То есть ядро уже можно будет запускать. Можно будет добавлять сообщения и создавать темы. Самая сложная часть работа через админцентр, там надо делать по круче, чем сейчас, поэтому голова должна работать трезво и ясно. Часть кода нужно будет оставить от старого exbb потому что я хоть в pHP чувствую себя как рыба в воде, однако в javascript нет. Я им не занимался. Раньше я занимался совсем другими языками: Си и несколько других, которые к вэбу имеют мало отношения. Единственный "родной" это PHP.
1Bot пишет:1) декомпозиция по функциональному признаку всех уже существующих данных, свойств и методов их обработки со словесным описанием "доменов" (формирование основных классов, их данных и методов);
Всё правильно, так я и хочу. То что отображается лежит в одном месте и т. д. Что касается ООП именно в PHP и именно в данном движке, то я скептик. Лично я понимаю принципы ООП, там для меня нет ничего сложного. Сложности могут возникнуть у пользователей непрограммистов. Скажете: зачем лазить в код? В данном движке без этого не обойтись, а ООП отпугивает. Я вам честно клянусь: никаких преимуществ его применения не было и нет, одни минусы. Можете мне не верить. Всё это лишь мода: если у тебя в коде нет ооп ты отстой, а если есть то ты крут. Эта позиция имеет мало отношения к пользователям которые будут юзать нашу работу. Им нужна стабильная работа движка, а не модные плюшки.
1Bot пишет:Вы сейчас пробуете свои силы на 3 и 4 этапах, без полного прохождения 1 и 2. Уверена, что это потребует больше сил и мыслительной энергии, чем естественный путь.
Вы очень проницательны! Да, я начинаю с маленьких, иногда совсем не связанных с друг другом вещей. И пока имею лишь смутные очертания этой горы под названием общая АРХИТЕКТУРА . Когда накопятся эти маленькие вещи, то достаточно будет их лишь слепить в месте. А вот как именно, от этого будет зависеть последующая лёгкость или трудность жизни.
Вот пример маленькой вещи, который на днях я накропал. Это логоменю форума - самое верхнее меню с картинками:
CODE:<?php if (stristr($_SERVER['PHP_SELF'], 'show_logomenu.php') && !defined('EXBB_OK')) {die('Доступ запрещён!');}
function exbb_showLogoMenu()
{
global $ContentBuf, $FunctionsPath, $ModulesPath, $Config;
require_once($FunctionsPath.'get_list.php');
$arr=exbb_getList($ModulesPath.'logomenu/config.php');
$l=count($arr);
$ContentBuf.='
<table width="100%" cellspacing="6" id="logomenu" border="0">
<tr>
<td width="468" align="center" rowspan="2">'.$Banner.'</td>
<td valign="top" align="right"><span style="margin-right:15px;">'.$Config[2].'</span></td>
</tr>
<tr>
<td align="right" valign="bottom" nowrap>
';
for($i=0; $i<$l; ++$i)
{
$ContentBuf.='
<b><a href="modules/logomenu/im/'.$arr[$i][1].'" title="'.$arr[$i][2].'" border="0" alt=""> <a href="index.php?action='.$arr[$i][1].'" title="'.$arr[$i][2].'"><b>'.$arr[$i][2].'</b></a>
';
}
$ContentBuf.='
</td>
</tr>
</table>
';
}
?>
Описание нашего меню лежит в отдельном data файле, изменять который может сторонний код(преимущества очевидны). Если сейчас чтобы добавить, удалить или перетасовать меню надо лезть в сырой код и там всё это править, то здесь всё можно сделать из админки. В глобальной переменной $ContentBuf копится наша та или иная страничка. А подключается она в главном глобальном файле шаблона.
Вот пока делаю такие маленькие вещи из которых должен сложиться общий пазл..