php原生文件转laravel路由

时光毁灭记忆、已成空白 提交于 2019-12-08 16:29:34

此代码是把大商创的2.7.3版本admin里面的php换成laravel的routes

public function saveRoute()
    {
        $dir = 'D:/WWW/dsc2.7.3/admin/';
        $handler = opendir('D:/WWW/dsc2.7.3/admin/');
        $arr = [];
        while( ($filename = readdir($handler)) !== false )
        {
            //略过linux目录的名字为'.'和‘..'的文件
            if($filename != "." && $filename != "..")
            {
                $arr[] = $filename;
                //输出文件名
//                echo $filename.'<br>';
            }
        }

        closedir($handler);
        $newDir = 'D:/WWW/new/route.php';
        $myfile = fopen($newDir, "w+");
        fwrite($myfile, "<?php\r");
        foreach ($arr as $key =>$value){
            if(!str_is('*.php',$value)){
                continue;
            }
            $name = $this->camelize($value);
            $name = str_replace('.','Controller.',ucfirst($name));
            fwrite($myfile, "Route::group(['prefix' => '".str_before($value,'.php')."'], function () {");

            $file = file_get_contents($dir.$value);
            $pattern ='/\[\'act\'\]\s+==\s+\'(.*?)\'|function\s+(.*?)\n{/';
            preg_match_all($pattern,$file,$match);
            $sameFun = [];
            foreach ($match as $key =>$v){
                if($key == 0){
                    continue;
                }

                foreach ($v as $i){
                    if(!empty($i)){
                        if(in_array($i,$sameFun)){
//                                fwrite($myfile, "\r\tpublic function new_".$i."\t{\r\t}\r");
                            fwrite($myfile, "\r\tRoute::get('/new_".str_before($i,'(')."', '".str_before($name,'.php')."@new_".str_before($i,'(')."');");
                        }else{
                            fwrite($myfile, "\r\tRoute::get('/".str_before($i,'(')."', '".str_before($name,'.php')."@".str_before($i,'(')."');");
                        }
                        $sameFun[] = str_before($i,'(');
                    }
                }
            }
            fwrite($myfile, "\r});\r");
        }
        fclose($myfile);

    }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!