1

我想添加一个 symfony 命令作为 cron 作业,但我的托管服务器 (2freehosting.com) 不允许我添加以下命令:

 php app/console cache:clear --env=prod --no-debug

php path/to/file允许使用命令类型。

所以我想创建一个文件 clearCache.php 来运行上面的命令并将其添加为 cron 作业

php path/to/clearCache.php

如何在 clearCache.php 中调用这个 symfony 命令?

我的目录结构:

-app
-bin
-vendor
-src
-public_html
  -bundles
  -app.php
  .....
-clearCache.php
4

3 回答 3

1

您可以使用 bash 脚本,例如clearCache.sh

#!/bin/bash

/path/to/php /path/to/app/console cache:clear --env=prod --no-debug
于 2013-07-27T16:41:16.360 回答
0

假设您使用的是 linux,您可以创建一个别名:

alias symfony-cc="php path/to/app/console cache:clear --env=prod --no-debug"
于 2013-07-28T05:07:37.987 回答
0

请记住,清除缓存意味着删除应用程序/缓存中的文件夹和文件。所以你可以使用这个技巧

在 web 文件夹中创建 clear.php 文件并放入

<?php // get all file names
$str = __DIR__.'/../app/cache/';

function recursiveDelete($str){
if(is_file($str)){
    return @unlink($str);
}
elseif(is_dir($str)){
    $scan = glob(rtrim($str,'/').'/*');
    foreach($scan as $index=>$path){
        recursiveDelete($path);
    }
    return @rmdir($str);
}
}

recursiveDelete($str);

//here you can redirect to any page
echo(__DIR__.'/../app/cache/*'.' -> Clear completed'); 

然后通过 localhost/clear.php 或 yoursite.com/clear.php 访问

于 2014-08-22T06:20:23.787 回答