presttec/codeigniter-cli

CodeIgniter 3.0 的命令行工具

dev-master / 1.0.x-dev 2019-03-22 03:23 UTC

This package is auto-updated.

Last update: 2024-09-22 15:57:55 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Scrutinizer Code Quality Coverage Status Build Status

此包为 CodeIgniter 3.0 提供了一个命令行工具。

这包括一些命令,您可以轻松创建自己的命令。

这是基于 Aura.Cli_Project 2.0。

包含的命令

generate migration ... Generates migration file skeleton.
migrate            ... Run migrations.
migrate status     ... List all migration files and versions.
seed               ... Seed the database.
run                ... Run controller.

文件夹结构

codeigniter/
├── application/
├── ci_instance.php ... script to generate CodeIgniter instance
├── cli             ... command file
├── config/         ... config folder
└── vendor/

要求

  • PHP 5.4.0 或更高版本
  • composer 命令
  • Git

安装

使用 Composer 安装此项目

$ cd /path/to/codeigniter/
$ composer require presttec/codeigniter-cli --dev

将命令文件(cli)和配置文件(config/)安装到您的 CodeIgniter 项目中

$ php vendor/presttec/codeigniter-cli/install.php
  • 上述命令总是覆盖现有文件。
  • 您必须在 CodeIgniter 项目根目录下运行它。

如果需要,请修复 ci_instance.php 中的路径。

$system_path        = 'vendor/codeigniter/framework/system';
$application_folder = 'application';
$doc_root           = 'public'; // where index.php is

如果您使用 codeigniter-composer-installer 安装 CodeIgniter,则无需更改它们。

用法

显示命令列表。

$ cd /path/to/codeigniter/
$ php cli

显示某个命令的帮助信息。

$ php cli help seed

创建数据库种子

种子类必须放在 application/database/seeds 文件夹中。

application/database/seeds/ProductSeeder.php

<?php

class ProductSeeder extends Seeder {

	public function run()
	{
		$this->db->truncate('product');

		$data = [
			'category_id' => 1,
			'name' => 'CodeIgniter Book',
			'detail' => 'Very good CodeIgniter book.',
			'price' => 3800,
		];
		$this->db->insert('product', $data);

		$data = [
			'category_id' => 2,
			'name' => 'CodeIgniter CD',
			'detail' => 'Great CodeIgniter CD.',
			'price' => 4800,
		];
		$this->db->insert('product', $data);

		$data = [
			'category_id' => 3,
			'name' => 'CodeIgniter DVD',
			'detail' => 'Awesome CodeIgniter DVD.',
			'price' => 5800,
		];
		$this->db->insert('product', $data);
	}

}

创建用户命令

命令类名必须是 *Command.php,并放在 application/commands 文件夹中。

application/commands/TestCommand.php

<?php

class TestCommand extends Command {

	public function __invoke()
	{
		$this->stdio->outln('<<green>>This is TestCommand class<<reset>>');
	}

}

命令帮助类名必须是 *CommandHelp.php,并放在 application/commands 文件夹中。

application/commands/TestCommandHelp.php

<?php

class TestCommandHelp extends Help {

	public function init()
	{
		$this->setSummary('A single-line summary.');
		$this->setUsage('<arg1> <arg2>');
		$this->setOptions(array(
			'f,foo' => "The -f/--foo option description",
			'bar::' => "The --bar option description",
		));
		$this->setDescr("A multi-line description of the command.");
	}

}

参考

如何运行测试

要运行测试,您必须首先安装 CodeIgniter。

$ composer create-project presttec/codeigniter-composer-installer codeigniter
$ cd codeigniter
$ composer require presttec/codeigniter-cli:1.0.x@dev --dev
$ php vendor/presttec/codeigniter-cli/install.php
$ cd vendor/presttec/codeigniter-cli
$ composer install
$ phpunit

CodeIgniter 3.0 的相关项目