Php 如何在Symfony中创建pagecall计数器?

Php 如何在Symfony中创建pagecall计数器?,php,symfony,Php,Symfony,我想有一个服务,计算金额的网页被调用。 我的问题是每次重新加载页面时,服务都是新实例化的。因为它总是1。 我将它注入控制器方法中,并从那里调用cont()函数 class CountService { private static $counter = 0; public static function count() { self::$counter++; } /** * @return int */ p

我想有一个服务,计算金额的网页被调用。 我的问题是每次重新加载页面时,服务都是新实例化的。因为它总是1。 我将它注入控制器方法中,并从那里调用cont()函数

class CountService {
    private static $counter = 0;

    public static function count()
    {
        self::$counter++;

    }

    /**
     * @return int
     */
    public static function getCounter(): int
    {
        return self::$counter;
    }
}
如何在服务器保持运行期间持久化计数器变量?
我不想为此使用数据库。

为计数创建一个专用实体,因为您需要某种形式的持久性,您可能还希望存储一个cookie,其中包含用户已访问页面的信息,因为您可能不想在用户每次刷新页面时计数

插入会话并将计数器保留在那里。无论哪种方式,你都需要某种持久性。“你可能不想每次用户刷新页面时都计数”这正是我想要的。“你需要某种形式的坚持”是的,这就是我想问的问题。除了使用数据库,我不知道在服务器运行时保存数据的方法。如果不想使用数据库运行,可以使用某种json对象?键是页面路由/uri,然后值是视图计数,并将其放入名为“visions.json”的静态文件中?每次调用内核请求时,使用file_put_contents和file_get_contents读取/保存文件,如果你仍然没有得到这个想法,请回答我的评论,我会编辑我的答案,并添加一些示例代码。我知道,但是真的没有其他方法可以让类/对象像其他Web框架中的单例一样从程序开始一直存在到结束吗?在请求之间需要某种持久性,因为每次您请求网站的新uri时,所有数据都会丢失。正如在问题注释中所说的,您可能还希望使用会话来存储值,但当您想知道值的最终结果是什么时,您需要有一种方法将其存储在数据库或文件中。这个想法非常简单,你创建一个会话,用户做一些事情,访问被保存下来,然后在他离开你的网站后,会话就结束了,你不知道那里发生了什么。谢谢,现在我明白了。我以前使用过JaxRS Jersey,您可以在服务器启动时创建对象,它们只有在您停止服务器时才会被删除,并且在这段时间内您可以访问和修改对象。