Hướng dẫn the phpstan binary was not found in the default vendor directory based on the location - không tìm thấy tệp nhị phân phpstan trong thư mục nhà cung cấp mặc định dựa trên vị trí

HI TEAM,

Tôi đã thêm mô -đun trạng thái nâng cấp thông qua trình soạn thảo vào một trong các trang web của tôi.

Nhận lỗi sau khi bật mô-đun-"nhị phân PHPSTAN không được tìm thấy trong thư mục nhà cung cấp mặc định dựa trên vị trí của /var/www/html/website-path/composer.json. Bạn có thể cần cấu hình Trong composer.json. Xem //getcomposer.org/doc/06-config.md#vendor-dir. Đã cố gắng:/var/www/html/trang web-path/nhà cung cấp/bin/phpstan. Điều này được giải quyết. "
"The PHPStan binary was not found in the default vendor directory based on the location of /var/www/html/website-path/composer.json. You may need to configure a vendor-dir in composer.json. See //getcomposer.org/doc/06-config.md#vendor-dir. Attempted: /var/www/html/website-paths/vendor/bin/phpstan. Scanning is not possible until this is resolved."

Tệp Composer.json có mã sau.

 "require-dev": {
        "phpstan/phpstan": "^1.2",
        "phpunit/phpunit": "^9.5"
    }
}

Cảm ơn Divya
Divya

Problem/Motivation

error:

Đường dẫn nhị phân của nhà cung cấp không chính xác hoặc PHPSTAN không được cài đặt ở đó. Bạn đã cài đặt trạng thái nâng cấp với Nhà soạn nhạc? Đã kiểm tra:/var/www/html/docroot/nhà cung cấp/bin/phpstan

Các bước để sinh sản

  • Sử dụng DDEV Multisite
  • Lõi 8.9.3
  • Trạng thái nâng cấp được cài đặt bằng Trình soạn thảo yêu cầu 'Drupal/nâng cấp_status:^2.0'
  • nâng cấp_status mô -đun đã được bật
  • Trên trang Trạng thái nâng cấp:/Quản trị viên/Báo cáo/Nâng cấp trạng thái, có một cảnh báo:

Đường dẫn nhị phân của nhà cung cấp không chính xác hoặc PHPSTAN không được cài đặt ở đó. Bạn đã cài đặt trạng thái nâng cấp với Nhà soạn nhạc? Đã kiểm tra:/var/www/html/docroot/nhà cung cấp/bin/phpstan

Các bước để sinh sản

Sử dụng DDEV Multisite

Lõi 8.9.3

Trạng thái nâng cấp được cài đặt bằng Trình soạn thảo yêu cầu 'Drupal/nâng cấp_status:^2.0'

nâng cấp_status mô -đun đã được bật

Trên trang Trạng thái nâng cấp:/Quản trị viên/Báo cáo/Nâng cấp trạng thái, có một cảnh báo:

Báo cáo lỗi

Với cài đặt mới và chỉ với điều này yêu cầu trong Composer.json

    "require": {
        "php": "^7.1",
        "symfony/console": "^3.4 | ^4.0"
    },
    "require-dev": {
        "phpstan/phpstan-src": "^0.12"
    }

Nếu chạy lệnh này từ shell

./vendor/bin/phpstan analyse src/

Tôi có được đầu ra này

Warning: require_once[/var/www/html/vendor/phpstan/phpstan-src/bin/../vendor/jetbrains/phpstorm-stubs/PhpStormStubsMap.php]: failed to open stream: No such file or directory in /var/www/html/vendor/phpstan/phpstan-src/bin/phpstan on line 58

Call Stack:
    0.0049     389360   1. {main}[] /var/www/html/vendor/phpstan/phpstan-src/bin/phpstan:0
    0.0506     389728   2. {closure:/var/www/html/vendor/phpstan/phpstan-src/bin/phpstan:8-77}[] /var/www/html/vendor/phpstan/phpstan-src/bin/phpstan:77

