artyvr: не обязательно. У composer бывает перестает работать автозагрузка, если не сделать вручную dumpautoload -o. Не разбирался из-за чего это, просто после любого апдейта вручную делаю.
Значит ищи что ты сломал. Так как оно должно работать из коробки. Стоило бы показать код в AppServiceProvider и во вьюхе.
Как у тебя вызывается вьюха? Покажи код контроллера.
Нет. Router должен проверять есть ли у роута\группы роутов какой-либо фильтр\middleware, и если есть, вызывать соответсвующий фильтр.
Т.е допустим у нас есть:
$router->post('users', ['uses' => 'UsersController@store', 'middleware' => 'auth']; (пример для Laravel)
'auth' определен как:
'auth' => 'Middleware\Authenticate.php'
В котором есть функция:
function handle($router, $next) {
$auth = // Сервис
if ($auth->isGuest())
return redirect('/login');
return $next($router);
}
Теперь, когда я обращаюсь к POST /users, то Router смотрит что у данного роута есть middleware -> auth, и вызывает этот Middleware.
Middleware в свою очередь проверяет авторизован ли пользователь, и если да, то выполнение продолжается. Если же пользователь не авторизован, то middleware прерывает цепочку, и возвращает юзеру редирект на вход.
Это что относится к реализации в Laravel.
У себя можно сделать проще:
Создаем базовый контроллер AuthenticatedContoller с интерфейсом MIddlewareInterface и методом:
public function handle($request)
{
}
В Router, или где там у вас создается экзепляр контролеллера проверяем:
if ($controller instanceof MiddlewareInterface)
{
$result = $controller->handle($request);
}
И дальше уже обрабатываем как угодно, можно кидать exception например.
Можно посмотреть как это реализованно в том же Laravel например. Имеются middleware, которые вызываются при старте приложения и после загрузки основных частей.
Router может определять группы роутов, для которых можно задать определенный набор middleware которые должны быть вызванны при обращении к этим роутам.
Т.е конкретно сам Router не занимается подобными вещами, он дергает внешние middleware, которые если нужно могут прервать выполнение скрипта.
В Router и делается такая проверка. По крайней мере в тех фрейморках которые я использовал. Можно конечно прописывать фильтры в контроллерах, но в итоге они все равно будут обрабатываться роутером.
PrinsAlbert: оно всегда было разное. Западные методы не помогут для продвижения в Яндексе. Serg Great: из-за этих "сеошиков" невозможно найти нормальную информацию. Вся выдача во всяком шлаке. А даже если и найдешь что-то нужное, то весь текст как новогодняя елка в ключевиках. Читать противно.
Ну конечно в браузере они будут отображаться одинаково, так как браузер их автоматически преобразовывает. Видно что в 3 случае возвращается &_permil; это я так понимаю работа htmlentities.
Вообще чтобы не заморачиваться, используй htmlspecialchars.
Йцу Йцуевич: С php.net:
This function is identical to htmlspecialchars() in all ways, except with htmlentities(), all characters which have HTML character entity equivalents are translated into these entities.
Т.е htmlentities преобразует ВСЕ символы (с учетом кодировки) для которых есть html эквивалент.
Возьми для примера символы от сюда(3 столбец) www.degraeve.com/reference/specialcharacters.php и закодируй их обоими функциями, и увидишь отличия.
Алмаз: cron - планировщик в *nix. Если на сервере стоит какая-то CP(ISPManager, CPanel, etc...) то надо поискать в ней как настраивать крон.
Если панели нет, то нужно по ssh настраивать crontab. Там ничего сложного нету, в инете полно мануалов.
Можно попробовать сторонние сервисы, которые будут дергать ваш внешний скрипт (что-то вроде https://www.setcronjob.com/)
Tehdrew: Любая готовая(бесплатная или платная) система в любом случае потребует доработки, за которую возьмут "небесплатные" деньги.
Чтобы система полностью устраивала, она должна писаться конкретно для вас, и конкретно по вашему ТЗ.
Все остальные варианты приведут к тысячи костылей, и к десяткам часов поиска багов.
Если система будет приносить деньги, то стоит написать ТЗ и отдать на разработку.