Pasangan pemrograman pasangan untuk menulis PHP yang lebih baik. Pahout berarti php mahout?
PHP telah ditambahkan berbagai fitur dalam sejarah panjang. Namun, karena panjang sejarahnya, banyak sintaks lama tersebar di internet. Jika phper belajar dari mereka, phper tidak dapat mengetahui sintaksis yang sangat baik dan fungsi yang ada dalam versi PHP terbaru. Ini adalah hal yang sangat menyedihkan.
Jadi, saya berpikir untuk membuat linter seperti pasangan pemrograman pasangan yang memberi tahu Anda cara yang baik. Ini akan membantu Anda menulis PHP yang lebih baik dengan Anda.
Namun, tolong jangan mencoba memperbaiki semua kode yang ada berdasarkan petunjuk Pahout terlebih dahulu. Pahout adalah mitra pemrograman pasangan. Saat memasangkan pemrograman, Anda tidak memeriksa semua kode yang ada, bukan? Rekomendasi saya adalah hanya memeriksa file yang baru dibuat atau dimodifikasi. Misalnya, itu adalah ide yang baik untuk mengatur kait pra-komit sebagai berikut:
#! /bin/sh
git diff --name-only | grep .php | xargs vendor/bin/pahout
if [ " $? " -ne 0] ; then
exit 1
fi Pahout membutuhkan lingkungan berikut:
Anda dapat menginstal dengan komposer.
$ composer require --dev wata727/pahout
$ vendor/bin/pahout -V
Dengan menggunakan gambar Docker, Anda dapat dengan mudah mencoba pahout tanpa mempengaruhi lingkungan setempat.
$ docker run --rm -t -v $(pwd):/workdir wata727/pahout
Anda menggunakan PHP 7.1.8 dalam proyek Anda. Apa pendapat Anda tentang kode berikut?
<?php
// Do something...
$ response = get_awesome_response ();
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
// Do something...Mungkin itu kode yang akrab. Namun, jika Anda tahu operator null coalescing, Anda akan menulis sesuatu seperti ini:
<?php
// Do something...
$ response = get_awesome_response ();
$ error = $ response [ ' error ' ] ?? null ; # Great!
// Do something...Pahout akan mendukung penulisan ulang seperti itu. Coba jalankan pada contoh di atas.
$ pahout --php-version 7.1.8 test.php
test.php:8
NullCoalescingOperator: Use the null coalecing operator instead of the ternary operator. [https://github.com/wata727/pahout/blob/master/docs/NullCoalescingOperator.md]
1 files checked, 1 hints detected.
Pahout memberi tahu Anda di mana operator null coalescing dapat digunakan! Untuk daftar petunjuk yang disediakan oleh Pahout, silakan lihat dokumentasi ini.
Jika Anda ingin menganalisis banyak file, Anda dapat menentukan lebih dari satu.
$ pahout --php-version 7.1.8 test.php test2.php ...
Jika Anda menentukan nama direktori, semua file .php di bawah direktori itu akan dibahas.
$ pahout --php-version 7.1.8 src
Anda dapat mengubah konfigurasi dari baris perintah.
$ pahout --help
Description:
A pair programming partner for writing better PHP
Usage:
check [options] [--] [<files>...]
Arguments:
files List of file names or directory names to be analyzed
Options:
--php-version[=PHP-VERSION] Target PHP version [default: runtime version]
--ignore-tools[=IGNORE-TOOLS] Ignore tool types [default: Nothing to ignore] (multiple values allowed)
--ignore-paths[=IGNORE-PATHS] Ignore files and directories [default: Nothing to ignore] (multiple values allowed)
--extensions[=EXTENSIONS] File extensions to be analyzed [default: php] (multiple values allowed)
--vendor[=VENDOR] Check vendor directory [default: false]
-f, --format[=FORMAT] Output format [default: "pretty", possibles: "pretty", "json"]
-c, --config[=CONFIG] Config file path [default: ".pahout.yaml"]
--only-tools[=ONLY-TOOLS] Check only the given tool types (multiple values allowed)
-h, --help Display this help message
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Anda juga dapat mengubah konfigurasi dengan menyiapkan file konfigurasi yang disebut .pahout.yaml .
php_version : 7.0.0
ignore_tools :
- ShortArraySyntax
ignore_paths :
- tests
- bin
extensions :
- php
- module
- inc
vendor : trueTentukan versi PHP dari proyek Anda. Standarnya adalah versi runtime. Pahout menggunakan versi ini untuk memilih alat.
Di Pahout, apa yang menghasilkan petunjuk disebut "alat". Anda dapat menentukan nama alat yang ingin Anda abaikan. Silakan lihat dokumentasi untuk daftar nama alat.
Berlawanan dengan ignore_tools , tentukan alat untuk memeriksa.
Anda dapat menentukan file atau direktori yang ingin Anda abaikan. Jika nama direktori ditentukan, semua file di bawah direktori itu diabaikan.
Ekstensi file yang akan dianalisis. Default hanya php .
Anda dapat mengatur apakah akan mengabaikan direktori vendor.
Catatan: Direktori vendor diabaikan secara default. Secara umum, Anda tidak perlu memeriksa direktori vendor.
Tentukan format output. Saat ini hanya pretty dan json yang didukung.
Tentukan nama file konfigurasi. Ini berguna ketika Anda ingin menggunakan nama file selain .pahout.yaml di file konfigurasi.
Menggunakan anotasi, Anda dapat mengabaikan petunjuk untuk baris tertentu. Tentukan nama alat yang ingin Anda abaikan dengan @rebel .
<?php
/** @rebel NullCoalescingOperator */
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;Komentar berikut akan bekerja dengan cara yang sama.
<?php
/**
* @rebel NullCoalescingOperator
*/
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ; # @rebel NullCoalescingOperator Kazuma Watanabe