Zend Framework v0.13 버전부터 Zend Framework 사용법을 배우기 시작했습니다. 당시 회사의 프로젝트 중 하나에서도 우연히 Zend Framework를 사용하게 되었습니다. 버전 0.6 이후에는 더 이상 세부 사항에 신경 쓰지 않았습니다. 며칠 전에 Zend Company가 5월에 공식적으로 Zend Framework를 출시할 것이라는 소식을 들었습니다. 오늘은 특히 학우들에게 Zend Framework를 다운로드하여 테스트해 보도록 요청했습니다.
최신 버전은 0.93입니다. 테스트 결과 Zf 프레임워크가 점점 더 바보처럼 변하고 있는 것으로 나타났습니다. ZF 라이브러리에는 많은 것들이 직접 패키지되어 있습니다. 어떻게 부르는지만 알면 괜찮습니다. 확실히 이전 버전에 비해 큰 변화가 있었고, 더 많은 기능이 추가되었습니다.
우선 Zend.php가 사라지고 load.php에 있는 Zend_load 클래스로 대체되었습니다.
둘째, 라이브러리 클래스 로딩이 더 편리해졌습니다. 이전 ZF는 하위 디렉터리에서 사용하기가 더 까다로웠습니다. 이제 하위 디렉터리에서 직접 사용할 수 있으며, mod_rewrite 없이도 사용할 수 있습니다. "PHPCHINA에 대한 여러 질문에 답변하기"에서 작성한 것과 유사하게 http://path/to/site/controller/action을 통해 액세스할 수 있습니다. URL 매핑'에서는 URL 매핑에 대해 설명합니다.
셋째, 뷰가 컨트롤러에 직접 통합되어 있어 쉽게 호출할 수 있습니다. 그러나 한 가지 단점은 프로그램의 디렉토리 구조가 정부의 요구 사항에 따라 표준화되어야 한다는 것입니다.
그 외에도 출입 통제 등 많은 기능이 추가되었습니다. 전체적으로 많은 것이 바뀌었습니다. 오늘 밤에는 간단히 살펴봤습니다.
ZF, cakephp 및 기타 프레임워크의 경우 소위 "모든 것이 그것과 분리될 수 없다"는 프레임워크의 기본 원리를 누구나 이해하는 것이 가장 좋다고 생각합니다. 프레임워크 자체는 매우 간단하고 ZF처럼 복잡하지 않습니다. 세부 사항을 매우 잘 처리할 뿐 아니라 동시에 보편적이고 표준화되고 강력해야 하므로 복잡합니다. 프레임워크의 기본 원칙과 관련하여 PHP5를 사용하여 간단한 MVC 프레임워크를 구축하는 방법에 대한 phpit.net의 기사(Joy International Village에서 번역됨)를 읽어보거나 "PHP 가장 쉬운" 기사를 읽어볼 것을 권장합니다. MVC 개발을 구현하는 방법' 시리즈의 기사를 참조하세요.
이전에 chinaunix에 PHP 프로젝트에서 객체와 프로시저를 사용할 때의 장점과 단점에 대해 논의한 게시물이 있었습니다. 일부는 개체를 지원하는 반면 다른 일부는 비객체 개발이 WEB 개발의 특성에 더 부합하고 성능이 더 좋다고 믿습니다.
저는 개인적으로 특히 PHP5 환경에서 객체 기반 개발을 강력하게 지지합니다(PHP5의 객체와 PHP4의 객체는 완전히 다르기 때문에 Zend 엔진을 보면 알 수 있습니다). 하지만 게시물에 언급된 요점도 매우 합리적입니다. 예를 들어 "OOP 양식에는 아무 이유 없이 관련 없는 기능이 많이 로드되어야 합니다."WEB 개발은 성능에 큰 중점을 두고 있으며 PHP는 해석된 언어이므로 너무 많은 코드가 포함되면 성능에 큰 영향을 미칩니다. 이 문제는 Zend Framework, CackePHP, Fleaphp 및 내 프레임워크 PHPbean에 존재합니다.
예를 들어 indexController, 여기서는 Zend Framework를 예로 사용합니다. 코드는 다음과 같습니다:
class indexController extends Zend_Controller_Action {
function init(){
initView()
//echo 'index/index'; $this->view->title='hello World!';
$this->render()
}
function testAction(){
echo 'index/test' ;
}
function showAction(){
echo 'index/show'
} }
}
?> ; , testAction() 및 ShowAction() 메서드의 내용은 완전히 중복됩니다. 실제 개발에서 이 아이디어에 따르면 기능 모듈은 일반적으로 컨트롤러에 해당합니다. 예를 들어 사용자는 userController에 해당하며 로그인, 종료, 등록, 목록, 세부 표시 등 많은 방법이 있습니다. 프로젝트 규모가 클 경우 컨트롤러는 몇 K에서 10K 이상만 가질 수 있습니다. 그렇다면 이 모델은 매우 나쁩니다.
JAVA의 Struts에서는 하나의 작업이 하나의 파일에 해당하는 완전히 다른 접근 방식을 채택합니다. 좋은 참고방법이라고 생각합니다.
PHP5에서는 객체 지향을 사용하는 것이 더 좋다고 생각합니다. 대면 공정에서 얻을 수 있는 것은 사물을 대면할 때도 달성할 수 있으며, 더 나은 성과를 얻을 수 있다고 할 수 있습니다. 그러나 중요한 점은 객체지향 프로그램을 작성하기 위해 프로세스 지향적 사고를 사용하는 대신 객체지향적 사고를 사용하여 객체지향적 사고를 사용한다는 것입니다!
위 내용은 내용의 측면을 포함하여 ZF와 같은 일반적인 PHP 프레임워크에 존재하는 문제를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.