Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Флуд/Доделываю свое чудо..
Search

Доделываю свое чудо..

10 replies361 viewsCurrently viewing: 1
D
Doomer
· 12/05/2009, 09:55 PM

после долгих, нудных переписываний кода, пришел к окончательной форме и структуре to_become_senile.gif
Работа mysql:
1. Сохраняет несколько подключений
2. Возможность переключений подключений во время выполнения
3. Смена базы подключения
4. Смена кодировки подключения
5. Хранение запросов в отдельных файлах
6. Обработка запросов
7. Автоматическая выдача результата в нужном формате(возможность изменения)
8. Обработка ошибок
Вес класса 3 килобайта

Работа шаблонизатора:
1. Внутренний синтаксис работы шаблонов для дизайнеров
Шаблон

Раскрывающийся текст
Код
{if($a=="b")}

test {$a}<br>

{elseif($a=="a")}

testa {$a}<br>

{else}

test null<br>

{endif}


{foreach($result as &key => &value)}

key: {&key}, value {&value}<br>

{endforeach}

Сохраненный кеш
Раскрывающийся текст
Код
<?if($this->tpl_var[a]=="b"){?>

test <?=$this->tpl_var[a]?><br>

<?}elseif($this->tpl_var[a]=="a"){?>

testa <?=$this->tpl_var[a]?><br>

<?}else{?>

test null<br>

<?}?>


<?foreach($this->tpl_var[result] as $key => $value){?>

key: <?=$key?>, value <?=$value?><br>

<?}?>


Результат
Раскрывающийся текст
Код
test null
key: 1, value 1
key: 2, value 2
key: 3, value 3


2. Кеш шаблонов сохраняется в отдельной папке, проводится проверка на изменения шаблона,если шаблон изменен изменяется кеш
3. Поддержка классических блоков ({menu})
4. Выбор пользователю шаблонов (сессийный,куки и установленный стандарт)

Языки:
1.Обработка ключевых слов, что дает возможность мултиязычности
Пример
%menu% %0%
Меню/Menu
2. Ключевые фразы хранятся в отдельных файлах
3. Выбор языка для пользователя
4. система обработки ошибок для разных языков
!1! !login!
Результат:
Ошибка в воде аккаунта : doomer
Wrong account : doomer
5. Хранение в отдельных файлах

Безопасность:
Обработка всех входящих ПОТС и ГЕТ заголовков, сразу, обрыв при попытке взлома to_keep_order.gif

CMS будет работать php<->ajax или стандарт(все зависит на любителя)

Системы
1. Новости
2. Пользователи
3. Форум
4. Голосования / опросы
5. Галерея
6. Гостевая книга
7. Система статистики
8. Система статей
и т.д.
AJAX(JS) библиотека разрабатывается с акцентом "минимум на максимум"
В общем вся система разрабатывается таким типом ))
Мой дивиз при разработке

Для линейки тоже будет работать))

Будет Платнай и Бесплатная версия(с значительным отличием)

Высказываем свои предложения и пожелания =)

0
Александр
Александр

User

Ветеран

Posts: 1306

На форуме с: 05/25/2009

Репутация: +296

Рейтинг: 0

· 12/06/2009, 05:49 PM

Демку давай!!!11

You can't feeling! No you can't feeling! And you can't feeling!

— People = Shit

0
E
extreme1
· 12/06/2009, 06:03 PM

написана с нуля или за основу быва взята какая то cms ?

0
D
Doomer
· 12/06/2009, 08:05 PM

все писалось с нуля =) своими силами и знаниями =)
Демка, в нете, будет позднее, вместе с бесплатной версией =)
В бесплатной будет
1. Авторизация
2. Система новостей
3. Топы
возможно потом и подключу систему платежей

шаблонизатор работает теперь с
Локальными переменными и глобальными
Рабочие структуры
if/elseif/else/while/foreach/for/switch
Встроенные функции

0
Black Ghost
Black Ghost

User

Участник

Posts: 44

На форуме с: 09/12/2007

Репутация: +1

Рейтинг: 0

· 12/06/2009, 08:42 PM

А чем не нравится XSLT в качестве шаблонизатора (он вроде как для этого в стандарты W3C и внесен)? Зачем опять изобретать велосипед ввиде нового языка шаблонов? И чем не устраивают другие шаблонизаторы (благо их за последние лет 8 напахали достаточно)?
Чтобы CMS хорошо использовалась в первую очередь (ну очевидные вещи, как безглючность, адекватная админка и функционал) с ней должно быть просто работать дизайнеру/верстальщику и разработчику. С этой точки зрения язык шаблонов нужен либо стандартизированный (XSL) либо популярный (FastTemplate тот же), а сама CMS должна быть модульной (для дописывания компонент разработчиками) и "прозрачной" с точки зрения архитектуры (т.е. должно быть интуитивно понятно, как из своего модуля получить доступ к той или иной компоненте системы без граблей в 3 ряда, т.е. описано и реализовано адекватное API).
Без этого всего CMS будет на уровне поделок начала 2000-х годов, т.е. отставать от рынка на 9-10 лет. (ну AJAX - это, конечно, хорошо, но он "интересности" данной CMS не добавит).

