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

資訊專欄INFORMATION COLUMN

在github規范開發以及持續構建php項目

Sleepy / 2805人閱讀

摘要:本文目的是通過自己寫的一個的簡單的庫花密密碼生成工具,來學習我認為的庫開發的一些規范,以及上持續構建你的項目的一些方法。給自己的項目開啟持續構建。包發布以及當你的代碼完成后,測試完成后。

本文目的是通過自己寫的一個php的簡單的庫(花密密碼生成工具),

來學習我認為的php庫開發的一些規范,以及github上持續構建你的項目的一些方法。其實是為了顯示下邊一系列的的徽章

本文涉及的內容有:

項目目錄

php的psr規范

php備注的規范

php的包管理器composer

php保證代碼質量(php-cs-fix,styleci,phpunit,coveralls)

php的持續集成Travis CI

php包發布Packagist 以及 LICENSE

更多的徽章獲得

項目目錄
    /
    |── bin/                            //命令行目錄
    |── build/                          //構建目錄
    |── src/                            //用于存放項目源代碼
    |── tests/                          //單元測試目錄
    |   ├── ClassNameTest/              //測試目錄
    |   |── phpunit.xml                 //phpunit 配置文件
    |   └── bootstrap.php               //phpunit 引導文件
    |── vendor/                         //第三方依賴庫
    |── .gitignore                      //git忽略文件
    |── .gitmessage                     //git提交規范文件
    |── .php_cs                         //php-cs-fix配置文件
    |── .styleci.yml                    //https://styleci.io配置文件
    |── .travis.yml                     //Travis CI 配置文件
    |── LICENSE                         //LICENSE
    |── composer.json                   //composer配置
    └── README.md                       //README
php的psr規范

詳見

PSR-1 基本代碼規范:

PSR-2 代碼風格規范:(本篇規范是 PSR-1 基本代碼規范的繼承與擴展)

PSR-3 日志接口規范:

PSR-4 自動加載相關

PSR-7 HTTP消息相關

php備注的規范

PHPDoc WIKI

@name 名字

@abstract 申明變量/類/方法

@access 指明這個變量、類、函數/方法的存取權限

@author 函數作者的名字和郵箱地址

@category 組織packages

@copyright 指明版權信息

@const 指明常量

@deprecate 指明不推薦或者是廢棄的信息MyEclipse編碼設置

@example 示例

@exclude 指明當前的注釋將不進行分析,不出現在文擋中

@final 指明這是一個最終的類、方法、屬性,禁止派生、修改。

@global 指明在此函數中引用的全局變量

@include 指明包含的文件的信息

@link 定義在線連接

@module 定義歸屬的模塊信息

@modulegroup 定義歸屬的模塊組

@package 定義歸屬的包的信息

@param 定義函數或者方法的參數信息

@return 定義函數或者方法的返回信息

@see 定義需要參考的函數、變量,并加入相應的超級連接。

@since 指明該api函數或者方法是從哪個版本開始引入的

@static 指明變量、類、函數是靜態的。

@throws 指明此函數可能拋出的錯誤異常,極其發生的情況

@todo 指明應該改進或沒有實現的地方

@var 定義說明變量/屬性。

@version 定義版本信息

php的包管理器composer

詳見composer中文網

注意:如果訪問不了國外鏡像,可以全局修改使用中國鏡像

  $  composer config -g repo.packagist composer https://packagist.phpcomposer.com
php保證代碼質量

這一部分現在有很多解決方案。在github搜索phpQA也很多集成工具包

在我這個項目主要用到的就是php-cs-fix,phpunit.為了保證在github的代碼風格
,用了https://styleci.io。

php-cs-fix

有關php-cs-fix可以參考這篇文章文章學習 php-cs-fixer - PHP 編碼格式化工具
但是上邊文章是php-cs-fix 配置文件是1.*版本的。現在官網升級到2.*版本。
很多配置文件名變化了。具體變化可以參考官方說明UPGRADE.md
下邊給出在這個項目里的配置.cs_php


