ZF2 公共目录的真实路径


Real path of ZF2's public directory

我想将一些数据(来自自定义控制器插件)写入我网站公共目录的"messages"子目录下的文件中。

自定义控制器插件非常简单:

<?php
namespace Main'Service;
class MessageWriter
{    
    public $data = array();
    public function __set($name, $value)
    {
        $this->data[$name] = $value;
    }
    public function write_message()
    {
        $this->time = time();
        $data = serialize($this->data);
        $filename = time() . '_' . rand(1000, 9999);
        @file_put_contents('/var/www/public/messages/' . $filename, $data);
    }
}
?>

我有两个小问题/问题:

  1. 如何避免路径的硬编码?难道没有一个 ZF2 配置变量来保存公共目录的真实路径 (/var/www/public)。
  2. 是否有任何类可以在 ZF2 中写入文件,或者可以使用file_put_contents和类似的文件函数?

谢谢!

话筒

在 ZF2 中,所有路径都是相对于应用程序根目录的,因此您应该能够使用 file_put_contents('public/messages/' . $filename, $data) 。而且file_put_contents()很好用。

试试...

APPLICATION_PATH.'/../public/messages/'.$filename

编辑:刚刚意识到这是 zf2 而不是 zf1...

一切都与 ZF2 中的应用程序路径有关