沈逸老师PHP魔鬼特训笔记(10)

Posted 前进的卒子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了沈逸老师PHP魔鬼特训笔记(10)相关的知识,希望对你有一定的参考价值。

  为了防止代码让我们混淆不清,大家看视频中的分离方法 1、新建了一个文件夹叫code (这代表是代码) 2、再新建一个文件夹叫page (这代表是页面)

  代码该怎么写呢? 这里要记住口诀 1、index.php 永远是 “大内总管”。永远由它来加载code和page 2、code里面的文件永远只能写PHP代码 3、page里面的文件,原则上以写html为主,但是可以嵌入部分PHP代码. 具体请看视频操作.

  为了某些原因,我们规定,凡是写变量的文件必须以var.php为文件后缀 譬如code1.var.php。然后我们往往需要写一个“代码最终编译器”(思路扩展) 我们再次回到我们的god程序,设计需求如下 1、接收参数”compile” 2、该参数实现把code文件夹里面xxx.var.php形式的文件读取出来,进行处理。

  1、我们在god_frame中写一个compile方法 

    function compile(){ //将code里的重复变量读取出来处理掉
       $_files = scandir($this -> project_folder.\'/code\');
       foreach($_files as $_file){
           if(preg_match("/\\w+\\.var\\.php$/i",$_file)){
               require ($this->project_folder.\'/code/\'.$_file);
               unset($_file);
           }
       }
        unset($_files);//销毁这个无效的变量
        //var_export(get_defined_vars());
        $result = \'<?php \'.PHP_EOL
            .\'ectract(\'.var_export(get_defined_vars(),1).\');\';
        file_put_contents($this->project_folder."/vars.php",$result);//
    }

  在godinit中调用这个方法:

    static function compile(){
        $get_config = loadConfig();
        $gf = new god_frame($get_config->prj_name);
        $gf -> compile();
    }

  于是,我们可以看到在我们这自定义文件夹中,又生成了一个vars.php文件 

 


 

知识点:

 

scandir函数,列出指定路径中的文件和目录 (返回是一个数组 )

var_export( );

正则匹配函数(简单使用) preg_match(正则表达式,要匹配的内容) ; 如果匹配到返回true

get_defined_vars();返回由所有已定义变量所组成的数组。

unset:销毁指定变量;

 

版权声明:笔记整理者亡命小卒热爱自由,崇尚分享。但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的《 PHP魔鬼训练课第一阶段》。本学习笔记小卒于博客园首发, 如需转载请尊重老师劳动,保留沈逸老师署名以及课程来源地址。

上一课:沈逸老师PHP魔鬼特训笔记(9)--进化

以上是关于沈逸老师PHP魔鬼特训笔记(10)的主要内容,如果未能解决你的问题,请参考以下文章

沈逸老师PHP魔鬼特训笔记

沈逸老师PHP魔鬼特训笔记--进化

沈逸老师PHP魔鬼特训笔记--巫术与骨架

沈逸老师PHP魔鬼特训笔记--我叫什么名字

沈逸老师ubuntu速学笔记-- ubuntu16.04下 apache2.4和php7结合编译安装,并安裝PDOmysql扩展

沈逸老师ubuntu速学笔记--安装flashplayer,配置中文输入法以及常用命令