어제 그룹의 누군가가 MVC를 사용하면 프로그램에 많은 데이터베이스 작업이 추가되어 성능이 저하된다고 말했습니다. MVC는 단지 프레임워크일 뿐이며 데이터베이스 작업과 아무 관련이 없습니다. MVC는 명확한 프로그래밍 개발 모델만 제공하므로 이를 잘 처리하는 한 불필요한 데이터베이스 작업을 많이 수행하는 것은 불가능합니다. MVC를 통해 프로그래머가 자신도 모르게 더 많은 데이터베이스 작업을 수행할 수 있다면 이는 확실히 좋은 MVC 아키텍처가 아닙니다. MVC는 간단한 개발 프레임워크만 제공하면 된다고 생각합니다. 많은 라이브러리 클래스를 통합할 필요는 없으며 프로그래머에게는 라이브러리 클래스를 사용하는 것이 가장 좋습니다.
제가 만든 MVC 프레임워크의 목적은 단지 간단한 MVC 프로세스를 구현하는 것입니다. 다른 것들은 특정 상황에 따라 세부적으로 추가될 수 있습니다. 정말 컴팩트하고 유연하며 효율적입니다!
저는 지난 몇 주 동안 "PHP에서 MVC 개발을 구현하는 가장 쉬운 방법 - 뷰 및 템플릿 기술", "PHP에서 MVC 개발을 구현하는 가장 쉬운 방법 - 단일 진입점"이라는 두 개의 기사를 썼습니다. 오늘은 MVC 모델을 구현하는 방법에 대해 구체적으로 이야기하겠습니다.
저는 개인적으로 MVC 이론을 깊이있게 연구하지 않았습니다. 모델 메소드를 호출하면 해당 데이터를 얻을 수 있지만 프로그래머는 구현 세부 사항에 신경 쓸 필요가 없습니다. . 실제 개발에서는 데이터베이스 테이블이 모델에 해당할 가능성이 높습니다. 예를 들어 사용자 정보 테이블 userinfo는 모델 사용자에 해당합니다. 모델 사용자의 add() 메소드를 호출하면 데이터베이스에 데이터를 추가하고 select()를 통해 이를 쿼리할 수 있으며 업데이트할 수 있습니다. 업데이트를 통해서요. 동시에 모델은 mysql, oracle, sql server 중 어느 것을 사용하든 특정 데이터베이스 유형과 독립적이어야 합니다. 동시에, 웹 개발에서는 ROR을 사용하지 않는 것이 좋습니다. 복잡한 다중 테이블 쿼리에는 SQL 언어를 사용하는 것이 매우 편리하고 빠르며 성능도 더 좋습니다. 프로그래머가 SQL에 대한 지식조차 없다면 그는 자격을 갖춘 프로그래머라고 생각하지 않습니다. 따라서 직접 SQL 쿼리를 구현하기 위해 내 모델에 쿼리 메서드를 제공합니다.
다음은 모델의 대략적인 결과입니다. 이는 전체 코드가 아닙니다. 전체 코드는 데모 패키지를 참조하세요.
코드 복사 코드는 다음과 같습니다.
var $tbname;//모델에 해당하는 테이블 이름
var $debug=false;//디버그 모드인지 아닌지
function module($tbname ,$db='' ){}//생성자
function _setDebug($debug=true){}//디버깅 모드 켜기 또는 끄기
function add($row,$tbname=''){} //새 레코드 추가
function query($strsql){}//직접 쿼리 sql 문
function count($where='',$tbname=''){ }//Count 통계
function select($where= '',$tbname=''){}//Query
function delete($where='',$tbname=''){}//조건을 충족하는 레코드 삭제
function update($ set,$where,$tbname=''){}//지정된 레코드 업데이트
function Detail($where,$tbname=''){}//레코드를 자세히 표시
}
?>
이 모델에서는 배열과 데이터베이스 필드를 사용하여 대응합니다. 초기 PHPBEAN에서는 대응을 위해 객체를 사용했습니다. 그런데 나중에 이 방법이 PHP에서는 좋지 않다고 느껴 불필요한 클래스를 많이 추가하게 되었습니다. 배열을 사용하는 것이 더 편리하고 더 좋습니다(PHP의 배열은 실제로 좋은 것이며 JAVA보다 훨씬 좋습니다).
아래 데모에서는 mysql 데이터베이스를 사용하여 데이터베이스 작업 클래스를 원래 라이브러리 클래스 중 하나로 변경했습니다. 자세한 내용은 "이전 라이브러리 클래스 수정, php5->php4"를 참조하세요.
다음으로 데모 사용에 대해 자세히 설명하겠습니다. ^_^
원본 패키지의 index.php에 추가
require_once(SITE_PATH.'/libs/phpbean.class.php')
require_once(SITE_PATH.' / libs/mysql.class.php');
$phpbean=new phpbean();
글로벌 $phpbean;
$mysql=new mysql("localhost","****"," * ***","52site");
$phpbean->register('db',$mysql);
unset($mysql);
?>
이 코드는 메인 레지스트라에 MYSQL을 등록하는 것입니다. 레지스트라 사용 원칙에 대해서는 제가 번역한 두 기사를 읽어보시면 됩니다.
그런 다음 다음 코드를 사용하여 새 mysqlController.class.php 파일을 만듭니다.
/**
* MVC 데모 데모
* 가장 기본적인 MVC 기능만 구현하며 보안 처리, 데이터 필터링 및 기타 최적화 조치는 포함되지 않습니다.
* @author:feifengxlq
* @since:2007-1-24
* @copyright http://www.phpobject.net/blog/
*/
class mysqlController
{
var $module ;
function mysqlController(){
require_once(SITE_PATH.'/libs/module.class.php')
$this->module=new module('52site_siteinfo');//52site_siteinfo 테이블 이름
$this->module->query("set names 'gb2312'");//MYSQL5인 경우 이 문장을 추가하세요.
}
function indexAction(){
print_r( $this->module->select()); //데이터 읽기를 구현합니다
}
}
?> 컨트롤러, 모델을 추가하세요. 그런 다음 indexAction의 모델 메소드를 호출하여 데이터를 표시합니다. 이는 가장 간단한 쿼리 목록을 구현합니다. 이 주소(http://path/to/yoursite/mv...)를 통해 결과를 볼 수 있습니다.
앞으로는 쿼리, 업데이트, 추가, 페이징 목록, 다중 테이블 쿼리 등
위에서는 PHP에서 MVC 개발을 구현하는 가장 간단한 방법인 모델을 다양한 측면을 포함하여 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.