分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

php命令行按模板生成应用的入口文件

发布时间:2023-09-06 01:51责任编辑:顾先生关键词:暂无标签

接着这篇文章php命令行生成项目结构 继续改造: 

ghostwu@dev:~/php/php1/12$ tree.├── app│   └── index.php├── core│   ├── frame│   │   ├── ghost_frame.php│   │   └── template│   │   ????└── index.tpl│   └── ghostinit.php├── function.php├── ghost└── go.json

index.tpl:

<?php echo ‘<?php‘ . PHP_EOL; ?>/** * project name: <?php echo $proj . PHP_EOL; ?> * author: <?php echo $author . PHP_EOL; ?> * date: <?php echo date(‘Y-m-d‘) . PHP_EOL; ?> ?* ?*/ echo "hello ghostwu";

生成的入口文件就是按照这个 模板解释的, 模板中的变量从go.json读取

ghostinit.php:

 ???namespace core; ???use core\frame\ghost_frame; ???class ghostinit{ ???????static $v = ‘ghost version is 1.1‘; ???????static function init(){ ???????????echo "pls input project name?" . PHP_EOL; ???????????$projName = fgets( STDIN ); ???????????echo "pls input author?" . PHP_EOL; ???????????$author = fgets( STDIN ); ???????????????????????echo self::buildConfig( [ ‘proj‘ => $projName, ‘author‘ => $author ] ); ???????} ???????static function buildConfig( $info ){ ???????????return file_put_contents( getcwd() . ‘/go.json‘, json_encode( $info ) ) . ‘ bytes has written,‘ . ‘config file has created‘ . PHP_EOL; ???????} ???????static function show(){ ???????????$conf = self::loadConfig(); ???????????foreach( $conf as $k => $v ){ ???????????????echo $k . ‘:‘ . $v; ???????????} ???????} ???????static function loadConfig(){ ???????????return json_decode( file_get_contents( getcwd() . ‘/go.json‘ ) ); ???????} ???????????????static function start(){ ???????????$conf = self::loadConfig(); ???????????//$gf = new core\frame\ghost_frame( trim( $conf->proj ) ); ???????????//用use引入命名空间 就不需要每次都加上命名空间去实例化类 ???????????$gf = new ghost_frame( trim( $conf->proj ) ); ???????????$gf->proj = trim( $conf->proj ); ???????????$gf->author = trim( $conf->author ); ???????????$gf->run(); ???????} ???????static function __callstatic( $m, $args ){ ???????????echo ‘error function‘; ???????} ???}

ghost_frame.php

namespace core\frame; ???class ghost_frame{ ???????????????public $proj = ‘‘; ???????public $entrace_file = ‘‘; ???????public function __construct( $proj ) { ???????????$this->proj = $proj; ???????} ???????public function run(){ ???????????$dir = getcwd() . ‘/‘ . $this->proj; ???????????!file_exists( $dir ) && mkdir( $dir ); ???????????????????????extract( get_object_vars( $this ) ); ???????????ob_start(); ???????????include( dirname( __FILE__ ) . ‘/template/index.tpl‘ ); ???????????$content = ob_get_contents(); ???????????ob_end_clean(); ???????????file_put_contents( $dir . ‘/index.php‘, $content ); ???????} ???}

应用:

ghostwu@dev:~/php/php1/12$ tree.├── core│   ├── frame│   │   ├── ghost_frame.php│   │   └── template│   │   ????└── index.tpl│   └── ghostinit.php├── function.php└── ghost3 directories, 5 filesghostwu@dev:~/php/php1/12$ ./ghost initpls input project name?Applicationpls input author?ghostwu45 bytes has written,config file has createdghostwu@dev:~/php/php1/12$ tree.├── core│   ├── frame│   │   ├── ghost_frame.php│   │   └── template│   │   ????└── index.tpl│   └── ghostinit.php├── function.php├── ghost└── go.json3 directories, 6 filesghostwu@dev:~/php/php1/12$ ./ghost startghostwu@dev:~/php/php1/12$ tree.├── Application│   └── index.php├── core│   ├── frame│   │   ├── ghost_frame.php│   │   └── template│   │   ????└── index.tpl│   └── ghostinit.php├── function.php├── ghost└── go.json4 directories, 7 filesghostwu@dev:~/php/php1/12$ cat Application/index.php <?php/** * project name: Application * author: ghostwu * date: 2018-04-29 ?* ?*/ echo "hello ghostwu";ghostwu@dev:~/php/php1/12$ 

php命令行按模板生成应用的入口文件

原文地址:https://www.cnblogs.com/ghostwu/p/8970396.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved