国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

php-cs-fixer - PHP 編碼格式化工具

ityouknow / 858人閱讀

摘要:是個(gè)代碼格式化工具,格式化的標(biāo)準(zhǔn)是以及一些的標(biāo)準(zhǔn)。這個(gè)工具也和等優(yōu)秀的庫出自同門。如果同時(shí)設(shè)定了和,前者的優(yōu)先級更高。同時(shí)使用和命令可以顯示出需要修改的匯總,但是并不實(shí)際修改。你可以設(shè)置格式化的選項(xiàng)級別文件以及目錄。

php-cs-fixer 是個(gè)代碼格式化工具,格式化的標(biāo)準(zhǔn)是 PSR-1、PSR-2 以及一些 symfony 的標(biāo)準(zhǔn)。這個(gè)工具也和 symfony、twig 等優(yōu)秀的 PHP 庫出自同門。

安裝與更新

需要使用 PHP 5.3.6 以上的版本。

你可以直接下載封裝好的 phar 包:php-cs-fixer.phar;

或者通過 wget 下載(下面的都是 OSX 和 Linux 上的用法):

wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer

或者通過 curl 下載:

curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer

下載完成后給可執(zhí)行的權(quán)限,然后移動(dòng)到 bin 目錄下面即可:

sudo chmod a+x php-cs-fixer
sudo mv php-cs-fixer /usr/local/bin/php-cs-fixer

這樣就可以在任何地方直接使用 php-cs-fixer 命令來調(diào)用了。

也可以用過 Composer 來安裝:

composer global require fabpot/php-cs-fixer

如果你是 Mac 用戶、homebrew 用戶并且已經(jīng) tap 過 homebrew/php 的話,也可以直接:

brew install php-cs-fixer

或者:

brew install homebrew/php/php-cs-fixer

如果后續(xù)需要更新的話:

php-cs-fixer self-update

如果是通過 homebrew 安裝的:

brew upgrade php-cs-fixer

如果沒有將執(zhí)行文件放到 bin 目錄下或者在 Windows需要使用 php php-cs-fixer.phar 代替 php-cs-fixer

用法

用法也很簡單,最基本的命令參數(shù)就是 fix,直接執(zhí)行時(shí)會盡可能多的根據(jù)默認(rèn)標(biāo)準(zhǔn)格式化代碼:

# 格式化目錄 如果是當(dāng)前目錄的話可以省略目錄
php-cs-fixer fix /path/to/dir
# 格式化文件
php-cs-fixer.phar fix /path/to/file

--verbose 選項(xiàng)用于展示應(yīng)用了的規(guī)則,默認(rèn)是文本(txt)格式。

--level 選項(xiàng)用于控制需要使用的規(guī)則層級:

php-cs-fixer fix /path/to/project --level=psr0
php-cs-fixer fix /path/to/project --level=psr1
php-cs-fixer fix /path/to/project --level=psr2
php-cs-fixer fix /path/to/project --level=symfony

默認(rèn)情況下執(zhí)行的是 PSR-2 的所有選項(xiàng)以及一些附加選項(xiàng)(主要是 symfony 相關(guān)的)。還有一些屬于『貢獻(xiàn)級別』的選項(xiàng),你可以通過 --fixers 選擇性的添加,--fixers 的多個(gè)條件要用逗號分開:

php-cs-fixer fix /path/to/dir --fixers=linefeed,short_tag,indentation

如果有需要的話也可以使用 -name_of_fixer 采取黑名單的方式設(shè)定禁用哪些選項(xiàng)。如果同時(shí)設(shè)定了 --fixers-name_of_fixer,前者的優(yōu)先級更高。

同時(shí)使用 --dry-run--diff 命令可以顯示出需要修改的匯總,但是并不實(shí)際修改。

通過以下方式也可以查看有哪些內(nèi)容是會修改的,但是并不實(shí)際改動(dòng)文件:

cat foo.php | php-cs-fixer fix --diff -
自定義配置

--config 選項(xiàng)可以用來設(shè)置選取目錄以及文件進(jìn)行分析并格式化,但是這個(gè)選項(xiàng)只能設(shè)置一些常見的已知的項(xiàng)目,比如 symfony:

# For the Symfony 2.3+ branch
php-cs-fixer fix /path/to/sf23 --config=sf23

已有選項(xiàng):

default 默認(rèn)配置

magento magento 項(xiàng)目

sf23 symfony 的項(xiàng)目

更多時(shí)候,我們可以通過配置文件來自定義格式化選項(xiàng)以及搜索的目錄和文件。自定義配置通過在項(xiàng)目根目錄添加一個(gè) .php_cs 文件的方式實(shí)現(xiàn)。

設(shè)置本身就是 PHP 代碼,最后返回一個(gè) SymfonyCSConfigInterface 的實(shí)例即可。你可以設(shè)置格式化的選項(xiàng)、級別、文件以及目錄。

下面是一個(gè)簡單的例子:

exclude("somedir") // 忽略 somedir
    ->in(__DIR__) // 當(dāng)前目錄
;

return SymfonyCSConfigConfig::create()
    ->fixers(["strict_param", "short_array_syntax"]) // 添加兩個(gè)選項(xiàng)
    ->finder($finder)
;

如果你想完全自定義格式化選項(xiàng),就需要將格式化級別清空,并指定好所有需要的選項(xiàng):

in(__DIR__)
;

return SymfonyCSConfigConfig::create()
    ->level(SymfonyCSFixerInterface::NONE_LEVEL)
    ->fixers(["trailing_spaces", "encoding"])
    ->finder($finder)
;

你也可以通過在選項(xiàng)前面添加 - 的方式來禁用某些選項(xiàng),比如下面這個(gè)例子不采用 PSR-0:

exclude("somedir")
    ->in(__DIR__)
;

return SymfonyCSConfigConfig::create()
    ->fixers(["-psr0"])
    ->finder($finder)
;

默認(rèn)條件下的格式化級別是 symfony (最嚴(yán)格),你可以修改這個(gè)級別:

level(SymfonyCSFixerInterface::PSR2_LEVEL)
;

通過這些設(shè)置選項(xiàng)的組合,可以很輕易的定制出自己想要的效果。

你也可以通過 --config-file 選項(xiàng)指定 .php_cs 文件的位置。

啟用緩存可以在后續(xù)的執(zhí)行中加快速度,通過以下方法設(shè)置:

setUsingCache(true)
;
編輯器插件

下面這些編輯器/IDE 的插件可以幫你簡化格式化的工作:

Atom

NetBeans

PhpStorm

Sublime Text

Vim

格式化選項(xiàng)

psr0 [PSR-0]
PSR-0 的路徑和命名空間標(biāo)準(zhǔn)

encoding [PSR-1]
文件必須是不帶 BOM 的 UTF-8 編碼;

short_tag [PSR-1]
只能使用 兩種 PHP 代碼標(biāo)簽;

braces [PSR-2]
所有語句塊都必須包含在花括號內(nèi),且位置以及縮進(jìn)是符合標(biāo)準(zhǔn)的;

class_definition [PSR-2]
class、trait、interfaces 關(guān)鍵字和名稱之間只能有一個(gè)空格;

elseif [PSR-2]
使用 elseif 替代 else if

eof_ending [PSR-2]
文件必須以空白行結(jié)尾;

function_call_space [PSR-2]
調(diào)用函數(shù)和方法時(shí),函數(shù)名和方法名與參數(shù)擴(kuò)展之間不能有空格;

function_declaration [PSR-2]
函數(shù)聲明時(shí)空格的使用需要符合 PSR-2;

indentation [PSR-2]
代碼必須使用四個(gè)空格縮進(jìn)而不是制表符;

line_after_namespace [PSR-2]
命名空間的聲明后必須有一個(gè)空白行;

linefeed [PSR-2]
所有 PHP 文件都只能使用 LF(Unix) 結(jié)尾;

lowercase_constants [PSR-2]
PHP 常量 true、false 和 null 必須使用小寫;

lowercase_keywords [PSR-2]
PHP 關(guān)鍵字必須都是小寫;

method_argument_space [PSR-2]
方法聲明及調(diào)用時(shí),參數(shù)之間的逗號前不能有空格,逗號后必須有一個(gè)空格;

multiple_use [PSR-2]
每個(gè) use 只能聲明一個(gè)元素;

parenthesis [PSR-2]
圓括號內(nèi)兩側(cè)不能有空格;

php_closing_tag [PSR-2]
純 PHP 文件必須省略 ?> 標(biāo)簽;

single_line_after_imports [PSR-2]
每個(gè) use 聲明獨(dú)立一行,且 use 語句塊之后要有一個(gè)空白行;

trailing_spaces [PSR-2]
刪除非空行之后多余的空格;

visibility [PSR-2]
每個(gè)屬性和方法都必須指定作用域是 publicprotected 還是 privateabstractfinal 必須位于作用域關(guān)鍵字之前,static 必須位于作用域之后;

array_element_no_space_before_comma [symfony]
數(shù)組聲明中,逗號之前不能有空格;

array_element_white_space_after_comma [symfony]
數(shù)組聲明中,逗號之后必須有一個(gè)人空格;

blankline_after_open_tag [symfony]
PHP 開始標(biāo)簽的同一行不能有代碼,且下面必須有一個(gè)空白行;

