Вопрос по архитектуре:)

artapp-ds

Новичок
Всем доброго времени суток!
Пишу некий фреймворк для поддержки структуры в проектах ну и MVC паттента :)
Собственно сам вопрос: насколько такая архитектура, или как там это называется, правильная? Вот набросал для наглядности блок-схемку:

Вот как это все работает по шагово:
1)index.php выступает в роли фронт-контроллера
2)router.php обрабатывает запрос и выполняет его
3)cache.php проверяет на наличие кеша по этому запросу, если есть то сразу же его выводит в обход обработки..
4)security.php занимается обработкой форм, запросов перед их выполнением, чистит от xss и т.д.
5)controll.php занимается обработкой контроллеров, подгружает в себя, если нужно, модели, модули и т.д. после обработки выводит viewes.php
6)viewes.php занимается выводом "представлений", на самом деле их может быть несколько в одном контроллере..
7)опять же cache.php, но в этот раз он записывает кеш данной страницы, что бы в дальнейшем загружать кеш
8)Сам вывод
Хотелось бы сразу все это расписать и продумать, что бы по сто раз не переписывать один и тот же код.. Что скажете? :)
З.Ы. если не там тему создал, уж простите, перенесите если не сложно :)
 

Фанат

oncle terrible
Команда форума
Где ты здесь увидел оффтоп?
Ты задал вопрос по архитектуре.
Тебе задали вопрос по одной из составляющих.
Ты вообще планировал обсуждение? Если нет, то зачем было вообще писать?
 

artapp-ds

Новичок
Фанат, я имел ввиду Absinthe. fixxxer, что именно вас интересует, чем именно этот файл будет заниматься или что? Я немножко не понял вопроса. Если это то о чем я думаю, то он будет чистить GET и POST запросы, от различных символов и xss уязвимостей, в нем же будет генератор "безопасных форм", это пока все что я смог придумать, думаю в процессе задумок будет больше.
 

artapp-ds

Новичок
ну это зависит от типа самого поля, ну например если в поле должны быть только цифры, то там и должны быть цифры. Если же это поле для текста, то нужно чистить от " ' & < > хотя в php вроде есть функция которая чистит сама. Я мало чего знаю в безопасности, так что если у кого-то есть мысли - поделитесь :)
 

Фанат

oncle terrible
Команда форума
что значит "нужно чистить от " ' & < >"?
то есть, этот форум работает неправильно? он ведь не чистит, а позволяет тебе их ввести
 

Фанат

oncle terrible
Команда форума
ну, в общем, никакой секюрити прослойки не надо.
замену на &amp, например, должен делать модуль views.

кэш после вьюс - лишнее.
 

artapp-ds

Новичок
А почему кеш лишнее? он ведь должен сохранять в кеш, а когда это делать как не после самого вывода?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Кешировать данные приложения надо ДО вывода, а вывод можно кешировать и другими методами.
 

artapp-ds

Новичок
А вот еще такой вопрос назрел, в общем:
Есть класс controll, он подгружает в себя, модули, плагины, хелперы и т.д. после загружает сам клиентский контролер.
PHP:
class controll {
public $modules;
...
public $blocks;
private $controler;

public function __construct($router, $action) {
   $this->modules = new modules;
   ...
   $this->blocks = new blocks;
   include('./app/controllers/'.$name.'.php');
   $this->controler = new $name;
   $this->controler->$action;
}
}
$fw = new fw($router, $action);//$router это название требуемого контролера. $action действие
с этим все понятно, все работает. Но как лучше использовать то что загружает в себя fw? Вот как это делаю я:
PHP:
class index extends fw {
   public $modules;
   public $blocks;
   public function __construct($modul, $block) {
      $this->modules = $modul;
      $this->blocks = $block;
   }
   public function template() {
       $this->blocks->get('blockname');
   }
}
Но понимаю что это неправильно, можно проще и легче. Не подскажете как?
З.Ы. код писал не проверяя, просто показать
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
А если у тебя изменяется вывод?
 

artapp-ds

Новичок
Для этого будет параметр контролера($cache_true), если он true, то страница будет заново сгенерирована. Но так тоже не очень хорошо. Поэтому попробую реализовать иерархию кеша. Т.е. один контроллер может иметь некие переменные которые выводятся в шаблоне. Соответственно для каждого такого случая будет свой кеш..
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Я спросил если у тебя изменится шаблон, что ты будешь делать? Как приложение узнает, что надо перегенерировать кеш?
 

fixxxer

К.О.
Партнер клуба
Кэшировать надо прежде всего результаты выполнения sql-запросов и подобных тяжелых операций, остальное опционально. Если использовать нормальные шаблоны (которые написаны в php или компилируются в php, а не какое-нибудь дерьмо с заменой регулярками), все и так будет достаточно быстро. По крайней мере, пока это станет узким местом, можно внести много других исправлений - не надо оптимизировать то, что не тормозит.

Если же это поле для текста, то нужно чистить от " ' & < > хотя в php вроде есть функция которая чистит сама. Я мало чего знаю в безопасности, так что если у кого-то есть мысли - поделитесь
Очеь просто, не надо делать ничего, никаких глупостей. Нет никаких "опасных" символов. Есть ошибки программиста, когда в определенном контексте строка выполняется как код или инструкции или не приводится к заданному формату. То есть если пишешь в базу - используешь плейсхолдеры, выводишь html - использовуешь htmlspecialchars, пишешь, например, rtf или pdf - експейпишь как там в нем положено.

Под чистить я подразумеваю их замену на &amp, например
Это еще зачем? Что, html - единственно возможный формат данных?

То есть security.php надо выбросить.
 
Сверху