本文整理汇总了PHP中AppShell类的典型用法代码示例。如果您正苦于以下问题:PHP AppShell类的具体用法?PHP AppShell怎么用?PHP AppShell使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AppShell类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct()
{
parent::__construct();
$date = new DateTime();
$date->sub(new DateInterval('P3M'));
$this->suspension_month = $date->format("Y-m-01 00:00:00");
}
开发者ID:kameshwariv,项目名称:testexample,代码行数:7,代码来源:PresenterHourlyShell.php
示例2: getOptionParser
/**
* getOptionParser() の override.
*/
public function getOptionParser()
{
$parser = parent::getOptionParser();
$dtype = 'chatwork_console';
$parser->description(__d($dtype, 'A console tool for Chatwork API'))->addSubcommand('fetchMe', array('help' => __d($dtype, '自分自身の情報を取得する.'), 'parser' => array('description' => __d($dtype, 'この機能に引数はありません。'), 'arguments' => array())))->addSubcommand('fetchMyStatus', array('help' => __d($dtype, '自分の未読数、未読To数、未完了タスク数を返す.'), 'parser' => array('description' => __d($dtype, 'この機能に引数はありません。'), 'arguments' => array())))->addSubcommand('fetchMyTasks', array('help' => __d($dtype, '自分のタスク一覧を取得する.'), 'parser' => array('description' => __d($dtype, 'API がページネーションに対応していないため、100 件までしか取得できません。'), 'arguments' => array('assigned_by account_id' => array('help' => __d($dtype, 'タスクの依頼者のアカウントID.')), 'status' => array('choices' => array('open', 'done'), 'help' => __d($dtype, 'タスクのステータス.'))))))->addSubcommand('fetchContacts', array('help' => __d($dtype, '自分のコンタクト一覧を取得.'), 'parser' => array('description' => __d($dtype, 'この機能に引数はありません。'), 'arguments' => array())))->addSubcommand('fetchRooms', array('help' => __d($dtype, '自分のチャット一覧の取得.'), 'parser' => array('description' => __d($dtype, 'この機能に引数はありません。'), 'arguments' => array())))->addSubcommand('fetchRoom', array('help' => __d($dtype, 'チャットの名前、アイコン、種類(my/direct/group)を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true)))))->addSubcommand('fetchRoomMembers', array('help' => __d($dtype, 'チャットのメンバー一覧を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true)))))->addSubcommand('fetchRoomMessages', array('help' => __d($dtype, 'チャットのメッセージ一覧を取得.'), 'parser' => array('description' => __d($dtype, 'API がページネーションに対応していないため、100 件までしか取得できません。※このAPIは未実装です!まだ利用することはできません。'), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'force' => array('help' => __d($dtype, '未取得にかかわらず最新の100件を取得するか. 1を指定すると未取得にかかわらず最新の100件を取得します(デフォルトは0)'), 'choices' => array(0, 1))))))->addSubcommand('fetchRoomMessage', array('help' => __d($dtype, 'メッセージ情報を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'message_id' => array('help' => __d($dtype, 'メッセージ ID.'), 'required' => true)))))->addSubcommand('fetchRoomTasks', array('help' => __d($dtype, 'チャットのタスク一覧を取得.'), 'parser' => array('description' => __d($dtype, 'API がページネーションに対応していないため、100 件までしか取得できません。'), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'account_id' => array('help' => __d($dtype, 'タスクの担当者のアカウントID.')), 'assigned_by account_id' => array('help' => __d($dtype, 'タスクの依頼者のアカウントID.')), 'status' => array('choices' => array('open', 'done'), 'help' => __d($dtype, 'タスクのステータス.'))))))->addSubcommand('fetchRoomTask', array('help' => __d($dtype, 'タスク情報を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'task_id' => array('help' => __d($dtype, 'タスク ID.'), 'required' => true)))))->addSubcommand('fetchRoomFiles', array('help' => __d($dtype, 'チャットのファイル一覧を取得.'), 'parser' => array('description' => __d($dtype, 'API がページネーションに対応していないため、100 件までしか取得できません。'), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'account_id' => array('help' => __d($dtype, 'アップロードしたユーザーのアカウントID.'))))))->addSubcommand('fetchRoomFile', array('help' => __d($dtype, 'ファイル情報を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'file_id' => array('help' => __d($dtype, 'ファイルの ID.'), 'required' => true), 'create_download_url' => array('help' => __d($dtype, 'ダウンロードする為のURLを生成するか 30 秒間だけダウンロード可能なURLを生成します.'), 'choices' => array(0, 1))))))->addSubcommand('createRoom', array('help' => __d($dtype, 'ファイル情報を取得.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('name' => array('help' => __d($dtype, '作成したいグループチャットのチャット名.'), 'required' => true), 'members_admin_ids' => array('help' => __d($dtype, '管理者権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、管理者権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '最低1人は指定する必要がある.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.'), 'required' => true), 'members_member_ids' => array('help' => __d($dtype, 'メンバー権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、メンバー権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.')), 'members_readonly_ids' => array('help' => __d($dtype, '閲覧のみ権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、閲覧のみ権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.')), 'description' => array('help' => __d($dtype, 'グループチャットの概要説明テキスト.')), 'icon_preset' => array('help' => __d($dtype, 'グループチャットのアイコン種類.'), 'choices' => array('group', 'check', 'document', 'meeting', 'event', 'project', 'business', 'study', 'security', 'star', 'idea', 'heart', 'magcup', 'beer', 'music', 'sports', 'travel'))))))->addSubcommand('postRoomMessage', array('help' => __d($dtype, 'チャットに新しいメッセージを追加.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'body' => array('help' => __d($dtype, 'メッセージ本文.'), 'required' => true)))))->addSubcommand('postRoomTask', array('help' => __d($dtype, 'チャットに新しいタスクを追加.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'body' => array('help' => __d($dtype, 'タスクの内容.'), 'required' => true), 'to_ids' => array('help' => __d($dtype, '担当者のアカウントIDをカンマ区切りで.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.'), 'required' => true), 'limit' => array('help' => __d($dtype, 'タスクの期限. Unix Time で入力してください.'))))))->addSubcommand('editRoom', array('help' => __d($dtype, 'チャットの名前、アイコンをアップデート.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'name' => array('help' => __d($dtype, 'グループチャットのチャット名.')), 'description' => array('help' => __d($dtype, 'グループチャットの概要説明テキスト')), 'icon_preset' => array('help' => __d($dtype, 'グループチャットのアイコン種類.'), 'choices' => array('group', 'check', 'document', 'meeting', 'event', 'project', 'business', 'study', 'security', 'star', 'idea', 'heart', 'magcup', 'beer', 'music', 'sports', 'travel'))))))->addSubcommand('editRoomMembers', array('help' => __d($dtype, 'チャットのメンバーを一括変更.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'members_admin_ids' => array('help' => __d($dtype, '管理者権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、管理者権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '最低1人は指定する必要がある.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.'), 'required' => true), 'members_member_ids' => array('help' => __d($dtype, 'メンバー権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、メンバー権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.')), 'members_readonly_ids' => array('help' => __d($dtype, '閲覧のみ権限のユーザー.' . PHP_EOL . '作成したチャットに参加メンバーのうち、閲覧のみ権限にしたいユーザーのアカウントIDの配列.' . PHP_EOL . '※リストはカンマ区切りで複数の値を指定してください.'))))))->addSubcommand('deleteRoom', array('help' => __d($dtype, 'グループチャットを退席/削除する.'), 'parser' => array('description' => __d($dtype, ''), 'arguments' => array('room_id' => array('help' => __d($dtype, 'チャットルーム ID.'), 'required' => true), 'action_type' => array('help' => __d($dtype, '退席するか、削除するか.' . PHP_EOL . '退席すると、このグループチャットにある自分が担当のタスク、および自分が送信したファイルは削除されます.' . PHP_EOL . '削除すると、このグループチャットに参加しているメンバー全員のメッセージ、タスク、ファイルはすべて削除されます.' . PHP_EOL . '※一度削除すると元に戻せません!'), 'required' => true, 'choices' => array('leave', 'delete'))))));
return $parser;
}
开发者ID:sirone,项目名称:chatwork_cakephp,代码行数:10,代码来源:ChatworkShell.php
示例3: getOptionParser
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->addArgument('path', array('help' => 'The absolute path to the file or the folder you want to import.', 'required' => true));
$parser->addOption('recursive', array('short' => 'r', 'help' => 'Import a folder, recursively.', 'boolean' => true))->command('import');
return $parser;
}
开发者ID:MightyCreak,项目名称:sonerezh,代码行数:7,代码来源:SonerezhShell.php
示例4: getOptionParser
/**
* Gets the option parser instance and configures it.
*
* @return ConsoleOptionParser
*/
function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(__('Updates the git clones from SVN.'));
$parser->addArgument('max', array('help' => __('Maximum number of plugins to update.')));
return $parser;
}
开发者ID:hasannawaz,项目名称:pluginmirror,代码行数:12,代码来源:UpdateShell.php
示例5: __construct
public function __construct()
{
parent::__construct();
App::import("Model", "Presenter");
$this->Presenter = new Presenter();
//$this->Presenter->setDataSource('persistent');
}
开发者ID:kameshwariv,项目名称:testexample,代码行数:7,代码来源:NestedsetShell.php
示例6: initialize
public function initialize()
{
parent::initialize();
$this->ProcessManager = new \Liip\ProcessManager\ProcessManager();
$this->setPid(getmypid());
$this->setProcessName($this->pid);
}
开发者ID:davidsteinsland,项目名称:cakephp-shells,代码行数:7,代码来源:PidTask.php
示例7: initialize
public function initialize()
{
$this->pluginPath = dirname(dirname(dirname(__FILE__))) . DS;
$this->bootstrapPath = $this->pluginPath . 'Vendor' . DS . 'bootstrap' . DS;
$this->Folder = new Folder($this->bootstrapPath);
parent::initialize();
}
开发者ID:ByMyHandsOnly,项目名称:BMHO_Web,代码行数:7,代码来源:CopyShell.php
示例8: getOptionParser
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(__d('backend', "Manage Cache"));
$parser->addArgument('command', array('help' => 'Command', 'required' => true, 'choices' => array('clear')));
return $parser;
}
开发者ID:fm-labs,项目名称:cakephp-backend,代码行数:7,代码来源:CacheTask.php
示例9: getOptionParser
/**
* Display help/options
*/
public function getOptionParser()
{
$drivers = array('Mysql', 'Postgres', 'Sqlite', 'Sqlserver');
$parser = parent::getOptionParser();
$parser->description(__d('croogo', 'Install Utilities'))->addSubcommand('main', array('help' => 'Generate croogo.php, database.php, settings.json and create admin user.', 'parser' => array('description' => 'Generate croogo.php, database.php, settings.json and create admin user.')))->addSubcommand('setup_acos', array('help' => 'Setup default ACOs for roles', 'parser' => array('description' => 'Generate default role settings during release')))->addOption('datasource', array('help' => 'Database Driver', 'short' => 'd', 'required' => true, 'options' => $drivers))->addOption('host', array('help' => 'Database Host', 'short' => 'h', 'required' => true))->addOption('login', array('help' => 'Database User', 'short' => 'l', 'required' => true))->addOption('password', array('help' => 'Database Password', 'short' => 'p', 'required' => true))->addOption('database-name', array('help' => 'Database Name', 'short' => 'n', 'required' => true))->addOption('port', array('help' => 'Database Port', 'short' => 't', 'required' => true))->addOption('prefix', array('help' => 'Table Prefix', 'short' => 'x', 'required' => true))->addArgument('admin-user', array('help' => 'Admin username'))->addArgument('admin-password', array('help' => 'Admin password'));
return $parser;
}
开发者ID:saydulk,项目名称:croogo,代码行数:10,代码来源:InstallShell.php
示例10: __construct
public function __construct()
{
parent::__construct();
$this->Order = ClassRegistry::init('Order');
$this->client = S3Client::factory(["key" => "AKIAJVCBLQ3VQQS3DJHA", "secret" => "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"]);
$this->bucket = "younique-reports";
}
开发者ID:kameshwariv,项目名称:testexample,代码行数:7,代码来源:WmsShell.php
示例11: getOptionParser
/**
* cake standardized argument parser
* autosets basic help information
* (because of the required Model arguments)
*/
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->addArguments(array('model' => array('help' => 'Model Name (or Plugin.Model)', 'required' => true), 'method' => array('help' => 'The Model\'s method', 'required' => false), 'param1' => array('help' => 'optional param to pass', 'required' => false), 'param2' => array('help' => 'optional param to pass', 'required' => false), 'param3' => array('help' => 'optional param to pass', 'required' => false), 'param4' => array('help' => 'optional param to pass', 'required' => false), 'param5' => array('help' => 'optional param to pass', 'required' => false)));
$parser->addOptions(array('plugin' => array('short' => 'p', 'help' => '(optional) The plugin within witch to look for this model'), 'behavior' => array('short' => 'b', 'help' => '(optional) Attach this behavior on setup'), 'force' => array('short' => 'f', 'help' => '(optional) Force this attempt, even if the method isn\'t found on the model', 'boolean' => true), 'json' => array('short' => 'j', 'help' => '(optional) JSON array of arguments specified rather than a literal string', 'boolean' => true)));
return $parser;
}
开发者ID:beckye67,项目名称:Icing,代码行数:12,代码来源:DoShell.php
示例12: getOptionParser
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->addOption('race_id', array('help' => 'race_id', 'default' => null));
$parser->addOption('update', array('help' => '1:update', 'default' => 0));
$parser->addOption('mode', array('help' => '1:resultExpect 2:raceData', 'default' => 1));
return $parser;
}
开发者ID:sanrentan,项目名称:sanrentan,代码行数:8,代码来源:ResultExpectationShell.php
示例13: getOptionParser
/**
* Gets the option parser instance and configures it.
*
* @return ConsoleOptionParser
*/
function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(__('Refreshes plugin information with current details from WordPress.org.'));
$parser->addArgument('max', array('help' => __('Maximum number of plugins to refresh.')));
$parser->addSubcommand('queue', array('help' => __('Queues plugins for a refresh if they have stale data.'), 'parser' => array('description' => array(__('All plugins with data older than the given number of days is added to the refresh queue.')), 'arguments' => array('days' => array('help' => __('Number of days old plugin data can be before being queued for a refresh.'), 'required' => false)))));
return $parser;
}
开发者ID:hasannawaz,项目名称:pluginmirror,代码行数:13,代码来源:RefreshShell.php
示例14: getOptionParser
/**
* Gets the option parser instance and configures it.
*
* @return ConsoleOptionParser
*/
function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(__('Performs the initial git-svn clone of plugins.'));
$parser->addArgument('max', array('help' => __('Maximum number of plugins to clone.')));
$parser->addSubcommand('queue', array('help' => __('Queues a plugin to clone if not already busy.'), 'parser' => array('description' => array(__('Keeps the cloning queue busy if there haven\'t been'), __('any plugins requested to be cloned.'), '', __('If the cloning queue is less than the count given,'), __('one plugin will be added to the queue in preference'), __('of the latest updated or added first.')), 'arguments' => array('min' => array('help' => __('Minimum number of queued plugins.'), 'required' => false)))));
return $parser;
}
开发者ID:hasannawaz,项目名称:pluginmirror,代码行数:13,代码来源:CloneShell.php
示例15: getOptionParser
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(__d('backend', 'Backend Console'));
$parser->addSubcommand('cache', array('help' => __('Cache Task'), 'parser' => $this->Cache->getOptionParser()));
$parser->addSubcommand('user', array('help' => __d('backend', "Manage backend users"), 'parser' => $this->User->getOptionParser()));
return $parser;
}
开发者ID:fm-labs,项目名称:cakephp-backend,代码行数:8,代码来源:BackendShell.php
示例16: __construct
public function __construct()
{
parent::__construct();
$this->Estatistica = new Estatistica();
$this->EstatisticaTransicao = new EstatisticaTransicao();
ini_set('memory_limit', '1G');
Cache::config('_cake_model_', array('engine' => 'File', 'prefix' => 'shell' . 'cake_model_', 'path' => CACHE . 'models' . DS, 'serialize' => true, 'duration' => '+999 days'));
}
开发者ID:TerrasAppSolutions,项目名称:seeg-mapbiomas-workspace,代码行数:8,代码来源:StatsinputShell.php
示例17: getOptionParser
/**
* Get the Console Option Parser
*
* @return ConsoleOptionParser The Console Option Parser.
*/
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->description(array(__('A shell to seed your database with fake and/or fixed data.'), __(''), __('Uses Faker to generate the fake data.'), __('Uses shell tasks for implementing specific seeders.'), __('Organizes logical groups of seeders in custom seeder shells/suites.')));
$parser->addArguments(array('model' => array('help' => "The name of a seeder shell task without 'SeederTask' suffix.\n" . "For example 'Article' for 'ArticleSeederTask'.\n" . "Alternatively the name of a model.\n" . "It will try to guess the field formatters then.", 'required' => false)));
$parser->addOptions(array('mode' => array('help' => "The seeding mode.\n" . "'manual' = No Field formatters are guessed.\n" . "'auto' = All field formatters are guessed.\n" . "'mixed' = Only missing field formatters are guessed.\n", 'short' => 'm', 'choices' => array('manual', 'auto', 'mixed'), 'default' => ''), 'locale' => array('help' => 'The locale to use for Faker.', 'short' => 'l', 'default' => ''), 'records' => array('help' => 'The amount of records to seed.', 'short' => 'r', 'default' => ''), 'validate' => array('help' => 'Whether or not to validate when saving the seeding data.', 'choices' => array('first', true, false), 'default' => ''), 'seed' => array('help' => 'Set the seed number for Faker to use.', 'short' => 's', 'default' => ''), 'no-truncate' => array('help' => 'Prevents that the model gets truncated before seeding.', 'boolean' => true)));
$parser->epilog(array(__('All shell options can be set through:'), __('1. CLI parameter, e.g. "--records"'), __('2. The seeder specific configuration, e.g. "FakeSeeder.Article.records"'), __('3. The general seeder configuration, e.g "FakeSeeder.records"'), __('4. The seeder shell task class properties, e.g. "$_records"'), __('The values are checked in that order. The first value found is taken.'), __('If no value is set, it will fall back to an optional default value.'), __(''), __('When no seeders are set (e.g. in a custom seeder suite) and if called without arguments, ' . 'it will prompt to execute one of the seeder shell tasks available.')));
return $parser;
}
开发者ID:ravage84,项目名称:cakephp-fake-seeder,代码行数:14,代码来源:SeederShell.php
示例18: getOptionParser
/**
* Gets the option parser instance and configures it.
* By overriding this method you can configure the ConsoleOptionParser before returning it.
*
* @return ConsoleOptionParser
* @link http://book.cakephp.org/2.0/en/console-and-shells.html#Shell::getOptionParser
*/
public function getOptionParser()
{
$parser = parent::getOptionParser();
$parser->addSubcommand('lint', array('help' => __('Validate syntax and basic data requirements for your cronjobs.json file'), 'parser' => array()));
$parser->addSubcommand('show', array('help' => __('Convert cronjobs.json to a crontab compatible output. This will also lint the file to ensure correct syntax'), 'parser' => array()));
$parser->addSubcommand('export', array('help' => __('Export all cronjobs.json cronjobs into crontab. This command will also remove project cronjobs that no longer exist in cronjobs.json'), 'parser' => array()));
$parser->addSubcommand('clear', array('help' => __('Remove all cronjobs belonging to the current project from crontab'), 'parser' => array()));
return $parser;
}
开发者ID:nodesagency,项目名称:Platform-Common-Plugin,代码行数:16,代码来源:CronjobShell.php
示例19: __construct
public function __construct($stdout = null, $stderr = null, $stdin = null)
{
parent::__construct($stdout, $stderr, $stdin);
$this->times['months'][date('m')] = 1;
$this->times['days'][date('j')] = 1;
$this->times['hours'][date('H')] = 1;
$this->times['minutes'][date('i')] = 1;
Configure::write('debug', 2);
}
开发者ID:nani8124,项目名称:infinitas,代码行数:9,代码来源:CronShell.php
示例20: getOptionParser
/**
* ヘルプ内容とパラメータ・オプション群の定義
* @return ConsoleOptionParser
*/
public function getOptionParser()
{
// ConsoleOptionParserインスタンスの取得
$parser = parent::getOptionParser();
// ヘルプの先頭にくるこのシェルの説明
$parser->description('This is DailyShell\'s help.');
// サブコマンドの説明・オプションの定義
$parser->addSubcommand('MemberData', array('help' => 'Backup Members data.', 'parser' => $this->MemberData->getOptionParser()));
return $parser;
}
开发者ID:bumptakayuki,项目名称:cakephp,代码行数:14,代码来源:DailyShell.php
注:本文中的AppShell类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论