내 ZF 프로젝트에는 Zend_Registry에 저장된 큰 배열을 처리해야하는 모델이 있습니다. 배열은 데이터베이스가 아닌 캐시에서 레지스트리로 가져옵니다. 모델의 여러 메소드는 요청하는 동안 배열을 여러 번 사용할 수 있습니다. 내가해야하는 경우 마음 모범 사례와 최적화 된 성능을에 데, 나는 확실하지 않다 :메소드에서 사용하기 위해 모델에 데이터를 유지해야합니까?
- 그위한 전용 속성을 적용하고 바로 레지스트리에서 배열 각 시간을 얻을 캐시
- 의 어떤 종류를 사용합니다. 전용 재산의
예 :
class Application_Model_Category {
...
public function methodOne() {
foreach (Zend_Registry::get('tree') as $category) {
...
}
}
public function methodTwo() {
$tree = Zend_Registry::get('tree');
foreach ($tree as $category) {
...
$count = count($tree);
}
}
...
}
이 방법은 모든 (메모리, CPU 사용량 등)에 차이가 있습니까 : 레지스트리에서 때마다 점점
class Application_Model_Category {
private $_tree = null;
...
public function _getTree() {
if (!$this->_tree) {
$this->_tree = Zend_Registry::get('tree');
}
return $this->_tree;
...
public function methodOne() {
foreach ($this->_getTree() as $category) {
...
}
}
public function methodTwo() {
$tree = $this->_getTree();
foreach ($tree as $category) {
...
$count = count($tree);
}
}
...
}
예? 또는 첫 번째 방법이 조금 더 멋지게 보이십니까?
질문을 끝내면 첫 번째 방법을 사용하는 것이 거의 분명해졌습니다. 하지만 당신은 견고한 이유를주었습니다, 고마워요! – yentsun