이 수업에서 교사는 TEMPLATE를 생성하도록 안내합니다. 교사가 가르친 아이디어에 따라 다음과 같이 코드를 작성하겠습니다. 1. 예를 들어 변수 $name=''; . 그런 다음 템플릿을 읽었습니다. 3. 그런 다음 이 템플릿에 나만의 "표시 형식"(하드 스타일) 중 일부를 설정했습니다. 4. 템플릿을 로드한 후 위의 변수로 직접 바꿀 수 있습니다.
1. 먼저 템플릿 폴더에 새로운 index.tpl을 생성합니다. 내용은 다음과 같이 작성됩니다.
<?php echo '<?php' ?> /** * project name: <?php echo $prj_name ?> //大家想想, 它能运行吗? *User: <?php echo $prj_author ?> //能运行吗? *Date: <?php echo date('Y-m-d')?> //能吗? */ echo "hello shenyi"; ?>
자, 준비는 완료되었습니다. god_frame 클래스에서 참조합니다.
<?php namespace core\frame; class god_frame { public $project_folder = ''; //项目文件夹 public $project_main = ''; //入口文件 function __construct($prjName){ //构造函数 $this->project_folder = getcwd()."/".$prjName; $this->project_main = $this -> project_folder."/index.php"; } function run(){ //判断并生成新的文件夹,没有就创建 !file_exists($this->project_folder) && mkdir($this->project_folder); //获取外部成员变量并把该函数获取的数组返回成变量列表 extract(get_object_vars($this)); 开启PHP的内部缓冲区(内存) ob_start(); //引入模板路径 include (dirname(__FILE__).'/template/index.tpl'); //获取缓冲区的内容,并赋给$cnt $cnt =ob_get_contents(); //清理缓冲区内容 ob_end_clean(); //在该文件夹下生成一个index.php文件,没有就创建并覆盖 file_put_contents($this->project_main,"$cnt"); } } ?>
godinit의 시작 부분도 개선해야 합니다. )
static function start(){ $get_config = loadConfig(); $gf = new god_frame($get_config->prj_name); $gf -> prj_name = $get_config->prj_name; $gf -> prj_author = $get_config->prj_author; $gf -> run(); }
이 메소드를 명령줄에서 실행
그 다음 전체 문서의 디렉터리 구조와 index.php의 내용을 살펴봅니다.
추가 지식 포인트:
__FILE__:
dirname():
ob_start ( ): PHP의 내부 버퍼(메모리)를 켭니다. 다음에 표시할 내용을 먼저 버퍼에 넣고 서둘러 표시합니다.
ob_get_contents(); 버퍼의 내용을 가져오는 함수
ob_end_clean(); , 콘텐츠는 출력되지 않습니다.
ob_end_flush(); 버퍼를 닫고 콘텐츠를 출력합니다.
get_object_vars() 클래스(인스턴스화된 클래스)에서 속성 변수 값을 가져오고 반환할 수 있습니다. 정렬.
추출();