命令行

快速生成模块

表示自动生成test模块,自动生成的模块目录包含了config、controller、model和view目录以及common.php公共文件。

php think build --module test

快速生成控制器类

执行下面的指令可以生成 index模块的 Blog控制器类库文件

php think make:controller index/Blog

快速生成模型类

执行下面的指令可以生成 index 模块的 Blog 模型类库文件

php think make:model index/Blog

快速生成类库映射文件

可以使用下面的指令生成类库映射文件,提高系统自动加载的性能。

php think optimize:autoload

指令执行成功后,会在rumtime目录下面生成classmap.php文件,生成的类库映射文件会扫描系统目录和 应用目录的类库

生成路由缓存

optimize:route如果你的应用定义了比较多的路由规则,可以使用下面的指令生成路由缓存文件,提高系统的路由检测的性能

php think optimize:route

指令执行成功后,会在rumtime目录下面生成route.php 文件,生成的路由缓存文件仅仅支持在应用的路由配置文件中定义的路由(包括方法定义和配置定义)

清除缓存文件

1.如果需要清除应用的缓存文件,可以使用下面的命令:

php think clear

不带任何参数调用clear命令的话,会清除 runtime 目录(包括模板缓存、日志文件及其子目录)下面的所 有的文件,但会保留目录。

2.如果需要清除某个指定目录下面的文件,可以使用:

php think clear --path d:\www\tp5\runtime\log\

生成配置缓存文件

1.可以为应用或者模块生成配置缓存文件

php think optimize:config

默认生成应用的配置缓存文件,调用后会在runtime目录下面生成init.php文件,生成配置缓存文件 后,应用目录下面的config.php common.php以及tags.php不会被加载,被 runtime/init.php 取代。

2.如果需要生成某个模块的配置缓存,可以使用:

php think optimize:config --module index

调用后会在runtime/index目录下面生成init.php文件,生成后,index模块目录下面的 config.php common.php以及tags.php不会被加载,被runtime/index/init.php取代

生成数据表字段缓存

1.可以通过生成数据表字段信息缓存,提升数据库查询的性能,避免多余的查询。命令如下:

php think optimize:schema

会自动生成当前数据库配置文件中定义的数据表字段缓存,也可以指定数据库生成字段缓存(必须有用户权限),例如,下面指定生成demo数据库下面的所有数据表的字段缓存信息

php think optimize:schema --db demo

执行后会自动在'runtime/schema'目录下面按照数据表生成字段缓存文件。

如果你的应用使用了不同的数据库连接,可以根据模块来生成,如下:

php think optimize:schema --module index

会读取index模块的模型来生成数据表字段缓存。

更新数据表字段缓存也是同样的方式,每次执行都会重新生成缓存。如果需要单独更新某个数据表的缓存, 可以使用:

php think optimize:schema --table think_user

支持指定数据库名称

php think optimize:schema --table demo.think_user

创建自定义命令

1.首先在配置文件:application/command.php

return [  
    'app\home\command\Test'  
];

配置自定义的命令行的namespace。

2.创建自定义的命令行

我在home模块中的command创建一个Test.php的文件,这里要特别注意,因为是命令行跑,要特别注意文件名的大小写,我一开始的时候没有注意到这个,文件名用了小写,结果一直跑不出来命令。

namespace app\home\command;  

use think\console\Command;  
use think\console\Input;  
use think\console\Output;  

class Test extends Command  
{  
    protected function configure()  
    {  
        $this->setName('test')->setDescription('Command Test');  
    }  

    protected function execute(Input $input, Output $output)  
    {  
        $output->writeln("TestCommand:");  
    }  
}

讲解一下,这个文件是集成Think底层的Command类的,configure函数是在命令行中用list命令列出所有任务的时候回显示的出的提示,execute函数是说要执行的命令,在这里可以直接调用其他函数,完成例如统计等任务工作,然后用output输出到命令行。

最后,在根目录中有一个think.php的文件,这个是命令行的入口,文件名可以随意改。代码如下

// 定义项目路径  
define('APP_PATH', './application/');  

// 加载框架引导文件  
require './thinkphp/console.php';

然后输入php think test, 这样就会显示出结果了。

powered by GitbookEdit Time: 2023-04-08 10:28:32