내 웹 사이트의 공개 디렉토리의 'messages'하위 디렉토리에있는 파일에 맞춤 컨트롤러 플러그인의 데이터를 쓰고 싶습니다. ZF2의 공개 디렉토리의 실제 경로
사용자 정의 컨트롤러 플러그인
은 매우 간단합니다 :<?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);
}
}
?>
내가 한 두 개의 작은 문제/질문 :
- 어떻게 내가 경로의 하드 코딩을 피할 수 있습니까? 공용 디렉토리 (/ var/www/public)의 실제 경로를 보유하는 ZF2 구성 변수가 없습니까?
- ZF2에 파일을 쓰는 데 필요한 클래스가 있습니까? 아니면 file_put_contents 및 유사한 파일 함수를 사용하여 정상입니까?
대단히 감사합니다. 마이크
도움을 주셔서 감사합니다. – user2939345
이 모든 경로는 상대적인 것이므로 너무 많이 사용하지 않으면 좋습니다. 여러 플러그인, 컨트롤러 (쓰기, 파일 열기, 파일 존재 여부 확인 등)에서 공개 디렉토리 (이 경우 : 공개)의 이름을 하드 코딩해야한다고 가정 해보십시오. 그런 다음 어떤 이유로 든 public에서 public_new로 변경해야합니다. 따라서 하드 코딩 된 값을 어디서나 변경해야하며, 코드가 덜 휴대 할 수 있습니다. 공용 디렉토리의 이름을 유지하기위한 일부 글로벌 구성 변수를 갖는 것이 좋습니다. – user2939345
공용 폴더에 대한 전역 설정이 아닌 해당 경로로 이동하려면 MessageWriter 서비스에 삽입 할 수있는 메시지의 구성 경로를 추가하십시오. –