kenjis/codeigniter-cli

CodeIgniter 3.0 的命令行工具

v0.1.0 2015-07-05 09:24 UTC

This package is auto-updated.

Last update: 2024-08-29 04:04:39 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

Scrutinizer Code Quality Coverage Status Build Status

本包为 CodeIgniter 3.0 提供了一个 Cli 工具。

它包含了一些命令,你可以轻松创建自己的命令。

它基于 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 kenjis/codeigniter-cli --dev

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

$ php vendor/kenjis/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 kenjis/codeigniter-composer-installer codeigniter
$ cd codeigniter
$ composer require kenjis/codeigniter-cli:1.0.x@dev --dev
$ php vendor/kenjis/codeigniter-cli/install.php
$ cd vendor/kenjis/codeigniter-cli
$ composer install
$ phpunit

CodeIgniter 3.0 的相关项目