شريك برمجة زوج لكتابة أفضل php. Pahout يعني php mahout؟
تمت إضافة PHP ميزات مختلفة في التاريخ الطويل. ومع ذلك ، نظرًا لطول تاريخها ، فإن العديد من بناء الجملة القديم منتشرة عبر الإنترنت. إذا تعلمت من Phper منهم ، لا يمكن لـ Phper معرفة بناء الجملة الممتاز والوظائف الموجودة في أحدث إصدار PHP. هذا شيء محزن للغاية.
لذلك ، فكرت في صنع Linter مثل شريك برمجة زوج يخبرك بطريقة جيدة. سوف يساعدك على كتابة أفضل php معك.
ومع ذلك ، يرجى عدم محاولة إصلاح جميع الرموز الموجودة بناءً على تلميحات Pahout أولاً. Pahout هو شريك برمجة زوج. عند إقران البرمجة ، لا تتحقق من جميع الرموز الموجودة ، أليس كذلك؟ توصيتي هي التحقق فقط من الملفات التي تم إنشاؤها حديثًا أو تعديلها. على سبيل المثال ، من الجيد ضبط خطاف ما قبل الالتزام على النحو التالي:
#! /bin/sh
git diff --name-only | grep .php | xargs vendor/bin/pahout
if [ " $? " -ne 0] ; then
exit 1
fi يتطلب pahout البيئة التالية:
يمكنك التثبيت مع الملحن.
$ composer require --dev wata727/pahout
$ vendor/bin/pahout -V
باستخدام صورة Docker ، يمكنك تجربة Pahout بسهولة دون التأثير على البيئة المحلية.
$ docker run --rm -t -v $(pwd):/workdir wata727/pahout
أنت تستخدم PHP 7.1.8 في مشروعك. ما رأيك في الكود التالي؟
<?php
// Do something...
$ response = get_awesome_response ();
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
// Do something...ربما هو رمز مألوف. ومع ذلك ، إذا كنت تعرف المشغل الفارغ الفارغ ، فسوف تكتب شيئًا كهذا:
<?php
// Do something...
$ response = get_awesome_response ();
$ error = $ response [ ' error ' ] ?? null ; # Great!
// Do something...سوف Pahout دعم مثل هذه إعادة الكتابة. حاول الركض على المثال أعلاه.
$ 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 أين يمكن استخدام مشغل الفحم الفارغ! للحصول على قائمة التلميحات التي توفرها Pahout ، يرجى الاطلاع على هذه الوثائق.
إذا كنت ترغب في تحليل ملفات متعددة ، فيمكنك تحديد أكثر من واحد.
$ pahout --php-version 7.1.8 test.php test2.php ...
إذا قمت بتحديد اسم دليل ، فسيتم تغطية جميع ملفات .php ضمن هذا الدليل.
$ pahout --php-version 7.1.8 src
يمكنك تغيير التكوين من سطر الأوامر.
$ 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
يمكنك أيضًا تغيير التكوين عن طريق إعداد ملف تكوين يسمى .pahout.yaml .
php_version : 7.0.0
ignore_tools :
- ShortArraySyntax
ignore_paths :
- tests
- bin
extensions :
- php
- module
- inc
vendor : trueحدد إصدار PHP من مشروعك. الافتراضي هو إصدار وقت التشغيل. يستخدم Pahout هذا الإصدار لتحديد الأدوات.
في Pahout ، ما يولد تلميحات يسمى "الأداة". يمكنك تحديد اسم الأداة الذي تريد تجاهله. يرجى إلقاء نظرة على وثائق قائمة أسماء الأدوات.
على عكس ignore_tools ، حدد الأدوات للتحقق.
يمكنك تحديد الملف أو الدليل الذي تريد تجاهله. إذا تم تحديد اسم الدليل ، يتم تجاهل جميع الملفات الموجودة تحت هذا الدليل.
ملحقات الملف المراد تحليلها. الافتراضي هو php فقط.
يمكنك تعيين ما إذا كنت ستتجاهل دليل البائع.
ملاحظة: يتم تجاهل دليل البائع افتراضيًا. بشكل عام ، لا تحتاج إلى التحقق من دليل البائع.
حدد تنسيق الإخراج. حاليا فقط pretty و json مدعومة.
حدد اسم ملف التكوين. هذا مفيد عندما تريد استخدام اسم الملف بخلاف .pahout.yaml في ملف التكوين.
باستخدام التعليقات التوضيحية ، يمكنك تجاهل التلميحات لخطوط محددة. حدد اسم الأداة الذي تريد تجاهله باستخدام @rebel .
<?php
/** @rebel NullCoalescingOperator */
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;التعليقات التالية ستعمل بنفس الطريقة.
<?php
/**
* @rebel NullCoalescingOperator
*/
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ;
$ error = isset ( $ response [ ' error ' ]) ? $ response [ ' error ' ] : null ; # @rebel NullCoalescingOperator كازوما واتانابي