원문 : http://blog.csdn.net/dongnanyanhai/article/details/7561567
최근에 웹사이트를 구축하고 싶어서 dedeCMS, PHPCMS 등 많은 CMS를 사용해 보았으나 기능이 너무 강력합니다. 비록 모두 2차 개발에 대한 자유도가 높지만 이러한 CMS의 2차 개발을 배우는 데 드는 비용은 귀하의 요구 사항을 충족하는 CMS를 공식화하는 것보다 큽니다! 오랜 고민끝에 드디어 어젯밤에 실용 CMS를 포기하기로 결정했습니다!
오늘은 회사에 일이 없어서 LazyPHP3 코드를 보면서 오후 시간을 보낼 수밖에 없었습니다!
Sina @easy가 주도하는 프로젝트인 P MVC 프레임워크는 일반 PHP 호스트에서 사용할 수 있으며 Sina 클라우드 컴퓨팅 플랫폼도 지원합니다. LP만 포함 FrontController + 레이아웃 시스템 + 20가지 공통 기능 물론, 초보자에게 이 프레임워크에서 가장 실망스러운 점은 아마도 예제가 부족하다는 점일 것입니다.
LazyPHP3에 대한 자세한 소개를 확인하세요: http://ftqq.com/lazyphp/
LazyPHP3 다운로드 주소는 GitHub: https://github.com/easychen/LazyPHP 전체 프로젝트를 다운로드하려면 다운로드를 연 후 바로 클릭하세요.
프로젝트 파일 및 기능은 다음과 같습니다.
03│
README.md //LazyPHP说明文件,Markdown格式
06│
app.config.php //项目配置文件
07│
db.config.php //项目数据库配置文件
09├─controller //项目逻辑控制所在文件夹
11│ default.class.php //项目默认控制器
14│
app.function.php //函数库
22├─view //项目页面显示模板(详细文件列表略)
24├─static //项目静态文件,包括css,js代码及图像.
26├─test //JSUnit及PHPUnit测试框架文件(详细文件列表略)
30 │
st.init.php //可能是SAE版框架的入口
34 │
│ core.config.php //框架配置文件
37 │
│ core.class.php //框架逻辑控制类
40 │
│ core.function.php //核心函数库
41 │
│ db.function.php //数据库操作函数
42 │
│ db.sae.function.php //sae数据库操作函数
47 │
└─view //框架默认模板(详细文件列表略)
49 └─simpletest //框架测试文件(详细文件列表略)
여기서 강조하고 싶은 것은 우리가 GitHub 웹사이트에서 다운로드한 파일은 실제로는 GitHub 웹사이트를 기반으로 작성된 웹사이트입니다. LazyPHP3 프레임워크는 이러한 파일을 PHP 서버에 배치하여 직접 실행할 수 있습니다. LP3 프레임워크의 핵심 파일은 이 프로젝트의 "_lp" 폴더에 있습니다.
웹 사이트는 어떻게 실행되나요? 먼저 웹 사이트 입구(루트 디렉터리의 index.php)로 시작합니다. ) 시작:
index.php의 주요 코드는 다음과 같습니다.
2define( 'DS' ,
DIRECTORY_SEPARATOR ); //DIRECTORY_SEPARATOR是PHP里的一个内置命令,用来将解决Win与Linux下的路径区分问题
3define( 'AROOT' ,
dirname( __FILE__ )
. DS );//这里定义的AROOT是网站所在根目录,而不是LP框架所在根目录
5//ini_set('include_path',
dirname( __FILE__ ) . DS .'_lp' ); //
6include_once( '_lp'.DS
.'lp.init.php' );//载入LP框架的_lp文件夹内的lp.init.php文件
7/****
lp framework init finished ***/
상수 AROOT에 웹 사이트 루트 디렉터리 주소를 정의한 후 LazyPHP3 프레임워크 초기화 파일 lp를 로드합니다. init.php를 살펴보겠습니다. lp.init.php 파일은 주로 4가지 작업을 수행합니다.
1. 정의: 프레임워크 루트 디렉터리, 프레임워크 코어 디렉터리 및 PHP 오류 수준 설정:
01if(
!defined('AROOT')
) die('NO
AROOT!');
02if(
!defined('DS')
) define( 'DS' ,
DIRECTORY_SEPARATOR );