thinkphp는 템플릿 파일 보기를 분리합니다
thinkphp의 기본 뷰는 /Application
의 각 모듈 아래에 있습니다.
CSS 및 js와 같은 리소스 파일은 /Public 디렉터리에 있습니다.
대충 이런 느낌이에요;
thinkphp├─Application 项目逻辑目录<br>
│ ├─Common 公共模块<br>
│ │ ├─...<br>
│ ├─Home Home模块<br>
│ │ ├─Controller Home控制器目录<br>
│ │ ├─...<br>
│ │ ├─View Home模块下的视图目录<br>
│ │ │ ├─Index<br>
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─...<br>
│ │ │ ├─Tag<br>
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─add.html<br>
│ │ │ │ ├─edit.html<br>
│ │ │ │ ├─...<br>
│ ├─Admin Admin模块<br>
│ │ ├─Controller Admin控制器目录<br>
│ │ ├─...<br>
│ │ ├─View Admin模块下的视图目录<br>
│ │ │ ├─Index<br>
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─...<br>
│ │ │ ├─Article<br>
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─add.html<br>
│ │ │ │ ├─edit.html<br>
│ │ │ │ ├─...<br>
│ ├─...<br>
├─Public 资源文件目录<br>
│ ├─Home 前台Home视图目录 <br>
│ │ ├─Public 前台Home的公共目录<br>
│ │ │ ├─js home下调用的js文件目录<br>
│ │ │ ├─css home下调用的css文件目录<br>
│ │ │ ├─images home下调用的图片文件目录 <br>
│ ├─Admin 前台Home视图目录 <br>
│ │ ├─Public 前台Home的公共目录<br>
│ │ │ ├─js home下调用的js文件目录<br>
│ │ │ ├─css home下调用的css文件目录<br>
│ │ │ ├─images home下调用的图片文件目录 <br>
│ ├─...<br>
├─ThinkPHP 框架系统目录
├─응용프로그램 프로젝트 논리 디렉터리
│ ├─공통 공개 모듈
│ │ ├─...
│ ├─홈 홈 모듈
│ │ ├─컨트롤러 홈컨트롤러 디렉터리
│ │ ├─...
│ │ ├─View Home 모듈 아래 디렉터리 보기
│ │ │ ├─색인
│ │ │ │ ├─index.html
│ │ │ │ ├─...
│ │ │ ├─태그
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─add.html<br>
│ │ │ │ ├─edit.html<br>
│ │ │ │ ├─...<br>
│ ├─관리 관리 모듈<br>
│ │ ├─컨트롤러 관리 컨트롤러 디렉터리<br>
│ │ ├─...<br>
│ │ ├─보기 관리 모듈 아래의 보기 디렉터리 <br>
│ │ │ ├─색인<br>
│ │ │ │ ├─index.html<br>
│ │ │ │ ├─...<br>
│ │ │ ├─기사
│ │ │ │ ├─index.html
│ │ │ │ ├─add.html
│ │ │ │ ├─edit.html
│ │ │ │ ├─...
│ ├─...
├─공용 자원 파일 디렉토리
│ ├─Home Front 홈 디렉토리 보기
│ │ ├─공개 프런트 공개 디렉토리 홈
│ │ │ ├─js 홈에서 호출되는 js 파일 디렉터리
│ │ │ ├─css 홈 아래에 호출되는 css 파일 디렉터리
│ │ │ ├─이미지 홈 아래에 호출되는 사진 파일 디렉터리
│ ├─관리 프론트 데스크 홈 디렉토리 보기
│ │ ├─공개 프론트 데스크 공개 디렉토리 홈
│ │ │ ├─js home 아래에 호출되는 js 파일 디렉터리
│ │ │ ├─css 홈 아래에 호출되는 css 파일 디렉터리
│ │ │ ├─이미지 홈 아래에 호출되는 사진 파일 디렉터리
│ ├─...
├─ThinkPHP 프레임워크 시스템 디렉터리
그러나 실제 개발 중입니다.
View 디렉토리를 다양한 모듈에 분산시키는 데에는 많은 단점이 있습니다.
우선, 여러 테마 세트를 개발하는 것은 꽤 번거롭고 혼란스럽습니다.
게다가 gulp와 같은 프론트엔드 도구를 사용하는 것도 매우 불편합니다
우리가 원하는 것은 원본 코드로 가득 찬 디렉토리입니다.
또 다른 디렉토리는 압축된 html, js, css 등으로 가득 차 있습니다.
버닝구스; 이런 디렉토리 구조를 마주하면 작은 소망이 됩니다.
내 표정은 검은색 물음표.jpg
따라서 모든 템플릿 파일, js, css 등을 분리하여 루트 디렉터리의 /tpl에 배치했습니다.
게을러서 이전에 작성한 디렉토리 구조를 가져왔습니다. thinkphp-bjyadmin
├─응용프로그램 프로젝트 논리 디렉터리
│ ├─공통 공개 모듈
│ │ ├─공용 공용 함수 디렉터리
│ │ │ ├─funcioin.php 공개 함수 PHP 파일
│ │ ├─Conf 공개 구성 파일 디렉터리
│ │ │ ├─config.php tp 구성은 프레임워크의 기본 구성 항목을 재정의하는 데 사용됩니다.
│ │ │ ├─db.php 데이터베이스 구성 사용자 이름 비밀번호 등
│ │ │ ├─webconfig.php 프로젝트 구성 웹사이트 이름 등
│ │ ├─컨트롤러 퍼블릭 컨트롤러 디렉터리
│ │ │ ├─BaseController.class.php는 가장 기본적인 컨트롤러를 적용합니다│ │ │ ├─HomeBaseController.class.php 홈 베이스 컨트롤러는 BaseController를 상속합니다
│ │ │ ├─AdminBaseController.class.php 관리 기본 컨트롤러가 BaseController를 상속합니다
│ │ │ ├─UserBaseController.class.php 사용자 기본 컨트롤러가 BaseController를 상속합니다
│ │ │ ├─...
│ │ ├─모델 공개 모델 디렉토리
│ │ │ ├─BaseModel.class.php 가장 기본적인 Model 적용
│ │ │ ├─ArticleModel.class.php 기사 모델이 BaseModel을 상속합니다
│ │ │ ├─UserModel.class.php 사용자 모델은 BaseModel을 상속합니다
│ │ │ ├─...
│ │ ├─태그 공개 태그 디렉토리
│ │ │ ├─My.class.php 사용자 정의 태그 라이브러리
│ │ │ ├─...
│ ├─홈 홈 모듈
│ │ ├─Controller 홈 컨트롤러 디렉터리 HomeBaseController 상속
│ │ │ ├─ArticleController.class.php 기사 컨트롤러 디렉토리
│ │ │ ├─IndexController.class.php 홈 컨트롤러
│ │ │ ├─...
│ ├─관리 관리 모듈
│ │ ├─컨트롤러 관리 컨트롤러 디렉터리는 AdminBaseController를 상속합니다
│ │ │ ├─IndexController.class.php 백엔드 관리 홈 페이지 컨트롤러
│ │ │ ├─...
│ ├─사용자 사용자 모듈
│ │ ├─Controller 사용자 컨트롤러 디렉터리는 UserBaseController를 상속합니다
│ │ │ ├─IndexController.class.php 사용자 개인센터 홈페이지 컨트롤러
│ │ │ ├─...
├─공용 자원 파일 디렉토리
│ ├─install 설치 부팅 디렉터리
│ ├─statics 정적 리소스 디렉터리
│ │ ├─부트스트랩 부트스트랩 프레임워크
│ │ ├─ueditor ueditor
│ │ ├─js jquery 등 타사 js가 저장되는 디렉토리
│ │ ├─css animate.css 및 기타 타사 CSS 디렉토리
│ │ ├─...
├─tpl 파일 디렉터리 보기
│ ├─공공 공공 디렉토리
│ │ ├─js 공개 js 디렉토리
│ │ │ ├─사이트 전체에서 참조하는 base.js js 파일
│ │ │ ├─...
│ │ ├─css 공용 CSS 디렉토리
│ │ │ ├─base.css 전체 사이트에서 참조하는 CSS 파일
│ │ │ ├─...
│ │ ├─이미지 공개 사진 디렉토리
│ │ ├─public_head.html 전체 사이트에 공통되는 공개 헤더
│ │ ├─public_foot.html 전체 사이트에 공통되는 공개 바닥글
│ │ ├─...
│ ├─Home Front 홈 디렉토리 보기
│ │ ├─공개 프론트 데스크 공개 디렉토리 홈
│ │ │ ├─js home 아래에 호출되는 js 파일 디렉터리
│ │ │ ├─css 홈 아래에 호출되는 css 파일 디렉터리
│ │ │ ├─이미지 홈 아래에 호출되는 사진 파일 디렉터리
│ │ ├─인덱스 홈 파일 디렉터리
│ │ │ ├─index.html 홈페이지
│ │ │ ├─ ...
│ ├─관리자 홈과 동일
│ ├─홈과 동일한 사용자
├─공개 업로드 디렉터리 업로드
│ ├─images 업로드된 사진 디렉토리
│ │ ├─avatar 아바타 디렉토리
│ │ ├─ueditor ueditor 편집자가 업로드한 사진 디렉토리
│ │ │ ...
│ │ ...
├─런타임 캐시 디렉토리
├─ThinkPHP 프레임워크 시스템 디렉토리다른 디렉토리의 설계 원칙은 thinkphp의 디렉토리 구조 설계 경험 요약 http://baijunyao.com/article/60
을 참조하세요.
html을 분리한 후 가장 직관적인 느낌은
입니다.
구조적으로 앞부분과 뒷부분은 더 독립적입니다.
그리고 우리는 아무 것도 동의하지 않습니다. 디렉토리를 변경하려면 디렉토리를 아주 자유롭게 변경하세요.
이러한 구조를 구현하는 것은 매우 간단합니다.
루트 디렉터리의 index.php 항목 파일에 TMPL_PATH를 정의하기만 하면 됩니다.
원래 코드는 이렇습니다;
<?php<br />
// +----------------------------------------------------------------------<br />
// | ThinkPHP [ WE CAN DO IT JUST THINK ]<br />
// +----------------------------------------------------------------------<br />
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.<br />
// +----------------------------------------------------------------------<br />
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )<br />
// +----------------------------------------------------------------------<br />
// | Author: liu21st <liu21st@gmail.com><br>
// +----------------------------------------------------------------------<br>
<br>
// 应用入口文件<br>
<br>
// 检测PHP环境<br>
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');<br>
<br>
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false<br>
define('APP_DEBUG',True);<br>
<br>
// 定义应用目录<br>
define('APP_PATH','./Application/');<br>
<br>
// 引入ThinkPHP入口文件<br>
require './ThinkPHP/ThinkPHP.php';<br>
<br>
// 亲^_^ 后面不需要任何代码了 就是如此简单
// +---------------------------------- --- ----------<code class="prettyprint linenums lang-php"><?php<br />
// +----------------------------------------------------------------------<br />
// | ThinkPHP [ WE CAN DO IT JUST THINK ]<br />
// +----------------------------------------------------------------------<br />
// | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.<br />
// +----------------------------------------------------------------------<br />
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )<br />
// +----------------------------------------------------------------------<br />
// | Author: liu21st <liu21st@gmail.com><br>
// +----------------------------------------------------------------------<br>
<br>
// 应用入口文件<br>
<br>
// 检测PHP环境<br>
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');<br>
<br>
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false<br>
define('APP_DEBUG',True);<br>
<br>
// 定义应用目录<br>
define('APP_PATH','./Application/');<br>
<br>
// 定义缓存目录<br>
define('RUNTIME_PATH','./Runtime/');<br>
<br>
// 定义模板文件默认目录<br>
define("TMPL_PATH","./tpl/");<br>
<br>
// 引入ThinkPHP入口文件<br>
require './ThinkPHP/ThinkPHP.php';<br>
<br>
// 亲^_^ 后面不需要任何代码了 就是如此简单
// | ThinkPHP [ 생각만 하면 할 수 있어요 ]
// +---------------------------------- --- ----------
// | 저작권 (c) 2006-2014 http://thinkphp.cn 모든 권리 보유.
// +---------------------------------- --- ----------
// | 라이선스 있음( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------- --- ----------
// | 작성자: liu21st
// +---------------------------------- --- ----------
// 애플리케이션 엔트리 파일
//PHP 환경 감지
if(version_compare(PHP_VERSION,'5.3.0','<')) die('PHP > 5.3.0 필요 !');
<br>
// 디버깅 모드를 켜는 것은 개발 단계에서 켜고 배포 단계에서 코멘트를 하거나 false로 설정하는 것이 좋습니다
정의('APP_DEBUG',True);
// 애플리케이션 디렉토리 정의
정의('APP_PATH','./Application/');
//ThinkPHP 엔트리 파일 소개
'./ThinkPHP/ThinkPHP.php'가 필요합니다.
// 친애하는 ^_^ 뒤에 코드가 필요하지 않습니다. 너무 간단합니다수정된 코드는 다음과 같습니다.<?php
// +---------------------------------- --- ----------
// | ThinkPHP [ 생각만 하면 할 수 있어요 ]
// +---------------------------------- --- ----------
// | 저작권 (c) 2006-2014 http://thinkphp.cn 모든 권리 보유.
// +---------------------------------- --- ----------
// | 라이센스 부여됨( http://www.apache.org/licenses/LICENSE-2.0 )
// +---------------------------------- --- ----------
// | 작성자: liu21st <liu21st@gmail.com>
// +---------------------------------- --- ----------
// 애플리케이션 엔트리 파일
//PHP 환경 감지
if(version_compare(PHP_VERSION,'5.3.0','<')) die('PHP > 5.3.0 필요 !');
// 디버깅 모드를 켜는 것은 개발 단계에서 켜고 배포 단계에서 코멘트를 하거나 false로 설정하는 것이 좋습니다
정의('APP_DEBUG',True);
// 애플리케이션 디렉토리 정의
정의('APP_PATH','./Application/');
// 캐시 디렉토리 정의
정의('RUNTIME_PATH','./런타임/');
// 템플릿 파일의 기본 디렉터리를 정의합니다.
정의("TMPL_PATH","./tpl/");
//ThinkPHP 엔트리 파일 소개
'./ThinkPHP/ThinkPHP.php'가 필요합니다.
// 친애하는 ^_^ 뒤에 코드가 필요하지 않습니다. 이렇게 간단합니다. 주의 깊은 어린이라면 여기에 RUNTIME_PATH가 정의되어 있는 이유를 발견했을 것입니다.
하나 사면 하나 무료
그런데 캐시 파일 Runtime 폴더도 /Application에서 루트 디렉터리로 분리되어 있습니다.
프로젝트가 온라인일 때 디버깅 모드가 꺼져 있으면 여기에서 캐시 파일을 삭제하는 것이 편리합니다.
글쎄요, 제가 처녀자리라는 걸 인정합니다
저는 /Application이 단지 PHP 비즈니스 코드라는 점을 좋아합니다.
그냥 순수하고 깨끗한 느낌이 좋아요
모든 종류의 혼란을 거부하세요.
물론이죠.
하지만 우리는 더 잘할 수 있습니다
또한 /Application/Common/Conf/config.php 파일에서 일부 디렉터리를 정의해야 합니다. <?php<🎜>배열 반환(<br />
//'配置项'=>'配置值'<br>
'TMPL_PARSE_STRING' => 배열( // 정확히 사용하는 경로<br>
'__PUBLIC__' => __ROOT__.'/공개',<br>
'__HOME_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'홈/공용/css',<br>
'__HOME_JS__' => __ROOT__.trim(TMPL_PATH,'.').'홈/공용/js',<br>
'__HOME_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'홈/공용/이미지',<br>
'__ADMIN_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'관리자/공용/css',<br>
'__ADMIN_JS__' => __ROOT__.trim(TMPL_PATH,'.').'관리자/공용/js',<br>
'__ADMIN_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'관리/공용/이미지',<br>
'__ADMIN_ACEADMIN__' => __ROOT__.trim(TMPL_PATH,'.').'관리자/공용/aceadmin',<br>
'__PUBLIC_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'공개/css',<br>
'__PUBLIC_JS__' => __ROOT__.trim(TMPL_PATH,'.').'공개/js',<br>
'__PUBLIC_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'공개/이미지',<br>
'__USER_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'사용자/공개/css',<br>
'__USER_JS__' => __ROOT__.trim(TMPL_PATH,'.').'사용자/공용/js',<br>
'__USER_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'사용자/공개/이미지',<br>
'__APP_CSS__' => __ROOT__.trim(TMPL_PATH,'.').'앱/공용/css',<br>
'__APP_JS__' => __ROOT__.trim(TMPL_PATH,'.').'App/Public/js',<br>
'__APP_IMAGES__' => __ROOT__.trim(TMPL_PATH,'.').'앱/공용/이미지'<br>
),<br>
);<br>
然后以后재html中就使用这些路径了;<br>
<!DOCTYPE html><br>
<html><br>
<br>
<meta charset="UTF-8"><br>
<title>白俊遥博客</title>
<br>
<css file="__USER_CSS__/index.css" /><br>
</머리><br>
<br>
<br>
<js file="__USER_JS__/index.js" /><br>
</본문><br>
</html>
白俊遥博客 http://baijunyao.com/article/90