ZF2公共目录的真实路径

时间:2013-10-30 22:40:05

标签: php plugins file-io controller zend-framework2

我想将一些数据(来自自定义控制器插件)写入我网站公共目录的“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和类似的文件函数可以吗?
  3. 非常感谢!

    麦克

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

...试

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

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

所有内容都与ZF2中的应用程序路径相关