concat_without_spaces [symfony]
點(diǎn)連接符左右兩邊不能有多余的空格;

double_arrow_multiline_whitespaces [symfony]
=> 操作符兩端不能有多個(gè)空白行;

duplicate_semicolon [symfony]
刪除重復(fù)的分號;

empty_return [symfony]
return 語句如果沒有任何返回的話直接寫 return 即可(不用 return null);

extra_empty_lines [symfony]
刪除多余的空白行;

function_typehint_space [symfony]
修正函數(shù)參數(shù)和類型提示之間的缺失的空格問題;

include [symfony]
include 和文件路徑之間需要有一個(gè)空格,文件路徑不需要用括號括起來;

join_function [symfony]
使用 join 替換 implode 函數(shù);

list_commas [symfony]
刪除 list 語句中多余的逗號;

method_argument_default_value [symfony]
函數(shù)參數(shù)中有默認(rèn)值的參數(shù)不能位于無默認(rèn)值的參數(shù)之前;

multiline_array_trailing_comma [symfony]
多行數(shù)組最后一個(gè)元素應(yīng)該也有一個(gè)逗號;

namespace_no_leading_whitespace [symfony]
命名空間前面不應(yīng)該有空格;

new_with_braces [symfony]
使用 new 新建實(shí)例時(shí)后面都應(yīng)該帶上括號;

no_blank_lines_after_class_opening [symfony]
類開始標(biāo)簽后不應(yīng)該有空白行;

no_empty_lines_after_phpdocs [symfony]
PHP 文檔塊開始開始元素下面不應(yīng)該有空白行;

object_operator [symfony]
T_OBJECT_OPERATOR (->) 兩端不應(yīng)有空格;

operators_spaces [symfony]
二進(jìn)制操作符兩端至少有一個(gè)空格;

phpdoc_indent [symfony]
phpdoc 應(yīng)該保持縮進(jìn);

phpdoc_inline_tag [symfony]
修正 phpdoc 內(nèi)聯(lián)標(biāo)簽格式,使標(biāo)簽與后續(xù)內(nèi)容始終位于一行;

phpdoc_no_access [symfony]
@access 不應(yīng)該出現(xiàn)在 phpdoc 中;

phpdoc_no_empty_return [symfony]
@return void@return null 不應(yīng)該出現(xiàn)在 phpdoc 中;

phpdoc_no_package [symfony]
@package@subpackage 不應(yīng)該出現(xiàn)在 phpdoc 中;

phpdoc_params [symfony]
@param, @throws, @return, @var, 和 @type 等 phpdoc 標(biāo)簽都要垂直對齊;

phpdoc_scalar [symfony]
phpdoc 標(biāo)量類型聲明時(shí)應(yīng)該使用 int 而不是 integerbool 而不是 booleanfloat 而不是 real 或者 double

phpdoc_separation [symfony]
phpdoc 中注釋相同的屬性應(yīng)該放在一起,不同的屬性之間應(yīng)該有一個(gè)空白行分割;

phpdoc_short_description [symfony]
phpdoc 的簡要描述應(yīng)該以 .!? 結(jié)尾;

phpdoc_to_comment [symfony]
文檔塊應(yīng)該都是結(jié)構(gòu)化的元素;

phpdoc_trim [symfony]
除了文檔塊最開始的部分和最后的部分,phpdoc 開始和結(jié)束都應(yīng)該是有內(nèi)容的;

phpdoc_type_to_var [symfony]
@type 需要使用 @var 代替;

phpdoc_types [symfony]
phpdoc 中應(yīng)該正確使用大小寫;

phpdoc_var_without_name [symfony]
@var@type 注釋中不應(yīng)該包含變量名;

pre_increment [symfony]
不應(yīng)該使用 ++i--i 的用法;

print_to_echo [symfony]
如果可能的話,使用 echo 代替 print 語句;

remove_leading_slash_use [symfony]
刪除 use 前的空行;

remove_lines_between_uses [symfony]
刪除 use 語句塊中的空行;

return [symfony]
return 之前應(yīng)該有一個(gè)空行;

self_accessor [symfony]
在當(dāng)前類中使用 self 代替類名;

short_bool_cast [symfony]
bool 類型數(shù)據(jù)前不應(yīng)該試用兩個(gè)感嘆號;

single_array_no_trailing_comma [symfony]
PHP 單行數(shù)組最后一個(gè)元素后面不應(yīng)該有空格;

single_blank_line_before_namespace [symfony]
命名空間聲明前應(yīng)該有一個(gè)空白行;

single_quote [symfony]
簡單字符串應(yīng)該使用單引號代替雙引號;

spaces_after_semicolon [symfony]
修復(fù)分號后面的空格;

