>  기사  >  CMS 튜토리얼  >  phpcms에 컨트롤러가 있나요?

phpcms에 컨트롤러가 있나요?

青灯夜游
青灯夜游원래의
2023-02-17 10:37:471952검색

phpcms에는 컨트롤러가 있습니다. phpcms 컨트롤러는 "phpcms/modules"에 저장되는 모듈의 클래스 파일입니다. 각 모듈에는 독립적인 명명 방법이 있습니다. 클래스 이름은 컨트롤러 클래스가 상속하는 "파일 이름 + .php 명명" 형식입니다. 기본적으로 시스템의 함수 라이브러리를 직접 사용할 수 있습니다. 컨트롤러 클래스의 클래스 이름과 컨트롤러 파일 이름은 동일해야 합니다.

phpcms에 컨트롤러가 있나요?

이 튜토리얼의 운영 환경: windows7 시스템, phpcms v9 버전, DELL G3 컴퓨터

phpcms에는 컨트롤러가 있습니다.

phpcms의 컨트롤러는 무엇인가요?

phpcms 컨트롤러는 phpcms/modules 아래에 저장되는 모듈의 클래스 파일입니다. 클래스 이름은 파일 이름 +입니다. .php 명명 형식, 컨트롤러 클래스는 기본적으로 시스템의 함수 라이브러리를 상속하며 직접 사용할 수 있습니다. 컨트롤러 클래스의 클래스 이름과 컨트롤러 파일 이름은 동일해야 합니다.

새 컨트롤러 추가

이제 phpcms/modules 아래에 새 테스트 폴더를 만들고, 테스트 폴더에 mytest.php라는 새 파일을 만들고, 파일에 다음 코드를 추가합니다.

defined('IN_PHPCMS') or exit('No permission resources.');class mytest {    function __construct() {
    }    public function init() {
        $myvar = '这是默认加载!';        echo $myvar;
    }    public function mylist() {
        $myvar = '这是自定义list!';        echo $myvar;
    }
}

그런 다음 브라우저에 다음 액세스 방법을 입력할 수 있습니다

http://domain name/index.php?m=test&c=mytesthttp://域名/index.php?m=test&c=mytest

默认加载init()方法

http://域名/index.php?m=test&c=mytest&a=mylist

init() 메서드는 기본적으로 로드됩니다

http: //Domain name/index.php?m=test&c=mytest&a=mylist

mylist 메소드가 로드되었습니다

템플릿 소개

프런트엔드 템플릿

위치 웹 사이트 프런트 엔드 템플릿은 phpcms/templates에 있습니다. /default/ 모듈

아래에 컨트롤러 mytest.php 파일의 init() 메서드에 로딩 템플릿 메서드를 추가합니다.

include template('test', 'mytest', 'default');
새 테스트 폴더와 mytest.html을 만듭니다. phpcms/templates/default/ 디렉토리 아래에 있는 파일입니다.

백엔드 템플릿

배경 템플릿 파일은 phpcms/modules/module name/templates 디렉터리에 있습니다.

권한이 있는 컨트롤러

백엔드 컨트롤러

phpcms/modules/admin/ 아래에 새 mytest_admin을 만듭니다. 파일, 파일 코드는 다음과 같습니다:

defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin{
    function __construct()
    {
    }
    public function index(){
        echo "后台控制器";
    }
 
}
액세스 주소: http://domain name/index.php?m=admin&c=mytest_admin&a=index

phpcms 커스텀 모델

클래스에 모델을 소개합니다

pc_base::load_sys_class('model', '', 0);

그런 다음 클래스 확장은 모델을 상속합니다

__construct 메서드에 다음 코드를 추가합니다.

$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';
parent::__construct();

query 문

function init(){
    $sql = 'select * from v9_news ';
    $data = $this->get_array_by_sql($sql);
    var_dump($data);
}
public function sql_query($sql) {
    if (!empty($this->db_tablepre)) $sql = str_replace('phpcms_', $this->db_tablepre, $sql);
    return parent::query($sql);
}
 
public function fetch_next() {
    return $this->db->fetch_next();
}
//通过SQL语句查询一条结果
public function get_one_by_sql($sql){
    $this->sql_query($sql);
    $res = $this->fetch_next();
    $this->free_result();
    return $res;
}
//通过sql语句查询数组
public function get_array_by_sql($sql){
    $this->sql_query($sql);
    $res = $this->fetch_array();
    $this->free_result();
    return $res;
}
 
//释放数据库结果资源,调用底层完成
public function free_result() {
    $this->db->free_result();
}

PHP 중국어 웹사이트, 다수의 무료

PHPCMS 튜토리얼🎜, 온라인 학습을 환영합니다! 🎜🎜

위 내용은 phpcms에 컨트롤러가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.