목차
PHPCMS二次开发教程(转),phpcms二次开发教程
백엔드 개발 PHP 튜토리얼 PHPCMS二次开发教程(转),phpcms二次开发教程_PHP教程

PHPCMS二次开发教程(转),phpcms二次开发教程_PHP教程

Jul 12, 2016 am 08:49 AM
phpcms

PHPCMS二次开发教程(转),phpcms二次开发教程

转自:http://www.cnblogs.com/semcoding/p/3347600.html

PHPCMS V9 结构设计

根目录
|–api  结构文件目录
|–caches 缓存文件目录
   |– configs 系统配置文件目录
   |– caches_* 系统缓存目录
|–phpcms  phpcms框架主目录
   |– languages 框架语言包目录
   |– libs 框架主类库、主函数库目录
   |– model 框架数据库模型目录
   |– modules 框架模块目录
   |– templates 框架系统模板目录
|–phpsso_server  phpsso主目录
|–statics  系统附件包
   | – css 系统css包
   | – images 系统图片包
   | – js 系统js包
|–index.php  程序主入口

PHPCMS V9 核心文件说明

模块与控制器

模块:

phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块。即url访问中的m。

访问content模块示例:http://www.yourname.com/index.php?m=content

控制器:

phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。类名成就是文件名+.php,例如一个名为abc的控制器,那么他的命名为abc.php即可。控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。如果您创建了一个abc.php在test模块下,那么我们在浏览器里面输入URL:http://www.yourname.com/index.php?m=test&c=abc

二次开发技巧

如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过“MY_*.php”的形式进行二次开发。

例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php"

<?php
	class MY_index extends index{
		function __construct() {
			parent::__construct();
			}
			……your code
	}
로그인 후 복사

这样当您通过url访问index控制器的时候,系统会默认指向MY_index.php 并且原文件的方法将被继承,可以直接使用。

系统配置文件

文件路径:根目录/caches/configs

  • database.php 数据库配置文件
  • system.php 系统配置文件
  • route.php 路由配置文件

调用方法

如调用系统配置中的web_path:

