Easy老师的EasyStart3框架
项目地址 https://gitlab.com/easychen/easystart3
Clone到本地之后yarn start就可以开始用了
课程中robo ns Editor这步涉及robo这个命令
提问了老师, robo 命令是 https://robo.li/ 提供的,需要自己按教程安装。
wget http://robo.li/robo.phar
chmod +x robo.phar && sudo mv robo.phar /usr/bin/robo
然后项目根目录下放文件 RoboFile.php
<?php
define( "SRC" , __DIR__ . '/src' );
class RoboFile extends \Robo\Tasks
{
/**
* git commit
*/
public function git( $m = 'update' )
{
$this->_exec("git add . && git commit -m '" . $m . "' && git push -u origin master");
}
/**
* 创建一个新的页面 快捷
*/
public function ns( $name = null )
{
return $this->newScreen( $name );
}
/**
* 创建一个新的组件 快捷
*/
public function nc( $name = null )
{
return $this->newComponent( $name );
}
/**
* 创建一个新的页面
*/
public function newScreen( $name = null )
{
return $this->copy_template( $name , 'screen' );
}
/**
* 创建一个新的组件
*/
public function newComponent( $name = null )
{
return $this->copy_template( $name , 'component' );
}
private function copy_template( $name , $type = 'component' )
{
$type = basename( $type );
if( $type != 'component' ) $type = 'screen';
if( $name === null ) $name =$this->ask("请输入组件名称");
if( strlen( $name ) < 1 )
{
$this->say("错误组件的名称");
return false;
}
$file_path = SRC . '/' . $type . '/'. ucfirst( $name ) . '.js';
if( file_exists( $file_path ) )
{
$this->say("组件已存在");
return false;
}
$file_tmp = SRC .'/_template/'. $type .'.js';
if( !file_exists( $file_tmp ) )
{
$this->say("模板文件 $file_tmp 不存在");
return false;
}
$content = file_get_contents( $file_tmp );
$content = str_replace( 'ClassNamePlaceHolder' , ucfirst( $name ) , $content);
file_put_contents( $file_path , $content );
if( $type == 'component' ) $path = '..';
else $path = '.';
$this->_exec(" echo \"import " . $name . " from '" . $path . "/" . $type . "/" . $name . "'; \" | node_modules/copy-paste-cli/cli.js copy");
$this->say( "组件初始化完成" );
}
}