Йцу Йцуевич: С 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: Любая готовая(бесплатная или платная) система в любом случае потребует доработки, за которую возьмут "небесплатные" деньги.
Чтобы система полностью устраивала, она должна писаться конкретно для вас, и конкретно по вашему ТЗ.
Все остальные варианты приведут к тысячи костылей, и к десяткам часов поиска багов.
Если система будет приносить деньги, то стоит написать ТЗ и отдать на разработку.
Vit: Вообще L5 работает с psr-4, хз, может не подгружает. Хотя в composer.json у этого пакета есть autoload..
Попробуй написать обертку для этого пакета, либо используй что-то более надежное, а-ля https://packagist.org/packages/guzzle/guzzle
Йцу Йцуевич: Конкретно для тегов лучше использовать htmlspecialchars.
htmlentities конвертирует ВСЕ символы которые могут быть ковертированны, тогда как htmlspecialchars конвертирует только те символы, которые могут быть в тегах.
Sicus: Значит у учеников хромает база. И они не понимают как выразить sin/cos в этой формуле. Значит надо объяснить базу, либо брать учеников с определенной базой.
matperez: в том же Laravel я просто подменяю реализацию интерфейс на $mock, и все классы которые использовали MyHelperInterface - начинают использовать $mock.
Я не знаю чем и как вы мокаете, но дальше все просто.
В том же Mockery просто создаем мок нужного класса, например:
$mock = Mockery::mock('MyHelpers');
$mock->shouldReceive('makeDirectory')->andReturn(true);
И дальше везде подсовываем $mock и радуемся.
Естесственно нужно чтобы была возможность подменить оригинальный класс на $mock. Как вы это реализуете (DI или передача через конструктор) это ваша задача.
Матвей Мамонов: читай про область видимости переменных. Я написал тебе пример, убери в нем global и получишь ошибку "Undefined variable...".
Если дело не в этом, то тебе стоит научиться задавать вопросы, и приводить не только 2 строчки кода, но и сам текст ошибки, и место в котором она появляется.
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 и закодируй их обоими функциями, и увидишь отличия.