This source file is subject to the MIT license that is bundled
with this source code in the file LICENSE.
EOF;
$finder = PhpCsFixerFinder::create()
    ->files()
    ->name("*.php")
    ->exclude("vendor")
    ->in(__DIR__)
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);
;
$fixers = array(
    "@PSR2" => true,
    "header_comment" => array("header" => $header),
    "no_empty_statement" => true, //多余的分號
    "no_extra_consecutive_blank_lines" => true, //多余空白行
    "include" => true, //include 和文件路徑之間需要有一個空格,文件路徑不需要用括號括起來;
    "no_trailing_comma_in_list_call"  => true, //刪除 list 語句中多余的逗號;
    "no_leading_namespace_whitespace" => true, //命名空間前面不應該有空格;
    "array_syntax"  => array("syntax" => "short"), //數組 【】 php版本大于5.4
    "no_blank_lines_after_class_opening" => true, //類開始標簽后不應該有空白行;
    "no_blank_lines_after_phpdoc" => true, //PHP 文檔塊開始開始元素下面不應該有空白行;
    "object_operator_without_whitespace" => true, //(->) 兩端不應有空格;
    "binary_operator_spaces"    => true, //二進制操作符兩端至少有一個空格;
    "phpdoc_indent"             => true, //phpdoc 應該保持縮進;
    "phpdoc_no_access"          => true, //@access 不應該出現在 phpdoc 中;
    "phpdoc_no_package"         => true,
    "phpdoc_scalar"             => true, //phpdoc 標量類型聲明時應該使用 int 而不是 integer,bool 而不是 boolean,float 而不是 real 或者 double;
    "phpdoc_to_comment"         => true, //文檔塊應該都是結構化的元素;
    "phpdoc_trim"               => true,
    "phpdoc_no_alias_tag"       => array("type" => "var"),// @type 需要使用 @var 代替;
    "phpdoc_var_without_name"   => true, //@var 和 @type 注釋中不應該包含變量名;
    "no_leading_import_slash"   => true, //刪除 use 前的空行;
    //"no_extra_consecutive_blank_lines"  => array("use"), //刪除 use 語句塊中的空行;
    "self_accessor"             => true, //在當前類中使用 self 代替類名;
    "no_trailing_comma_in_singleline_array" => true, //PHP 單行數組最后一個元素后面不應該有空格;
    "single_blank_line_before_namespace" => true,//命名空間聲明前應該有一個空白行;
    "single_quote"      => true,    //簡單字符串應該使用單引號代替雙引號;
    "binary_operator_spaces"    => array("align_equals" => true,"align_double_arrow" => true), //等號 => 對齊   symfony是不對齊的
    "no_singleline_whitespace_before_semicolons" => true, //禁止只有單行空格和分號的寫法;
    "cast_spaces"   =>   true, //變量和修飾符之間應該有一個空格;
    "standardize_not_equals" => true, //使用 <> 代替 !=;
    "concat_space" => array("spacing" => "one"), //點連接符左右兩邊有一個的空格;symfony是沒空格
    "ternary_operator_spaces"   => true, //三元運算符之間的空格標準化
    "trim_array_spaces" => true, //數組需要格式化成和函數/方法參數類似,上下沒有空白行;
    "unary_operator_spaces" => true, //一元運算符和運算數需要相鄰;
    "no_whitespace_in_blank_line" => true, //刪除空白行中多余的空格;
    "no_multiline_whitespace_before_semicolons" => true, //分號前的空格
    "no_unused_imports" => true, //刪除沒用到的use
);
return PhpCsFixerConfig::create()
    ->setRules($fixers)
    ->setFinder($finder)
    ->setUsingCache(false);

另外php-cs-fix都有對應的編輯器插件比如:

PhpStorm

Sublime Text

Vim

styleci

在規定了自己的代碼規范之后,如何保證別人提交的pr是否符合你的規范呢。

這時候就需要用https://styleci.io。通過github帳號注冊后。就可以關聯你的項目。

在你的項目目錄添加配置文件 .styleci.yml

下邊是和上面.php_cs對應的我的styleci配置文件,具體可以看https://styleci.io文檔

preset: PSR2

risky: false

enabled:
  - no_empty_statement
  - no_extra_consecutive_blank_lines
  - include
  - no_trailing_comma_in_list_call
  - no_leading_namespace_whitespace
  - no_blank_lines_after_class_opening
  - no_blank_lines_after_phpdoc
  - object_operator_without_whitespace
  - binary_operator_spaces
  - phpdoc_indent
  - phpdoc_no_access
  - phpdoc_no_package
  - phpdoc_scalar
  - phpdoc_to_comment
  - phpdoc_trim
  - phpdoc_type_to_var
  - phpdoc_var_without_name
  - no_leading_import_slash
  - remove_lines_between_uses
  - self_accessor
  - no_trailing_comma_in_singleline_array
  - single_blank_line_before_namespace
  - single_quote
  - align_equals
  - no_singleline_whitespace_before_semicolons
  - cast_spaces
  - standardize_not_equals
  - concat_with_spaces
  - ternary_operator_spaces
  - trim_array_spaces
  - unary_operator_spaces
  - no_whitespace_in_blank_line
  - no_multiline_whitespace_before_semicolons
  - no_unused_imports
  - align_double_arrow
  - short_array_syntax


finder:
  exclude:
    - "vendor"
  name:
    - "*.php"

另外在https://styleci.io有這個徽章。,可以自己的項目添加上了。

phpunit

php單元測試,具體使用可以參考中文手冊

這里配置好之后主要通過Travis CI進行調用,下邊會講到。

coveralls

