Comments (4)
The Drupal path is determined based on the current autoloader path:
$autoload_file = $GLOBALS['composerAutoloadFile'];
/** @noinspection PhpIncludeInspection */
$this->autoloader = require $autoload_file;
if (!$this->autoloader instanceof ClassLoader) {
throw new \InvalidArgumentException('Unable to determine the Composer class loader for Drupal');
}
I'm not sure how PHPStan works in a Docker image to properly load the Composer autoloader.
from phpstan-drupal.
Okay, the way it works is that it checks and loads a Composer autoloader in the current working directory, and then its own:
$autoloaderInWorkingDirectory = getcwd() . '/vendor/autoload.php';
if (is_file($autoloaderInWorkingDirectory)) {
require_once $autoloaderInWorkingDirectory;
}
$composerAutoloadFile = __DIR__ . '/../vendor/autoload.php';
if (!is_file($composerAutoloadFile)) {
$composerAutoloadFile = __DIR__ . '/../../../autoload.php';
}
require_once $composerAutoloadFile;
from phpstan-drupal.
The global autoloaderInWorkingDirectory
is available, which is more correct than composerAutoloadFile
. The latter is phpstan's.
from phpstan-drupal.
Need to open a fix for:
$autoload_file = $GLOBALS['autoloaderInWorkingDirectory'];
from phpstan-drupal.
Related Issues (20)
- No reporting of missing accessCheck() for \Drupal::entityQueryAggregate(entity_type_id)
- Report Drush 12 deprecations with command classes and drush.services.yml file HOT 12
- Detect deprecated Drupal\Core\Routing\RouteSubscriberBase::getSubscribedEvents(): array HOT 4
- Detect storage handlers injection and storage instantiation in constructors
- «Undefined array key» when using autowiring with decorator
- Make ^10.0 the default constraint for Drupal core, update from ^9.0
- Move data samples out of phpstan_fixtures and into test data files
- Add PHP 8.3 tests
- Form should not have private properties HOT 2
- Simplify defining test namespaces HOT 1
- Have AccessResult forbiddenIf and allowedIf perform truthy checks HOT 5
- LockBackendInterface::acquire() is impure HOT 2
- ModuleHandler->loadInclude() call is not being processed HOT 2
- Update `bleedingEdge.neon` to include new rules
- Support turning off @internal check HOT 2
- New accessibility requirement requires title attributes for most form elements.
- Validate FormBuilderInterface::getForm() arguments by inspecting form class HOT 1
- New rule for checking "static create()" method in controller
- Register dynamic services from DrupalKernel::attachSynthetic
- Determine return value from `\Drupal\Core\Config\Config::get` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phpstan-drupal.