-
Notifications
You must be signed in to change notification settings - Fork 362
Home
Getting Started
Start here for getting Phan installed and running on your code base.
Annotating Your Source Code
This document describes how to add types to your code via doc block annotations. (e.g. @param
, @return
, @var
, @suppress
)
About Union Types
An explanation of what union types are and how to use them.
Tutorial for Analyzing a Large Sloppy Code Base
A tutorial providing some guidance on how to get started analyzing your code and get to a place where static analysis is actually useful.
Incrementally Strengthening Analysis
A guide to how Phan can be configured to slowly increase the strength of the analysis.
- Adding Phan plugins to your project can strengthen analysis in other ways.
Issue Types Caught by Phan
An enumeration of error types, examples that cause them and tips on how to resolve the issues
Phan Config Settings
Documents Phan's config settings. These affect the strictness of analysis, what files are analyzed, etc.
Typing Parameters
A guide to handling interactions between Phan's @param
types and declared parameter types or type-hints.
How To Use Stubs
Details on setting up a stubs
directory for making code available to Phan that isn't loaded on its runtime.
Speeding up Phan Analysis
A list of suggestions that may help speed up Phan analysis on your project.
Generic Types
Phan has primordial support for generic (templated) classes via type the annotations @template
and @inherits
and via a type syntax of the form MyClass<T>
that may be referenced within doc-block annotations.
Editor Support
This article explains how to set up support for Phan in an editor/IDE.
Vim, Emacs, and VS Code have plugins/extensions written for them. This article also explains how to create plugins/extensions for an editor.
Using Phan Daemon Mode
Daemon mode lets you request Phan results from your editor or IDE to detect Phan issues for a single file, with much lower latency than a full analysis.
Frequently Asked Questions
A document with answers to common issues encountered when getting started with Phan.
Different Issue Sets On Different Numbers of CPUs
A document describing issues that may be seen when running Phan on more than one core, and workarounds.
What Static Analysis Lets You Do
A document describing various benefits of running a static analyzer on your code.
Developer's Guide To Phan
A guide for developers looking to hack on Phan.
Writing Plugins for Phan
A guide to writing one-off plugins for Phan.
How To Create a Phan Release
Follow this checklist when creating a new release of Phan.
-
Getting Started
-
Annotating Your Source Code
-
About Union Types
-
Tutorial for Analyzing a Large Sloppy Code Base
-
Incrementally Strengthening Analysis
-
Issue Types Caught by Phan
-
Phan Config Settings
-
Typing Parameters
-
How To Use Stubs
-
Speeding up Phan Analysis