models/
Модели напрямую работают со смарти, не нужно так, лучше вынести логику работы с представлением в контроллер, тем самым метод контроллера должен будет сделать следующее: обработать GET/POST и получить из него данные, обратиться к модели чтоб эти данные как то обработать, обратиться к смарти чтоб отрендерить HTML и вернуть его клиенту
# Delphinum (10.01.2017 / 14:55)
index.php
if (is_file('install/index.php')) {
Не надо так, лучше просто указать в документации что после распаковки архива нужно перейти по адресу: ваш.сайт/install - так как установка будет вып
index.php
if (is_file('install/index.php')) {
Планировал после установки index.php заменить на другой, в котором этого нет, да забыл. Но по идее админ сайта и сам может удалить.
app/core/core.php
Почему так много функция автозагрузки, отличающихся 1 строкой адреса?
Можно как-то иначе?
1. Почему метод edit реагирует на GET запрос? Нужно либо PUT, либо (на крайний случай) POST. Подобное везде в роутере.
2. Зачем в роутинге имена вроде admin_ads_del? Они где то применяются?
В остальном роутер неплохой )
Почему по вашему мнению не стоит использовать GET?
Cms::AutoClear();
Возможно я что то не понял, но зачем столько запросов в базу при каждом обращении к сайту?
В джоне нечто похожее и не жалуются. Но по идее можно вынести в отдельный файл, который потом ставить на крон.
Про контролеры и модели: у кого-то контроллеры тонкие, у кого-то толстые. Кому как удобней.
vitagame,
Но по идее админ сайта и сам может удалить
Ну по идее админ сайта может и запустить /install руками )
Можно как-то иначе?
Естественно. Для этого есть классы.
Почему по вашему мнению не стоит использовать GET?
GET служит для запроса данных, именно поэтому он передается в URL, так как позволяет зафиксировать состояние. При редактировании фиксировать состояние не требуется. Ну это я так, к слову, можно конечно хоть через DELETE передавать )
Про контролеры и модели: у кого-то контроллеры тонкие, у кого-то толстые. Кому как удобней
Контроллер может быть тонким, но он не должен быть безполезным. Если ваш контроллер занимается только тем, что передает управление в модель:
$this->model->edit($id);
то не проще ли вообще избавится от контроллеров и обращаться из роутера напрямую в модель?
# Delphinum (10.01.2017 / 16:12)
vitagame, Но по идее админ сайта и сам может удалить
Ну по идее админ сайта может и запустить /install руками )
Можно как-то иначе?
Естественно. Для этого есть классы.
Почему по вашему мнению
Ну по идее админ сайта может и запустить /install руками )
Делал для удобства, исправить не долго.
Естественно. Для этого есть классы.
Можно пример?
Контроллер контролирует передачу данных в модель, если можно так выразиться)
vitagame,
Можно пример?
Конечно:
class PrefixAutoloader{
private $prefix;
public function __construct($prefix = ''){
$this->prefix = $prefix;
spl_autoload_register([$this, '__invoke']);
}
public function __invoke($class){
$path = $this->prefix . '/' . $class . '.php';
require($path);
}
}
Используется так:
new PrefixAutoloader(HOME . '/app/controllers');
new PrefixAutoloader(HOME . '/app/models');
...
Контроллер контролирует передачу данных в модель, если можно так выразиться)
А что там контролировать? ) Нужно четко определить задачи контроллера, чтобы вводить его в систему. Для меня контроллер должен: получать данные от юзера, обрабатывать их, обращаться к модели, инициировать представление и возвращать HTML
Delphinum, Ок. Спасибо за критику.
Почему запрещено роботам индексировать сайт на этом движке?
User-agent: *
Disallow: /
Мариин, Открой индексацию. Я не запрещаю редактировать тот файл.
Черпайте хоть идеи для дизайна хотя бы основных частей сайта. Есть же куча шаблонов как платных, которые можно стырить или просто взять пару идей,
https://wrapbootstrap.com/themes/admin так и вообще бесплатных
А то с бутстрапа юзается ток сетка и то ради того, чтобы скрыть левую часть) Для больших экранов можно чуть поиграться с элементами)