coveralls是利用phpunit生成測試代碼覆蓋率的xml,來展示你的代碼覆蓋率。
網址是https://coveralls.io/。 依然是github注冊。然后在Travis CI進行調用。需要 satooshi/php-coveralls 這個庫調用。
在這個coveralls配置好之后就可以添加這個徽章了。

php的持續集成Travis CI

登錄https://travis-ci.org/,依然使用github注冊之后。給自己的項目開啟持續構建。添加配置文件, ``

language: php

php:
  # - 5.4
  # - 5.5
  - 5.6
  - 7.0
  # - 7.1

before_script:
  - composer self-update
  - composer install -n --dev --prefer-source

script:
  - mkdir -p build/logs
  - ./vendor/bin/phpunit -c tests/phpunit.xml --coverage-clover build/logs/clover.xml

after_script:
  #coveralls調用 默認文件是build/logs/clover.xml,如果不是可以添加配置
  - travis_retry ./vendor/bin/coveralls -v

matrix:
  fast_finish: true

這時候push你的代碼就可以開始持續構建了。另外在Travis CI可以獲取這個徽章。

php包發布Packagist 以及 LICENSE

當你的代碼完成后,測試完成后。就可以發布到Packagist包管理平臺了。
如果composer.json配置好,按照官網一步一步來還是比較容易的,記得設置hook自動更新。
另外如果你的composer設置的國內的鏡像,大概會有一到兩個小時的延遲。

關于LICENSE的選取,可以參考這篇文章如何選擇開源許可證?

在發布完之后就可以去https://poser.pugx.org/ 獲取這幾個徽章了。

更多的徽章獲得

大家可以通過http://shields.io/這個網站來獲得,獲得去github添加更多的integrations,來獲得相對應的徽章。





文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/22195.html

相關文章

  • Travis CI 持續集成服務構建 Composer 類庫簡明教程

    摘要:創建帳號提供的是持續集成服務,簡稱。在這里引入的原因是我們的項目需要使用服務進行持續集成和測試,當然你也可以替換成別的單元測試工具。創建單元測試用例是單元測試類庫家族中的一員,使用的一個主要目的是為我們的模塊創建單元測試用例。 本文首發于 Travis CI 持續集成服務構建 Composer 類庫簡明教程,轉載請注明出處! 在項目開發過程中,編碼工作只是軟件開發整個過程中的一小部分環...

    DoINsiSt 評論0 收藏0
  • 看吧,這就是現代化 PHP 該有的樣子

    摘要:這大概是我沒有及早使用,或多數開發者流連現狀造成的。它就是,一個的框架。行為驅動開發是來自測試驅動開發的開發過程。簡單的說,它就是經常可能一天幾次將小塊代碼整合進基礎代碼當中的行為。 showImg(https://segmentfault.com/img/remote/1460000013769815); 這是一篇社區協同翻譯的文章,已完成翻譯,更多信息請點擊?協同翻譯介紹?。 文章...

    Tangpj 評論0 收藏0
  • 容器環境下的持續集成最佳實踐:構建基于 Drone + GitFlow + K8s 的云原生語義化

    摘要:集成測試完成后,由運維同學從發起一個到分支,此時會會運行單元測試,構建鏡像,并發布到預發布環境測試人員在預發布環境下再次驗證功能,團隊做上線前的其他準備工作運維同學合并,將為本次發布的代碼及鏡像自動打上版本號并書寫,同時發布到生產環境。 云原生 (Cloud Native) 是伴隨的容器技術發展出現的的一個詞,最早出自 Pivotal 公司(即開發了 Spring 的公司)的一本技術小...

    asoren 評論0 收藏0
  • 容器環境下的持續集成最佳實踐:構建基于 Drone + GitFlow + K8s 的云原生語義化

    摘要:集成測試完成后,由運維同學從發起一個到分支,此時會會運行單元測試,構建鏡像,并發布到預發布環境測試人員在預發布環境下再次驗證功能,團隊做上線前的其他準備工作運維同學合并,將為本次發布的代碼及鏡像自動打上版本號并書寫,同時發布到生產環境。 云原生 (Cloud Native) 是伴隨的容器技術發展出現的的一個詞,最早出自 Pivotal 公司(即開發了 Spring 的公司)的一本技術小...

    DevTalking 評論0 收藏0
  • fir.im weekly - 「 持續集成 」實踐教程合集

    摘要:來這里看看的工程師如何進行持續集成與持續部署。主要介紹了豆瓣移動持續集成和測試相關實踐,用工具化自動化社會化測試來解決遇到的問題,將打包發布環節自動化。這期的持續集成實踐分享就到這里。 我們常看到許多團隊和開發者分享他們的持續集成實踐經驗,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項目搭建持續集成的實踐,以及一些國內外公司的內部持續集成...

    A Loity 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<