pc_base::load_config('system', web_path ');

CMS入口文件:

PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。

入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行的。

文件路径:根目录/index.php

<?php
	define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
	include PHPCMS_PATH.'/phpcms/base.php';
	pc_base::creat_app();
?>
로그인 후 복사

这段代码首先加载了 phpcms 框架的引导文件 base.php,然后它根据指定的配置文件建立了一个 Web 应用实例并运行。

PHPCMS框架入口文件:

文件路径:根目录/phpcms/base.php 代码片段如下:

<?php
	define('IN_PHPCMS', true);
	define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
	if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH', PC_PATH.'..'.DIRECTORY_SEPARATOR);
	define('CACHE_PATH', PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);
……
?>
로그인 후 복사

该文件为框架入口文件,包含实例化系统/模块类方法,调用系统/模块方法,系统常用常量等。如:

	pc_base::load_model(‘*_model’) 加载数据库模型 pc_base::load_sys_class(‘classname’) 实例化系统类
	pc_base::load_app_class(‘classname’,’admin’) 实例化模块类
	pc_base::load_sys_func (‘funcfile’) 调用系统函数库
로그인 후 복사

全局函数文件:

文件路径:根目录/phpcms/libs/functions/global.func.php 代码片段如下:

<?php
	function new_addslashes($string){
	if(!is_array($string)) return addslashes($string);
	foreach($string as $key => $val) $string[$key] = new_addslashes($val);
	return $string;
	}
	……
?>
로그인 후 복사

该文件中的函数,为全系统基础函数,可以在系统中直接调用。

二次开发技巧:

如果需要增加自己的全局函数,可根据需要增加到/phpcms/libs/functions/global.func.php/extention.func.php中,不会影响升级

数据模型基类:

文件路径:根目录/phpcms/libs/classes/model.class.php 代码片段如下:

<?php
	pc_base::load_sys_class('db_factory', '', 0);
	class model {  //数据库配置
	protected $db_config = ''; //数据库连接
	protected $db = ''; //调用数据库的配置项
	protected $db_setting = 'default'; //数据表名
	protected $table_name = ''; //表前缀
	public $db_tablepre = '';
	……
?>
로그인 후 복사

加载数据模型后,可以的数据库该类中方法进行数据库操作。

表单调用类:

文件路径:根目录/phpcms/libs/classes/form.class.php。 代码片段如下:

<?php
	class form {
	//编辑器调用
	public static function editor($textareaid = 'content', $toolbar = 'basic', $module = '', $catid = '', $color = '', $allowupload = 0, $allowbrowser = 1,$alowuploadexts = '',$height = 200,$disabled_page = 0) {
	} 
	//图片上传调用
	public static function images($name, $id = '', $value = '', $moudle='', $catid='', $size = 50, $class = '', $ext = '', $alowexts = '',$thumb_setting = array(),$watermark_setting = 0 ) {
	}
	……
?>
로그인 후 복사

通过实例化该类可以,调用在程序中调用编辑器、表单上传、日期选择、栏目结构等表单。 实例化方法:pc_base::load_sys_class('form', '', 0);

模板解析缓存类:

文件路径:根目录/phpcms/libs/classes/template_cache.class.php 。 代码片段如下:

<?php
	final class template_cache {
	public function template_compile($module, $template, $style = ‘default’)     {
	$tplfile = $_tpl = PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html'; 
	……
	?>
로그인 후 복사

该类作用为解析模板,解析模板及更新模板缓存

PHPCMS V9 二次开发

PHPCMS URL访问:

PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。

参数名称 描述 位置 备注

  • M 模型/模块名称 phpcms/modules中模块目录名称 必须
  • C 控制器名称 phpcms/modules/模块/*.php 文件名称 必须
  • A 事件名称 phpcms/modules/模块/*.php 中方法名称

模块访问方法[示例]:

二次开发命名规范

类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php。

函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php。

类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php。

数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。

二次开发开发流程

创建数据库模型类

数据库模型位于:phpcms/model/目录下。

数据模型文件的命名规则建议为数据表名称+'_model.class.php'

如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'

<?php
  defined('IN_PHPCMS') or exit('No permission resources.');
  pc_base::load_sys_class('model', '', 0);
  class test_model extends model {
    public function __construct() {
    $this->db_config = pc_base::load_config('database');
    $this->db_setting = ‘default'; 
    $this->table_name = 'test';
    parent::__construct();
  }
 }
?>
로그인 후 복사

数据库模型类名称必须与文件名称相同;

	$this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。
	$this->table_name = ‘test’为数据表名称
로그인 후 복사

创建模块

如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

例如要开发一个叫做test的模块,那么首先在phpcms/modules 目录下创建文件夹,并将其命名为test。模块的标准结构通常是这样的。

如果您的模板有单独的前台模板,你需要在phpcms/templates/default下创建一个您的模块目录来放置前台模板,"default"为你的风格包名称,我们默认适用default

访问test模块示例:http://www.yourname.com/index.php?m=test

创建模块控制器类

为test模块增加一个名为myest的控制器 文件路径:根目录/phpcms/modules/test/mytest.php。 代码片段如下:

<?php
  defined('IN_PHPCMS') or exit('No permission resources.');
    class mytest {
      function __construct() {
      }
      public function init() {
        $var = 'hello world!';
        echo $myvar;
      }
      public function mylist() {
        $var = 'hello world!this is a example!';
        echo $myvar;
      }
  }
?>
로그인 후 복사

常用操作列表(1)

1.调用数据库模型

$this->db = pc_base::load_model('test_model');
로그인 후 복사

其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法

2.加载系统类

$http = pc_base::load_sys_class('http'); //实例化http类
pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作3.加载系统函
로그인 후 복사

3.加载系统函数库

pc_base::load_sys_func('mail'); //调用mail函数包
로그인 후 복사

4. 加载模块类

$test = pc_base::load_sys_class(‘classname‘,’test’); //实例化test模块下 classname类
로그인 후 복사

5.加载模块函数库

pc_base::load_sys_func(‘global‘,’test’); //调用test模块的global函数包
로그인 후 복사

常用操作列表(2)

6.加载前台模板

include template('test', 'mytest', 'default');
로그인 후 복사

7.加载后台模板

include $this->admin_tpl('mytest_admin_list');
로그인 후 복사

8.权限控制

后台控制控制器需要加载admin模块下的admin类,并继承该类

<?php
	defined('IN_PHPCMS') or exit('No permission resources.');
	pc_base::load_app_class('admin','admin',0);
	class mytest_admin extends admin { 
	//这个控制器需要登录后台才可以访问 }
	?>
로그인 후 복사

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1137778.htmlTechArticlePHPCMS二次开发教程(转),phpcms二次开发教程 转自:http://www.cnblogs.com/semcoding/p/3347600.html PHPCMS V9 结构设计 根目录 |–api 结构文件目录 |–...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

phpcms에서 세부정보 페이지로 이동하는 방법 phpcms에서 세부정보 페이지로 이동하는 방법 Jul 27, 2023 pm 05:23 PM

phpcms에서 세부정보 페이지로 이동하는 방법: 1. 헤더 기능을 사용하여 점프 링크를 생성합니다. 2. 콘텐츠 목록을 반복합니다. 3. 콘텐츠의 제목과 세부정보 페이지 링크를 가져옵니다.

phpcms는 어떤 프레임워크인가요? phpcms는 어떤 프레임워크인가요? Apr 20, 2024 pm 10:51 PM

PHP CMS는 웹 사이트 콘텐츠 관리를 위한 PHP 기반 오픈 소스 콘텐츠 관리 시스템으로, 사용 편의성, 강력한 기능, 확장성, 높은 보안 및 무료 오픈 소스가 특징입니다. 시간을 절약하고, 웹사이트 품질을 향상시키며, 협업을 강화하고, 개발 비용을 절감할 수 있으며, 뉴스 웹사이트, 블로그, 기업 웹사이트, 전자상거래 웹사이트, 커뮤니티 포럼 등 다양한 웹사이트에서 널리 사용되고 있습니다.

WeChat 로그인 통합 가이드: PHPCMS 실전 전투 WeChat 로그인 통합 가이드: PHPCMS 실전 전투 Mar 29, 2024 am 09:18 AM

제목: WeChat 로그인 통합 가이드: PHPCMS의 활용 오늘날 인터넷 시대에 소셜 로그인은 웹사이트의 필수 기능 중 하나가 되었습니다. 중국에서 가장 인기 있는 소셜 플랫폼 중 하나인 WeChat의 로그인 기능은 점점 더 많은 웹사이트에서도 사용되고 있습니다. 이 기사에서는 WeChat 로그인 기능을 PHPCMS 웹사이트에 통합하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1단계: WeChat Open Platform 계정 등록 먼저 WeChat Open Platform에 개발자 계정을 등록하고 해당 개발 권한을 신청해야 합니다. 로그인 [위챗 오픈 플랫폼]

phpcms는 무료 아닌가요? phpcms는 무료 아닌가요? Mar 01, 2023 am 10:24 AM

phpcms는 완전 무료는 아닙니다. phpcms는 오픈 소스 cms 시스템이지만 오픈 소스는 무료 버전과 상업용 버전의 두 가지 버전이 있습니다. 연구용으로 사용하고, 상업적인 용도라면 일정 비용을 지불해야 합니다.

phpcms은 무슨 뜻인가요? phpcms은 무슨 뜻인가요? Apr 20, 2024 pm 10:39 PM

PHPCMS는 오픈 소스, 모듈성, 유연성, 사용자 친화성 및 커뮤니티 지원을 갖춘 무료 오픈 소스 콘텐츠 관리 시스템(CMS)입니다. 기업 웹사이트, 전자상거래 웹사이트, 블로그, 커뮤니티 포럼 등 다양한 유형의 웹사이트를 만드는 데 사용할 수 있습니다. 기술 요구 사항에는 PHP 5.6 이상, MySQL, MariaDB 또는 PostgreSQL 데이터베이스, Apache 또는 Nginx 웹 서버가 포함됩니다.

phpcms에는 어떤 버전이 있나요? phpcms에는 어떤 버전이 있나요? Jun 14, 2023 pm 01:13 PM

phpcms에는 두 가지 잘 알려진 버전이 있습니다. 1. 사용자 정의 URL 규칙을 지원하는 phpCMS4 웹사이트 관리 배경이 아름답고 사용하기 쉬우며 기능을 자유롭게 확장할 수 있는 많은 프런트엔드 플러그인이 있습니다. . 다국어, 다중 사이트 관리, 페이지 관리를 지원하는 phpCMS2008R1 관리자는 편리하고 유연하며 매우 가볍고 빠르게 실행됩니다.

PHPCMS 사용자 이름 보안 설정 전략 공개 PHPCMS 사용자 이름 보안 설정 전략 공개 Mar 14, 2024 pm 12:06 PM

PHPCMS 사용자 이름 보안 설정 전략 공개 웹 사이트 개발에서 사용자 계정 보안은 항상 개발자가 매우 중요하게 생각하는 측면이었습니다. 사용자 이름의 보안 설정도 중요합니다. 사용자 이름은 사용자의 로그인 자격 증명일 뿐만 아니라 사용자의 개인 정보를 노출하고 보안 위험을 초래할 수도 있기 때문입니다. 이 기사에서는 PHPCMS의 사용자 이름 보안 설정 전략을 공개하고 개발자가 참조할 수 있는 구체적인 코드 예제를 제공합니다. 1. 일반적인 사용자 이름을 방지하기 위해 개발자는 사용자 이름의 과도한 사용을 방지해야 합니다.

phpcms는 어떤 데이터베이스를 사용합니까? phpcms는 어떤 데이터베이스를 사용합니까? Feb 21, 2023 pm 06:57 PM

phpcms는 mysql 데이터베이스를 사용합니다. phpcms는 PHP+MYSQL을 기술 기반으로 사용하여 개발된 PHP 오픈 소스 웹사이트 관리 시스템입니다. PHPCMS V9는 OOP 방식을 채택하여 기본 운영 프레임워크를 구축합니다. 지원되는 PHP 버전은 PHP5 이상, 지원되는 MYSQL 버전은 MySql 4.1 이상입니다.

See all articles