Closed tyler36 closed 9 years ago
gulp-phpcs
is just a wrapper around PHPCS utility. So the first thing you should to try is run PHPCS directly via CLI. Is the problem persists?
I tried your suggestion.
phpcs ..\..\gulp-tasks
results in various 'errors' in several files
FILE: I:\Lavarel\testserver\gulp-tasks\gulp-tasks\sassdoc.js
----------------------------------------------------------------------
FOUND 6 ERRORS AFFECTING 6 LINES
----------------------------------------------------------------------
1 | ERROR | [x] End of line character is invalid; expected "\n" but
| | found "\r\n"
2 | ERROR | [ ] Doc comment short description must start with a
| | capital letter
----------------------------------------------------------------------
PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
however
gulp phpcs
generates bad output
[09:09:39] PHP Code Sniffer found a problem in I:\Lavarel\testserver\gulp-tasks\gulp-tasks\sassdoc.js
Message:
Error: Command failed: '.' �́A�����R�}���h�܂��͊O���R�}���h�A
�����\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF�������Ă��܂����B
[09:09:39] Finished 'phpcs' after 928 ms
Well, I cannot reproduce the issue you are talking about. Is the project you're working on an open-source one?
Sorry for the delay. Thanks for taking the time to help me with this.
I have created a bitbucket git repo: git@bitbucket.org: shendrix_IQ/test-gulp-phpcs.git
This was created with:
"{ "require-dev": { "squizlabs/php_codesniffer": "2.*" } }"
It's probably something stupid I'm doing wrong, but it's really annoying me trying to get it working. Any help is greatly appreciated. Thanks again for your time
First of all make sure you've installed gulp itself with npm install gulp --save-dev
command.
Next, your gulp file is invalid. Here is the correct one:
var gulp = require('gulp');
var phpcs = require('gulp-phpcs');
gulp.task('default', function () {
return gulp.src(['src/**/*.php'])
// Validate files using PHP Code Sniffer
.pipe(phpcs({
bin: 'vendor/bin/phpcs',
standard: 'PSR2',
warningSeverity: 0
}))
// Log all problems that was found
.pipe(phpcs.reporter('log'));
});
After all the corrected example works fine for me, so I don't see any problems with gulp-phpcs
.
Thank you for the advice, unfortunately it is still not working for me I ran the npm command as you said and replaced my gulp file with the correct one.
I get the following
[09:18:45] PHP Code Sniffer found a problem in I:\gulp-phpcs\src\test.php
Message:
Error: Command failed: 'vendor' �́A�����R�}���h�܂��͊O���R�}���h�A
�����\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF�������Ă��܂����B
Thanks for you help. I guess I'll just ran the command manually.
CLOSE: unable to reproduce
One more guess: did not you try to specify full path to composer's executable with windows-style slashes?
OK ... been working on this for a while now.
The following works in Homestead 2, but not Win7
.pipe(phpcs({
bin: './vendor/bin/phpcs',
The following works in Win7, but not Homestead
.pipe(phpcs({
bin: '.\\vendor\\bin\\phpcs',
Solution 1: I first tried a Windows TEST to my gulpfile.js. But it felt a little hack-y and not very dynamic.
var isWin = /^win/.test(process.platform);
var phpcsBIN = (isWin) ? '.\\vendor\\bin\\phpcs' : './vendor/bin/phpcs'
gulp.task('default', function () {
return gulp.src(['src/**/*.php'])
.pipe(phpcs({
bin: phpcsBIN,
...
Solution 2: I stumbled across the Nodejs PATH functions and tried that which also worked in both Link to PATH doc
var path = require('path');
gulp.task('default', function () {
return gulp.src(['src/**/*.php'])
.pipe(phpcs({
bin: path.normalize('./vendor/bin/phpcs'),
...
Solution 3: Ultimately, I forked the repo and made a pull request so that this might help others.
It seems that the best option is "solution 2" you've proposed. I've described the reason why we cannot use "solution 3" here.
Thanks for explaining.
CLOSE: Resolved
I'm trying to run gulp-phpcs but have an encoding issue with the output.
I'm running Windows 7 x64 Japanese edition. I noticed the issue when running through Phpstorm 9's terminal. I tried a different terminal wrapper (ConEmu) but with the same results.
Results show fine if SSH into a Homestead 2 environment (both via PHPstore or via ConEmu).
How can I get it to display correctly in Windows?
PS. Screenshot of displayed error - English and Japanese both display fine in the console. PHPcs error does not.