Vấn đề dường như trong sai đường của con đường yêu cầu, vì vậy thay vì

require_once __DIR__ . '/../vendor/jetbrains/phpstorm-stubs/PhpStormStubsMap.php';

Tôi nghĩ rằng đó sẽ là

require_once __DIR__ . '/../../../jetbrains/phpstorm-stubs/PhpStormStubsMap.php';

Điều này cho công việc tốt

Thực đơn

Phpstan yêu cầu PHP> = 7.2. Bạn phải chạy nó trong môi trường với PHP 7.x nhưng mã thực tế không phải sử dụng các tính năng PHP 7.x. [Mã được viết cho Php 5.6 trở lên có thể chạy trên 7.x hầu hết không được sửa đổi.]

Phpstan hoạt động tốt nhất với mã hướng đối tượng hiện đại. Mã của bạn càng được gõ mạnh mẽ, bạn càng cung cấp cho Phpstan để làm việc.

Mã được chú thích và kiểu chữ đúng cách [thuộc tính lớp, đối số chức năng và phương thức, loại trả về] không chỉ giúp các công cụ phân tích tĩnh mà còn những người khác làm việc với mã để hiểu nó.

Cài đặt #

Để bắt đầu thực hiện phân tích trên mã của bạn, yêu cầu PHPStan trong trình soạn thảo:

composer require --dev phpstan/phpstan

Nhà soạn nhạc sẽ cài đặt thực thi Phpstan, trong bin-dir mặc định là vendor/bin.

Bạn cũng có thể tải xuống Phar mới nhất và chỉ sử dụng nó. Nhưng không có nhà soạn nhạc, bạn đã giành chiến thắng để có thể cài đặt và sử dụng các tiện ích mở rộng PHPSTAN.

Đi đến đây nếu bạn muốn sử dụng Phpstan trong Docker.

Chạy đầu tiên #

Để cho Phpstan phân tích cơ sở mã của bạn, bạn phải sử dụng lệnh

    "require": {
        "php": "^7.1",
        "symfony/console": "^3.4 | ^4.0"
    },
    "require-dev": {
        "phpstan/phpstan-src": "^0.12"
    }
0 và trỏ nó đến các thư mục phù hợp.

Vì vậy, ví dụ, nếu bạn có các lớp học của mình trong thư mục

    "require": {
        "php": "^7.1",
        "symfony/console": "^3.4 | ^4.0"
    },
    "require-dev": {
        "phpstan/phpstan-src": "^0.12"
    }
1 và
    "require": {
        "php": "^7.1",
        "symfony/console": "^3.4 | ^4.0"
    },
    "require-dev": {
        "phpstan/phpstan-src": "^0.12"
    }
2, bạn có thể chạy phpstan như thế này:

vendor/bin/phpstan analyse src tests

Tìm hiểu thêm về các tùy chọn dòng lệnh »

Phpstan có thể sẽ tìm thấy một số lỗi, nhưng đừng lo lắng, mã của bạn có thể ổn. Lỗi tìm thấy trong lần chạy đầu tiên có xu hướng là:

  • Các đối số bổ sung được truyền cho các hàm [e. G. Hàm yêu cầu hai đối số, mã chuyển ba]
  • Các đối số bổ sung được chuyển cho các hàm in/sprintf [e. G. Chuỗi định dạng chứa một trình giữ chỗ, mã chuyển hai giá trị để thay thế]
  • Lỗi rõ ràng trong mã chết
  • Các biểu tượng chưa biết - Giống như lớp học không tìm thấy. Xem Khám phá các biểu tượng để biết thêm chi tiết.

Theo mặc định, PHPSTAN chỉ chạy các kiểm tra cơ bản nhất. Đi đến mức quy tắc để tìm hiểu làm thế nào để bật kiểm tra chặt chẽ hơn.

Tìm hiểu về tất cả các tùy chọn cấu hình trong tham chiếu cấu hình.

Chỉnh sửa trang này trên github

Bài Viết Liên Quan

Chủ Đề