Comments (3)
Two questions:
- Is this only global/namespaced function calls or also method calls ?
- Is there a list available of the functions which throw exceptions ?
This would need to be a list-based sniff as 1) PHPCS only scans a codebase once, so can't keep track of where it has seen athrow
statement and 2) add-on plugins may use functions which throw from Free/Premium.
from yoastcs.
This would also be for both function calls as well as for methods. For methods there'd be the complexity of finding out what the object is, can PHPCS determine this if either the object is passed as a type-hinted argument, constructed in the same function or is a type-hinted property?
Although PHPCS only scanning once does make it even more complex. Ideally we'd be able to detect which functions throw exceptions, adding free and/or premium as a dev-dependency to projects which use them to ensure the code is also available there.
First thing that comes to mind would be to use https://github.com/nikic/PHP-Parser to dynamically create a list of all functions and methods that throw exceptions and use that as the basis for a sniff.
from yoastcs.
Investigate whether PHPStan (or one of the addons) or Psalm can do this. If not: close.
from yoastcs.
Related Issues (20)
- Investigate options for forbidding throwing exceptions in specific directories. HOT 3
- Add a sniff to enforce use statements are in alphabetic order (per group)
- Add sniff to disallow import use statements for functions/constants in the global namespace HOT 1
- Add sniff to enforce importing a namespace not a namespaced function/constant HOT 1
- Add sniff to detect @deprecated tags that are older than 2 major versions. HOT 1
- Add sniff to detect `get_option`/`update_option` usage with prefix in name (`wpseo_`) HOT 1
- Output escaping sniff should take into account presenters HOT 5
- Add sniff to trigger on uncached functions HOT 1
- Task: check what PHPMD checks and if there are replacement sniffs HOT 2
- Filters should always return the first argument HOT 1
- check for correct usage of constants HOT 1
- check for appropriate separation of constants HOT 3
- Trait double doesn't need a trait suffix HOT 1
- Add a sniff for console.log HOT 2
- ValidHookName: verify correct handling of single vs double quotes names HOT 1
- ValidHookName: make the `NotString` warning more actionable HOT 2
- Detect potential race condition with BrainMonkey test functions HOT 1
- Forbid the usage of session functions. HOT 2
- [3.0.0] Sniff wish list HOT 2
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 yoastcs.