php原生文件转laravel路由

5 篇文章 0 订阅

此代码是把大商创的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);

    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值