Я не знаю, существует ли какой-либо «канонический» способ сделать это, но у меня есть хорошие результаты с подходом, основанным на создании модифицированного файла bin / cake.php и помещении его в каталог, требуемый хостинг-провайдером (это может быть любойкаталог внутри или вне каталога приложения).Пример файла ниже:
#!/usr/bin/php -q
<?php
require 'path_to/config/requirements.php';
require 'path_to/vendor/autoload.php';
use App\Application;
use Cake\Console\CommandRunner;
$runner = new CommandRunner(new Application('path_to/config'), 'cake'); //path to your app 'config' dir
$command = [
"", //first can be empty (normally it's 'cake')
"command", //your command/shell name
];
exit($runner->run($command));
Вы также должны помнить, что файлы, определяющие cronjobs, не должны быть доступны всем (например, помещать их в webroot и делать доступными через web), поэтому вы должны также реализовать кое-чтокоторый разрешает доступ к нему только через службу, которая запускает его на вашем хостинге.