我是靠谱客的博主 苗条乌龟,最近开发中收集的这篇文章主要介绍thinkphp5 框架添加命令行脚本,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

* ./artisan

#!/usr/bin/env php
<?php

// 应用目录
define('APP_PATH', __DIR__.'/application/');
// 定义缓存目录
define('RUNTIME_PATH', __DIR__.'/runtime/');

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

 

* application/oa/command/Users.php

<?php


namespace appoacommand;

use thinkconsoleCommand;
use thinkConfig;
use thinkconsoleInput;
use thinkconsoleOutput;

class Users extends Command
{
    protected function configure() {
        parent::configure();
        $this->setName('users')->setDescription("代理用户名");
    }

    /**
     * @param Input  $input  An InputInterface instance
     * @param Output $output An OutputInterface instance
     */
    protected function initialize(Input $input, Output $output) {
        // 读取数据库配置文件
        $filename = ROOT_PATH . 'config/database.php';
        // echo $filename.PHP_EOL; die;
        Config::load($filename, 'database');
    }

    private static function getLine() {
        $c = <<<EOF
zhuopeijie
gezhiming
guchunmei
huyuesheng
lixuefeng
czwangfang
luweidangcz
yaozhengrong
lilie
yuanyoufeng
EOF;
        for ($i = 0, $j = 0; isset($c[$j]); $j++) {
            if ($c[$j] === "n") {
                if (isset($c[$j-1]) && $c[$j-1]==="r") {
                    yield substr($c, $i, $j-$i-1);
                } else {
                    yield substr($c, $i, $j-$i);
                }
                $i = $j+1;
            }
        }
    }

    protected function execute(Input $input, Output $output) {
        // $lines = explode("n", $content);
        foreach (self::getLine() as $line) {
            printf("[%s]n", $line);
        }
    }
}

配置命令行脚本文件路径

* application/command.php

<?php

return [
    'appoacommandSample',
    'appoacommandApprovalCommand',
    'appoacommandChannels',
    'appoacommandProxy',
    'appoacommandDistrict',
    'appoacommandUsers',
    'appoacommandReports',
];

在项目根目录

php artisan users

 

带命令行参数的情况:

<?php
/**
 * Created by PhpStorm.
 * User: mzh
 * Date: 3/12/2020
 * Time: 10:20
 */

namespace appadmincommand;

use appadminmodelSystemUser;
use thinkconsoleInput;
use thinkconsoleinputArgument;
use thinkconsoleOutput;

/**
 * php think sys_user
 * Class SysUserCommand
 * @package appadmincommand
 */
class SysUserCommand extends thinkconsoleCommand
{
    protected function configure() {
        parent::configure();
        $this->setName('sys_user')->setDescription("Add system user: php think sys_user [username] [password]");
        $this->addArgument("username", Argument::REQUIRED, "username")
            ->addArgument("password", Argument::REQUIRED, "password")
            ->addArgument("wxapp_id", Argument::OPTIONAL, "wxapp_id")
            ->setHelp("php think sys_user [username] [password] [wxapp_id]");
    }

    /**
     * @param Input  $input  An InputInterface instance
     * @param Output $output An OutputInterface instance
     */
    protected function initialize(Input $input, Output $output)
    {
        // 读取数据库配置文件
        $filename = ROOT_PATH . 'config/database.php';
        // echo $filename.PHP_EOL; die;
        thinkConfig::load($filename, 'database');
    }

    protected function execute(Input $input, Output $output) {
        $username = $input->getArgument("username");
        $password = $input->getArgument("password");
        $wxappId = $input->getArgument("wxapp_id") ?: "10002";

        $user = new SystemUser();
        $user->setUsername($username);
        $user->setPassword($password);
        $user->setWxAppId($wxappId);
        $user->save();
        $output->writeln(json_encode($user));
    }
}

 

php think sys_user admin 123456

最后

以上就是苗条乌龟为你收集整理的thinkphp5 框架添加命令行脚本的全部内容,希望文章能够帮你解决thinkphp5 框架添加命令行脚本所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部