spaces_before_semicolon [symfony]
禁止只有單行空格和分號的寫法;

spaces_cast [symfony]
變量和修飾符之間應(yīng)該有一個(gè)空格;

standardize_not_equal [symfony]
使用 <> 代替 !=

ternary_spaces [symfony]
三元運(yùn)算符之間的空格標(biāo)準(zhǔn)化;

trim_array_spaces [symfony]
數(shù)組需要格式化成和函數(shù)/方法參數(shù)類似,上下沒有空白行;

unalign_double_arrow [symfony]
不對其 =>

unalign_equals [symfony]
不對其等號;

unary_operators_spaces [symfony]
一元運(yùn)算符和運(yùn)算數(shù)需要相鄰;

unneeded_control_parentheses [symfony]
刪除控制結(jié)構(gòu)語句中多余的括號;

unused_use [symfony]
刪除沒有用到的 use 語句;

whitespacy_lines [symfony]
刪除空白行中多余的空格;

除了以上這些選項(xiàng)以外,還有一些用戶貢獻(xiàn)的選項(xiàng),這里就不再一一介紹了。

對于代碼風(fēng)格是否統(tǒng)一,執(zhí)行什么樣的標(biāo)準(zhǔn),每個(gè)人、每個(gè)團(tuán)隊(duì)可能都有自己的看法。這里只是介紹一下這個(gè)工具,至于如何選用,還在于大家自己。如果是開源項(xiàng)目,你也可以試用一下 StyleCI。

私博地址:http://0x1.im

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21288.html

相關(guān)文章

  • 那些 PHP 開發(fā)者可能用得上的工具

    PHP 函數(shù)的 JavaScript 實(shí)現(xiàn) module.exports = function array_sum (array) { // eslint-disable-line camelcase // discuss at: http://locutus.io/php/array_sum/ // original by: Kevin van Zonneveld (http://kv...

    JowayYoung 評論0 收藏0
  • PHP代碼修正之CodeSniffer

    摘要:它包含兩類腳本,和地址腳本對文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級。腳本能自動(dòng)修正代碼格式上不符合規(guī)范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開發(fā)規(guī)范之使用phpcbf腳本自動(dòng)修正代碼格式 在PhpStorm中使用PSR2編碼規(guī)范phpcbf腳本自...

    khs1994 評論0 收藏0
  • PHP 標(biāo)準(zhǔn)規(guī)范

    摘要:標(biāo)準(zhǔn)規(guī)范簡介是的簡寫,由組織制定的規(guī)范,是開發(fā)的實(shí)踐標(biāo)準(zhǔn)。具體標(biāo)準(zhǔn)有有了統(tǒng)一編碼風(fēng)格規(guī)范,更有利于查看和學(xué)習(xí)各個(gè)框架或類庫,不不需要每次都適應(yīng)新的編碼風(fēng)格。同時(shí)在開發(fā)團(tuán)隊(duì)內(nèi)部使用統(tǒng)一的編碼規(guī)范更有利于代碼審查版本控制團(tuán)隊(duì)內(nèi)部交流。 PHP 標(biāo)準(zhǔn)規(guī)范 PSR PSR 簡介 PSR 是 PHP Standard Recommendations 的簡寫,由 PHP FIG 組織制定的 PHP...

    FuisonDesign 評論0 收藏0
  • 配置你的Editor

    摘要:啟用配置項(xiàng)可預(yù)覽編碼是否合格的情況,現(xiàn)在你就搭上這款插件開始調(diào)試吧主題推薦我這里依然熱衷于其獨(dú)特的風(fēng)格以及畫面感十足一直霸占在主題排行榜的前列。進(jìn)入對應(yīng)的配置項(xiàng)可修改其。 showImg(https://segmentfault.com/img/remote/1460000009555145); 說明 走一波配置流,莫等閑,高效快速開發(fā),從自己的常用的工具開始 尋找舒適的工作方式,僅...

    dcr309duan 評論0 收藏0
  • 現(xiàn)在寫 PHP,你應(yīng)該知道這些

    摘要:首先你應(yīng)該是在用以上的版本,如果版本在這之下,是時(shí)候該升級了。按照其官網(wǎng)的說法,這個(gè)組織的目的并不是告訴你你應(yīng)該怎么做,只是一些主流的框架之間相互協(xié)商和約定。和沒有出現(xiàn)在以上的列表中,是因?yàn)檫€沒有投票通過。不要被這些話所困擾。 首先你應(yīng)該是在用 PHP 5.3 以上的版本,如果 PHP 版本在這之下,是時(shí)候該升級了。我建議如果有條件,最好使用最新的版本。 你應(yīng)該看過 PHP The R...

    supernavy 評論0 收藏0

發(fā)表評論

0條評論

ityouknow

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<