consolephp
① 怎樣調用app\console\commands中php文件
include 或者require
② php console chrome插件 怎麼用
按F12就看到了啊
③ phpstorm console窗口怎麼使用
按照慣例依然是從網路上復制一條簡介: PhpStorm 是 JetBrains 公司開發的一款商業的 PHP 集成開發工具。PhpStorm可隨時幫助用戶對其編碼進行調整,運行單元測試或者提供可視化debug功能和智能HTML/CSS/javaScript/PHP編輯、代碼質量分析、版本控制集成(SVN、GIT)、調試和測試等功能。另外,它還是跨平台。在Windows和MacOS下都可以使用。PhpStorm-讓開發更智能,而不是更困難。
聽說phpStorm 10支持php7呃
優點
跨平台。
對PHP支持refactor功能。
自動生成phpdoc的注釋,非常方便進行大型編程。
內置支持Zencode。
生成類的繼承關系圖,如果有一個類,多次繼承之後,可以通過這個功能查看他所有的父級關系。
支持代碼重構,方便修改代碼。
擁有本地歷史記錄功能(local history功能)。
方便的部署,可以直接將代碼直接upload到伺服器。
總之它很牛逼就是了,什麼都能幹
快捷鍵
phpStorm有非常非常多並且好用的的快捷鍵,我下面就舉一些經常用的的快捷鍵演示,還有一些不常用的就不舉例了,絕對能提高你開發的效力率...
(Windows與Mac類似,只要把command鍵換成ctrl)
查詢相關
command + f 查找當前文件
command + r 查找替換
command + e 打開最近的文件
command + shift + o 快速查詢文件
command + shift + f 關鍵字查找,更強大的查詢器(機器不好的,最好還是先確定一下目錄)
command + shift + r 高級替換
command + alt + b 找到當剪類的所有子類
alt + shift + c 查找最近修改的文件
alt + f7 直接查詢選中的字元
ctrl + f7 文件中查詢選中字元
command + 滑鼠點擊 跳到類或方法或變數等聲明處
command + shift + tab 切換tab頁文件
command + shift + +,- 展開或縮起
command + . 折疊或展開選中的代碼
自動代碼
alt + 回車 導入包,自動修正
command + n 快事為每個成員屬性生成 getter 及 setter 方法
ctrl + i 快速生成插入魔術方法
ctrol + o 復寫父類方法
command + alt + l 對當前文件進行格式化排版
command + d 復制當剪行
command + / // 注釋
command + shift + / / / 注釋
以command + n舉個例子
我創建了一個Person類在/Entity/目錄下,然後我設置一些私有的屬性如下代碼:
namespace Entity;
class Person
{
private $sign = '';
private $name = '';
private $age = 0;
private $work = '';
private $sex = '女';
}
然後咱們使用command + n 在彈出來的窗口選擇"PHPDoc Blocks..." 如下圖:
再再彈出的窗口選擇所有屬性再點"OK":
namespace Entity;
/**
* Class Person
* @package Entity
*/
class Person
{
/**
* @var string
*/
private $sign = '';
/**
* @var string
*/
private $name = '';
/**
* @var int
*/
private $age = 0;
/**
* @var string
*/
private $work = '';
/**
* @var string
*/
private $sex = '女';
}
然後它就對剛剛所選擇屬性加上了注釋...... 是不是灰常神奇。
ok,咱們繼續,再次使用command + n鍵選擇Contructor...彈出需要進行傳參賦值的屬性:
/**
* Person constructor.
* @param string $sign
*/
public function __construct($sign)
{
$this->sign = $sign;
}
如果不選擇的話將不需要對成員屬性進行設置。
然後咱們再來看看其他功能,比如"Implement Methods..."這個是快速生成魔術方法。
通常咱們設置、獲取一個成員屬性時最好不要直接使用$person->name = $name 這種方式進行設置參數或取得參數值,建議是對每個屬性都開放一個 getter 跟 setter 方法,這樣可以很方便得對傳進或傳出去的值進行處理,這就是上面我為什麼要把成員屬性設置置為私有的原因之一
同樣的command + n 選擇"Getters and Stetters" 然後選擇所有屬性,它就會把所有的屬性設置getter及setter方法,這里要注意的是Person的sign是唯一的,不可進行修改,所以咱們要把設置sign的方法去掉。注意: 最好setter方法設置完後返回當剪對象,這樣的話咱們就可以連寫了並且phpStorm的提示還相當友好下面有例子:
/**
* @return string
*/
public function getSign()
{
return $this->sign;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
* @return $this
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* @return int
*/
public function getAge()
{
return $this->age;
}
/**
* @param int $age
* @return $this
*/
public function setAge($age)
{
$this->age = $age;
return $this;
}
/**
* @return string
*/
public function getWork()
{
return $this->work;
}
/**
* @param string $work
* @return $this
*/
public function setWork($work)
{
$this->work = $work;
return $this;
}
/**
* @var string
*/
private $sex = '女';
/**
* @return string
*/
public function getSex()
{
return $this->sex;
}
/**
* @param string $sex
* @return $this
*/
public function setSex($sex)
{
$this->sex = $sex;
return $this;
}
連寫的例子:
use Entity\Person;
$person = new Person();
$person->setName("蛋蛋")
->setAge(17)
->setWork('student');
最後再演示一個快速復寫被繼承類的功能。咱們新建一個Man類,然後繼承Person類,上面的Person類預設是女性別,所以我們需要重寫它並且加上"中國男人"。同樣的使用command + n打開快捷窗口選擇 "Override Methods..." 彈出來可被復寫的方法:
然後咱們選擇getSex跟setSex方法,然後確定,在Man方法下生成以下方法。
namespace Entity;
/**
* Class Man
* @package Entity
*/
class Man extends Person
{
/**
* @return string
*/
public function getSex()
{
return parent::getSex(); // TODO: Change the autogenerated stub
}
/**
* @param int $sex
* @return $this
*/
public function setSex($sex)
{
return parent::setSex($sex); // TODO: Change the autogenerated stub
}
}
咱們把return parent::getSex()跟return parent::setSex( $age )刪除掉,不需要這樣,然後改成如下模式。
/**
* @return string
*/
public function getSex()
{
if ( ! mb_strpos(parent::getSex(), "中國") )
return "中國".parent::getSex();
return parent::getSex();
}
/**
* @param int $sex
* @return $this
*/
public function setSex($sex)
{
if( ! mb_strpos($sex, "中國") )
$sex = "中國".$sex;
return parent::setSex($sex);
}
碉堡了有木有。
工具類等
看起來好多的樣紙,我懶,不想講可不可以?我就挑幾個好不好?
連拉ssh 照著配就行了,很簡單
composer 這個也很明了吧,不多說了,平時咱們都是通過命令行來實現的
vagrant 這個phpstorm 10集成了vagrant,介於咱們自己已經搭建好了自己的vagrant環境,就不使用phpstorm所集成的啦
參考: 《使用Virtual Box和Vagrant搭建開發環境》
Database 工具
phpStorm所集成的database工具十分強大,當然它還有單獨的database工具叫做: DataGrip,當然需要獨立購買,咱們phpStorm有集成,就使用它好啦哈哈....(咱們的PhpStorm可是花錢買的,請支持正版)
Database工具一般在右側欄,如果沒有的話搜一下就好了,多簡單的事兒呀...
開始創建一個資料庫連接吧...
選擇如上圖的那個"+"號,然後選擇Data Source數據來源,再選擇資料庫類型,一般咱們都是使用mysql吧,這次咱們試試新的,比如SQLite
選擇sqlite數據文件的地址,然後選擇驅動,如果沒有的話得先下載安裝sqlite的驅動插件,這個很簡單,在Driver下有提示,照做就是了...
咱們先看一下mysql的配製吧...
mysql的也非常簡單,如果需要ssh/ssl連接的話,需要在SSH/SSL選項卡上配配地址入連接密碼或sshkey...
配製好了,打開選擇的資料庫:
上圖是連接的資料庫的表及表欄位信息... 來演示一下查詢... 點擊那"QL"樣的dos窗口圖標會彈出一個tab頁,咱們可以在這里寫sql語句。
咱們查詢User表下的所有數據,可以看到會有相當提示,這是相當的好使啊...查詢完成後在下面的Database Console上會有顯示表數據,可對它進行修改,等等操作增加數據也可以。
快捷鍵command + alt + l不但對代碼進行格式化,也sql語句也是非常有效的,如上圖。
在"Database Console"欄上點"Output"選項卡可以查看sql語句執行的情況、記錄及所消耗的時間等等信息...
command + 回車 執行sql語句或執行選中的sql語句
關於database工具的用法還有很多很多,我就不一一講解了,大家可以自己慢慢去研究,真的非常好用
CVS 和 Git
command + k
command + shift + k
關於FTP的配製,由於我不推薦使用,所以這里就不多說啦!
都到這了,那咱們就說說在phpStorm上如何使用git工具吧
算了,還是舉一個例子吧,配辣么多太累了,一會我看下有沒有已經配好的,如果有的話一會拉出來截個圖看看就行吧,反正現在svn用得也比較少了,還是git用得爽,分布式嘛,離線嘛,多好...關於svn -> git可以參考我之前寫的一篇文章
《將代碼庫從Svn遷移Git》
從git伺服器上把代碼抓到本地
選擇CVS -> Checkout from Version Control -> Git
在彈出的窗口輸入自己的git倉庫信息:
注意 conle 的時間如果沒有設置你的github賬號的話可能會提示你輸入賬號信息,咱們輸入就行了。如果需要修改的話則在設置裡面進行修改,咱們可以使用command + ,打開"Preferences" 然後找到"Version Control"選項目的"GitHub"進行設置,還有"Git"路徑。
從mster創建分支
創建分支以通過命令行進行創建,咱們可以通過phpstrom的窗口進行創建,如下:
這個東西在右下角,"Git:master" 然後彈出上面窗口選擇"New Branch" 然後輸入新分支的名稱就好了,它會自動切換到新分支下。
是不是超級簡單呀...
提交代碼至遠程分支
當咱們修改完代碼後,咱們需要把代碼提交到遠程分支上,使用快捷鍵command + k提交相當修改後的代碼,雙擊文件可以進行對比。在"Commit Message"寫上修改的東西然後點提交,這時就把代碼提交到本地分支上了。
不使用快捷鍵的話,可以使用"CVS -> Commit Changes"提交,也會彈出下面窗口...
提交到本地分支後,咱們需要把代碼推到遠程分支上,所以需要使用快捷鍵: command + shif + k提交遠程分支...
也可以使用"CVS -> Git -> Push"進行提交...效果是一樣的
注意svn木有 command + shift + k這一步
合並分支
分並非常簡單,只要選擇需要合並的分支,然後merge就行了,如下圖:
這樣就合並完成,當然,如果有沖突的話會提交有沖突,並讓你解決,如果沒有的話就直接合並成功了...然後就可以push了......
Compare 是對合並的分支進行對比...
使用svn...
灰常抱歉,我電腦上木有找到相關Svn項目的代碼,就不多說了...
安裝插件
這里講一個javascript 的安裝,使用快捷鍵cmd + , 打開 Preferances
安裝 JavaScript 插件
Languages & Frameworks -> Javascript -> Libraries
選擇add需要的框架
安裝symfony2插件,搜索插件,然後點install
然後重啟phpStorm 就完事了....
注意
灰色+波浪線: 變數未使用
黃色波浪線: 變數未名單詞拼寫問題
紅色波浪線: 變數未定義
還有好多我就不一一舉例了,可能是因為我代碼寫得太好,出錯的東西比較少吧...
右邊欄出現紅色,這點是必須要杜絕的,好的代碼不應該出現紅色的任何提示...一旦出現一定要馬上解決,好的代碼不應該出現一個黃、紅色的提示。
④ 怎麼優雅的輸出PHP調試信息
利用瀏覽器調試模式的Console
1,先定義一個php函數:
functionconsole($log='')
{
switch(empty($log)){
caseFalse:
$out=json_encode($log);
$GLOBALS['console'].='console.log('.$out.');';
break;
default:
echo'<scripttype="text/javascript">'.$GLOBALS['console'].'</script>';
}
}
2,在需要調試的地方直接調用它,遞交的參數可以是字元串,也可以是數組。
3,在適當的位置調用無參數的console,用來輸出調試信息,比如各類php框架入口文件的最底部
4,打開瀏覽器(比如chrome),載入頁面後進入調試模式(比如按F12鍵),點擊Console,你會發現所有數據都在這里等著你查閱。
5,其他用途
優秀的PHP開源框架ThinkPHP提供了輸出運行狀態的功能,你可以通過運行狀態來了解某個頁面在後台處理了多長時間。但是,很多人都注意到了,它是不準確的。
下面我們試著用剛剛加進來的自定義函數console在瀏覽器中輸出真正的運行時間。
所有工作都在入口文件中完成:
在所有代碼的最開頭,定義變數$s=microtime(true);
在console();的上面再增加console('exetime:'.round(microtime(true)-$s,4));
⑤ 利用瀏覽器的Javascript控制台調試PHP程序
PHP是一種伺服器端腳本語言,用來開發動態web應用程序。與JAVA相比,沒有一個好的伺服器端調試工具是其限制之一。通常我們都是在PHP代碼中添加echo、var_mp等語句,將變數、數組的值顯示在瀏覽器中來達到調試的目的。
現在,越來越多的瀏覽器都有了開發這工具或者Javascript控制台,通過這些工具,我們可以很方便的顯示PHP代碼中的變數或數組值。下面我們來做一個例子。例子中的PHP代碼有四個跟蹤級別:info,
warn,
log,
error,開發人員可以使用瀏覽器控制台來顯示錯誤變數,數組值。
將下面代碼拷貝到PHP文件中,並保存為WebConsole.php
復制代碼
代碼如下:
<?php
class
WebConsole
{
private
static
function
write($data,
$type
=
'info')
{
$method_types
=
array('error',
'info',
'log',
'warn');
$msg_type
=
'';(PS:T不錯的PHP
Q扣峮:304224365,驗證:csl)
if(in_array($type,
$method_types))
{
$msg_type
=
sprintf("console.%s",
$type);
}else
{
$msg_type
=
sprintf("console.%s",
'info');
}
if(is_array($data))
{
echo("<script>$msg_type('".implode(',
',
$data)."');</script>");
}
else
{
echo("<script>$msg_type('".$data."');</script>");
}
}
public
static
function
info($data)
{
self::write($data);
}
public
static
function
error($data)
{
self::write($data,
'error');
}
public
static
function
log($data)
{
self::write($data,
'log');
}
public
static
function
warn($data)
{
self::write($data,
'warn');
}
}
?>
現在,導入WebConsole類,並使用跟蹤功能。
復制代碼
代碼如下:
<?php
require_once('WebConsole.php');
$fruits
=
array('apple',
'mange',
'banana');
WebConsole::log($fruits);
WebConsole::info($fruits);
WebConsole::warn($fruits);
WebConsole::error($fruits);
?>
現在打開你的瀏覽器控制台,你會發現出現類似下面的屏幕截圖:
⑥ 如何在windows下擁有php console - 技術問答
我在公司,只要用putty ssh到linux的server, 就可以直接在putty里運行php了,可是我現在是在windows下裝的wamp, 沒有ssh, 不能用putty啊
⑦ 如何使用app console on device
app console命令是Symfony2中的了,這個命令是小編用到的比較多了,用到多問題也不少了,下文我們來整理一些app console問題總結。
本人在使用php app/console -s進入symfony的shell界面時,上下左右鍵分別變成^[[A^[[B^[[C^[[D這種樣子。另外在使用table鍵補齊時只是把table鍵變成縮進,使用過程中非常的不方便。
解決思路:
1、直接搜索^[[A^[[B^[[C^[[D,無果。
2、突然想起以前在python環境中也遇到到類似問題,於是搜索多了一個參考條件。」python shell 亂碼」
3、在查找python過程中遇到了readline這個東西
4、然後搜索php readline之後,發現php有個readline擴展。
下面是解決方案1:
下載php源碼編譯安裝,編譯安裝的時候重新安裝readline擴展。
cd php-5.5.20/ext/readline
###執行phpize,並開始編譯###
phpize
./configure
make && make install
解決方案2:
經測試,MAMP自帶的php各個版本均不包含readline模塊,所以也可選擇brew安裝php。
brew install php55
可能存在php版本鏈接的問題,ln命令鏈接一下即可解決,不再贅述。
##完