ЗЫ: для экспериментов и раздумий, если, конечно, планы на CMS больше, чем сделать игрушку под сервера линейки, а что-то серьездное):
- а как обстоят дела с выводом, скажем, таблицы в 10.000 записей через шаблонизатор? (просто известный прикол того же FastTemplate, который на этом захлебывается и не укладывается в 30 сек).
- как обстоят дела с "безопасностью" шаблонов (например, как она к такому вот шаблону отнесется: {exec('rm -rf .');} или {exit();})?
- как обстоят дела с потреблением памяти и процессора? Делались ли замеры? Впишется ли она, скажем, в ресурсы на минимальном тарифе за 3 у.е. у какого-нить совсем тухлого хостера (т.е. 0.1% времени от C2D и 16Мб памяти под на процесс PHP) и если нет, то какие требования? (сюда же - оптимизация кода).
- помимо POST- и GET-запросов есть еще COOKIE, про них помним? (о безопасности)
- как со стрессоустоячивостью обстоят дела (т.е. планируется ли модуль отражения микро-DDoS-ов?
- планируется ли поддержка ЧПУ (обработка ссылок вида /articles/statya-ob-lineyke.html как get-запрос)?

А вообще - начинание очень хорошее, в первую очередь для самого автора. Личный опыт - бесценен.

- У тебя есть сердце?
- Сердце?... Нет, но у меня есть винтовка, а сердце... сердце - слишком хорошая мишень, чтобы носить его при себе...

0
D
Doomer
· 12/06/2009, 09:57 PM

Завтра сделаю краш тест и отвечу на ваши вопрос, думаю интересно всем.
Шаблонизатор устроен так обрабатывает слова сначала, и блоки, потом обрабатывает для кеша, а из кеша делается постоянный вызов
И не делает лишних тело движений. Код в 55 строк вес файла меньше двух кило байт максимум будет 80-150 строк

0
Black Ghost
Black Ghost

User

Участник

Posts: 44

На форуме с: 09/12/2007

Репутация: +1

Рейтинг: 0

· 12/06/2009, 11:03 PM

Doomer, не подумай, я не в коем случае не докапываюсь и не придираюсь. Просто это грабли, на которые уже тысячи людей наступали.

По поводу шаблонизатора: идею понял, теперь вопрос, как с правами на запись в cache-директорию, не смущают? Иногда это бывает опасно, например, если в коде окажется возможность remote include-а, то есть, куда записать шел-код и это место доступно извне.

По поводу тестов на производительность, это думаю будет полезно:

Код
<?php // index.php
$startTime = microtime(true);

// тут все тело на генерацию страницы...

echo "<!-- Время генерации: " . sprintf("%.4f", (microtime(true) - $startTime)) . "sec. -->\n";
echo "<!-- Общее потребление памяти: " . memory_get_usage(true) . " байт, пик потребления памяти: " . memory_get_peak_usage(true) . " байт. -->\n";
?>


Ну я думаю очевидно, что больше 2-3 сек на генерацию страницы при тестах на домашней тачке - это недопустимо много (просто инече на вирутальном хостинге можно получить 20+ сек, что уже на гране фола) и есть смысл задуматься. Еще бывает полезно все mysqli_query(...) обернуть такими же замерителями скорости и посчитать суммарное время выполнения запросов.

- У тебя есть сердце?
- Сердце?... Нет, но у меня есть винтовка, а сердце... сердце - слишком хорошая мишень, чтобы носить его при себе...

0
D
Doomer
· 12/12/2009, 08:00 PM

Усовершенствовал шаблонизатор, теперь работает и со статическими страницами, то-есть, если страница не часто обновляется есть возможность сохранить её в кэш и от туда она будет грузится(учитывается обновление), это уменьшает нагрузку на сервер и бд,
Дальше будет сделан универсальный класс который будет работать с хранением данных(один интерфейс). Возможны варианты: Mysql,postSql,файловая система и т.п. Собственный тип запросов.

0
D
Doomer
· 12/12/2009, 10:25 PM

если есть желающие могу шаблонизатор выложить

0
Y
yArrr
· 12/13/2009, 02:54 AM

Раскрывающийся текст
Код
function apply($tpl){
        ob_start();
        $path = site_path . 'themes/'. $this->theme .'/'. $tpl . '.tpl.php';
    if (file_exists($path) == false) {
            trigger_error ('Template `' . $tpl . '` does not exist.', E_USER_NOTICE);
            return false;
    }

    // Load variables
    foreach ($this->vars as $key => $value) {
        $$key = $value;
                unset($this->vars[$key]);
    }

    include ($path);
        $p = ob_get_contents();
        ob_end_clean();
        return $p;

    }


чем не шаблонизатор (выдрано из контекста основного класса шаблонизатора, однако основная идея ясна и так : не стоит изобретать велосипеды. php уже есть и легче применять php вставки в теле шаблона, чем писать на PHP свой аналог PHP ) .

0
Войдите или зарегистрируйтесь чтобы ответить