摘要:本文目的是多的組件進(jìn)行簡(jiǎn)單的使用。方法中設(shè)置了命令的名稱,即命令中的最后一個(gè)單詞方法中定義了該命令的執(zhí)行過程,即輸出再看看入口文件這里的方法將我們定義的添加到了命令行中。
Symfony的Console組件的簡(jiǎn)單使用。
本文目的是多Symfony的Console組件進(jìn)行簡(jiǎn)單的使用。
達(dá)到這樣的效果:
輸入
php console test
輸出
hello console.準(zhǔn)備工作
我們這里使用composer來進(jìn)行Console組件的安裝 composer安裝教程
進(jìn)入項(xiàng)目路徑:
cd ~/web/project/
安裝Console組件:
composer require symfony/console @stable
創(chuàng)建自己的代碼目錄:
mkdir -p src/Mycmd # 創(chuàng)建自己的代碼目錄
注冊(cè)命名空間:
編輯 composer.json 文件如下,然后在命令行輸入composer dump-autoload :
{ "require": { "symfony/console": "@stable" }, "autoload": { "psr-4":{ "Mycmd": "src/Mycmd" } } }編寫命令文件
創(chuàng)建要執(zhí)行的命令文件:
在 src/Mycmd 路徑下創(chuàng)建 TestCmd.php 文件,并寫入:
msg = $msg; parent::__construct(); } protected function configure() { $this->setName("test"); } protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln("".$this->msg." "); } }
在項(xiàng)目根目錄下,創(chuàng)建Console組件的入口文件 console 并寫入:
#!/usr/bin/env php add(new TestCmd("hello console")); $application->run();使用Console組件
在命令行中輸入:
php console test
這時(shí)會(huì)看見
hello console代碼分析 首先說說我們自己的命令文件: TestCmd.php
msg = $msg; parent::__construct(); } protected function configure() { $this->setName("test"); } protected function execute(InputInterface $input, OutputInterface $output) { $output->writeln("".$this->msg." "); } }
代碼中包含一個(gè)類 TestCmd 并繼承了 Command 基類。
configure 方法中設(shè)置了命令的名稱 test,即 php console test 命令中的最后一個(gè)單詞
execute 方法中定義了該命令的執(zhí)行過程,即輸出 $this->msg
再看看入口文件 console#!/usr/bin/env php add(new TestCmd("hello console")); $application->run();
這里的 $application->add() 方法將我們定義的 TestCmd 添加到了命令行中。
Symfony官方文檔:
http://symfony.com/doc/current/components/console/introduction.html
日期 2016-5
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/21564.html
摘要:框架組件化改造框架從單體應(yīng)用到組件化改造的架構(gòu)升級(jí)之路經(jīng)過一年多的開發(fā)框架功能越來越完善也越來越復(fù)雜初創(chuàng)時(shí)期的單體應(yīng)用已經(jīng)無法支撐項(xiàng)目的快速發(fā)展于是開發(fā)組在年前為版制定了組件化改造的重構(gòu)方案內(nèi)容速覽組件化原理包管理基礎(chǔ)知識(shí)組件化方案來 date: 2018-3-21 13:22:16title: Swoft| Swoft 框架組件化改造description: Swoft 框架從單體應(yīng)...
摘要:首先你應(yīng)該是在用以上的版本,如果版本在這之下,是時(shí)候該升級(jí)了。按照其官網(wǎng)的說法,這個(gè)組織的目的并不是告訴你你應(yīng)該怎么做,只是一些主流的框架之間相互協(xié)商和約定。和沒有出現(xiàn)在以上的列表中,是因?yàn)檫€沒有投票通過。不要被這些話所困擾。 首先你應(yīng)該是在用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時(shí)候該升級(jí)了。我建議如果有條件,最好使用最新的版本。 你應(yīng)該看過 PHP The R...
摘要:測(cè)試運(yùn)行多次并取平均值。文章數(shù)量測(cè)試的基準(zhǔn)測(cè)試基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果基準(zhǔn)測(cè)試結(jié)果不支持再次成為冠軍請(qǐng)注意的運(yùn)行環(huán)境需要或以上。同時(shí),再次不能正常工作并拋出錯(cuò)誤。 showImg(https://segmentfault.com/img/remote/1460000013690286); 我們每年都會(huì)嘗試深入了解不同版本的 PHP 和 HHVM 在各...
摘要:首發(fā)于我的博客前言從開始,就提供了一個(gè)內(nèi)置的服務(wù)器。在中的安裝一節(jié)中介紹了一個(gè)命令可以使用內(nèi)置服務(wù)器實(shí)現(xiàn)外部訪問的命令。 首發(fā)于:我的博客 前言 PHP從5.4開始,就提供了一個(gè)內(nèi)置的web服務(wù)器。 這個(gè)主要是用來做本地的開發(fā)用的。不能用于線上環(huán)境?,F(xiàn)在我就介紹一下這個(gè)工具如何使用。 基礎(chǔ)應(yīng)用 首先我們假定項(xiàng)目目錄是/home/baoguoxiao/www/php/demo,外界可訪...
摘要:一個(gè)事件系統(tǒng)就這么簡(jiǎn)單。說了這么多,一句話概括事件系統(tǒng)就像是框架層的全局?jǐn)?shù)據(jù)庫(kù),具有存儲(chǔ)注冊(cè)和觸發(fā)事件功能,解耦代碼,實(shí)現(xiàn)跨組件通信。。 我們知道,laravel/symfony 框架是由一堆堆 components 組件粘合在一起的。其中會(huì)有一個(gè) event component 組件,比較特殊,它像一個(gè)中介,是框架層全局 component,專門負(fù)責(zé)不同component間相互通信傳...
閱讀 2055·2021-11-15 11:39
閱讀 3237·2021-10-09 09:41
閱讀 1501·2019-08-30 14:20
閱讀 3274·2019-08-30 13:53
閱讀 3334·2019-08-29 16:32
閱讀 3395·2019-08-29 11:20
閱讀 3032·2019-08-26 13:53
閱讀 783·2019-08-26 12:18