diff --git a/7.2/404.html b/7.2/404.html new file mode 100644 index 00000000..53bc3777 --- /dev/null +++ b/7.2/404.html @@ -0,0 +1,584 @@ + + + +
+ + + + + + + + + + + + + + + + +This guide is dedicated to all PHP developers that want to learn more about each component.
+As application is following the Domain-driven design (DDD) principle, the directory structure match this one.
+src/
+├── Application
+├── Infrastructure
+└── Presentation
+
The CompatibilityAnalyser
has the responsibility to collects different metrics to find out the minimum version
+and the extensions required for a piece of code to run.
To do so, we mainly use the PhpParser
, DataCollector
and Sniffs
.
The ConfigResolver
component is in charge to handle all arguments/options provided by an instance of Symfony\Component\Console\Input\InputInterface
You will find usage into the Bartlett\CompatInfo\Application\Kernel\ConsoleKernel::createFromInput
function.
This element is in charge to store data (rule id, php and extension versions found) for later produce results by Extension/Reporter
.
CompatInfo
use the Symfony Event-Dispatcher component to avoid tight coupling
+between a set of interacting objects.
Bartlett\CompatInfo\Application\Event\Dispatcher\EventDispatcher
is in charge to dispatch all events
+to other elements (extensions: logger, progressbar and reporters) of this application.
This element is the main entry point of the bin/phpcompatinfo
command line runner.
We use a PHP Parser to parse source code into an abstract syntax tree (AST).
+Each Sniffs
(rules) identified by a fingerprint (AST nodes) will then be stored into the DataCollector
.
Each one has responsibility to detect a specific PHP feature.
+ +Both layers Application and Presentation talk to each other with two buses (one for Queries, and another one for Commands).
+We used the use the Symfony Messenger component to realize these actions.
+ +The Command Line Runner of CompatInfo
is a Symfony Console Application with many Command.
db:*
commands are inherited directly from CompatInfoDB
analyser:run
is the main command to parse a datasource and print results of analysisrule:list
is a command to identify each rule found during analysis (id, description, sniff used)«abstract» AbstractSniffAnalyser | |||||||||
|
«interface» SniffAnalyserInterface | ||
|
«interface» SniffVisitorInterface | ||
|
«interface» AnalyserInterface | |||||||
|
CompatibilityAnalyser | |||||||||||||
| |||||||||||||
|
«interface» NodeVisitor | ||||
|
ReferenceCollection | ||
|
«interface» ReferenceCollectionInterface | |
|
SniffCollection | ||
|
«interface» SniffCollectionInterface |
«abstract» AbstractLazyCollection | |||||||||||||||||||||||||||||||||
|
«interface» Collection | ||||||||
|
«interface» ReadableCollection | |||||||||||||||||||||
|
«interface» Countable | |
|
«interface» IteratorAggregate | |
|
«interface» Traversable |
«interface» ArrayAccess | ||||
|
Collecting | ||||
|
Throwing | ||||
|
ArrayCollection | |||||||||||||||||||||||||||||||||||
|
«interface» Collection | ||||||||
|
«interface» ReadableCollection | |||||||||||||||||||||
|
«interface» Selectable | |
|
«interface» Countable | |
|
«interface» IteratorAggregate | |
|
«interface» Traversable |
«interface» ArrayAccess | ||||
|
«interface» Stringable | |
|
«interface» ErrorHandler | |||
|
«abstract» DataCollector | ||||||||||
|
«interface» DataCollectorInterface | |||||||||
|
RuleUpdater |
VersionDataCollector | ||||||||||||||||
|
VersionUpdater |
«interface» ErrorHandler | |
|
NodeNormalizer | |||
|
«interface» NormalizerInterface | ||
|
EventDispatcher | ||
|
EventDispatcher | |||||||||
|
«interface» EventDispatcherInterface | |||||||
|
GenericEvent | ||||||||||||
|
«interface» EventDispatcherInterface | |
|
Event | ||
|
«interface» EventDispatcherInterface | |
|
«interface» StoppableEventInterface | |
|
AfterAnalysisEvent |
«interface» AfterFileAnalysisInterface | |
|
AfterFileAnalysisEvent |
AfterInitializeSniffEvent |
AfterProcessNodeEvent |
«interface» AfterProcessNodeInterface | |
|
AfterProcessSniffEvent |
«interface» AfterProcessSniffInterface | |
|
«interface» AfterTearDownSniffInterface | |
|
AfterTraverseAstEvent |
«interface» AfterTraverseAstInterface | |
|
BeforeAnalysisEvent |
«interface» BeforeAnalysisInterface | |
|
BeforeFileAnalysisEvent |
«interface» BeforeFileAnalysisInterface | |
|
BeforeInitializeSniffEvent |
BeforeProcessNodeEvent |
«interface» BeforeProcessNodeInterface | |
|
BeforeProcessSniffEvent |
«interface» BeforeProcessSniffInterface | |
|
«interface» BeforeSetupSniffInterface | |
|
BeforeTraverseAstEvent |
«interface» BeforeTraverseAstInterface | |
|
ErrorEvent |
«interface» ArrayAccess | ||||
|
«interface» IteratorAggregate | |
|
«interface» Traversable |
ConsoleReporter | |
| |
|
«interface» FormatterInterface | ||
|
DumpReporter | |
| |
|
JsonReporter | |
| |
|
SarifReporter | |||||
| |||||
|
«abstract» Reporter | ||||
| ||||
|
«interface» ExtensionInterface | |
|
«interface» ExtensionLoaderInterface | |||
|
FactoryExtensionLoader | ||||
|
Logger | |||||||||||||||
|
ProgressBar | |||||||
|
«interface» AfterAnalysisInterface | |
|
«interface» AfterFileAnalysisInterface | |
|
«interface» BeforeFileAnalysisInterface | |
|
«interface» BeforeProcessNodeInterface | |
|
«interface» AfterProcessNodeInterface | |
|
«interface» BeforeSetupSniffInterface | |
|
«interface» AfterTearDownSniffInterface | |
|
«interface» BeforeProcessSniffInterface | |
|
«interface» AfterProcessSniffInterface | |
|
«interface» BeforeAnalysisInterface | |
|
«interface» EventSubscriberInterface | |
|
DefaultLogger | |||||
|
«abstract» AbstractLogger | |||||||||
|
«interface» LoggerInterface | |||||||||
|
ClassFullyQualified | |
|
InterfaceFullyQualified | |
|
FullyQualified | ||||||
|
Name | |||||||||||||||||
| |||||||||||||||||
|
«abstract» NodeAbstract | |||||||||||||||||
|
«interface» Node | |||||||||||||||||
|
NodeVisitorAbstract | ||||
|
«interface» NodeVisitor | ||||
|
«interface» JsonSerializable | |
|
«interface» Stringable | |
|
FilterVisitor | ||
|
«interface» NodeVisitor | |
|
NameResolverVisitor | ||
|
ParentContextVisitor | ||||
|
VersionResolverVisitor | ||
|
FindingVisitor | ||||
|
NameResolver | ||||
|
Parser | ||
|
«interface» PolyfillInterface | ||
|
SymfonyCtype | ||
|
«abstract» AbstractPolyfillInstalled | ||
|
SymfonyIconv | ||
|
SymfonyMbstring | ||
|
SymfonyPhp70 | ||
|
SymfonyPhp71 | ||
|
SymfonyPhp72 | ||
|
SymfonyPhp73 | ||
|
SymfonyPhp74 | ||
|
SymfonyPhp80 | ||
|
SymfonyPhp81 | ||
|
«interface» CollectorInterface | |||||
|
CollectorTrait | |||||
|
Profile | |||||||
|
Profiler | ||||||||
|
«interface» ProfilerInterface | ||
|
GetCompatibilityHandler | ||
|
GetCompatibilityQuery | |||||
|
«interface» QueryHandlerInterface |
«interface» QueryInterface |
«interface» QueryBusInterface | |
|
DiagnoseHandler | ||
|
DiagnoseQuery | ||
|
SourceProvider | |
|
ArrayDereferencingSyntaxSniff | ||
| ||
|
ShortArraySyntaxSniff | |||
| |||
|
«abstract» SniffAbstract | |||||||||||
|
«interface» SniffInterface | ||||||||
|
KeywordBag | |||||||||
|
NodeVisitorAbstract | ||||
|
«interface» NodeVisitor | ||||
|
OverrideAttributeSniff | ||
| ||
|
AnonymousClassSniff | ||
| ||
|
ClassMemberAccessSniff | ||
| ||
|
MagicMethodsSniff | |||
| |||
|
MethodDeclarationSniff | ||
| ||
|
PropertyDeclarationSniff | ||
| ||
|
TypedPropertySniff | ||
| ||
|
ClassConstantSniff | ||
| ||
|
ConstSyntaxSniff | ||
| ||
|
DynamicClassConstantFetchSniff | ||
| ||
|
MagicClassConstantSniff | ||
| ||
|
TypedClassConstantSniff | ||
| ||
|
DeclareSniff | |||
|
GotoSniff | ||
| ||
|
ClassExprSyntaxSniff | ||
| ||
|
ConditionalCodeSniff | ||
|
EmptySniff | ||
| ||
|
StaticVarInitializerSniff | ||
| ||
|
SameSiteCookieSniff | ||
| ||
|
ClosureSniff | ||
| ||
|
ParamTypeDeclarationSniff | |||
|
ReturnTypeDeclarationSniff | ||||
| ||||
|
GeneratorSniff | ||
| ||
|
ReservedSniff | |||
|
BinaryNumberFormatSniff | |||
| |||
|
CombinedComparisonOperatorSniff | ||
| ||
|
NullCoalesceOperatorSniff | ||
| ||
|
PowOperatorSniff | ||
| ||
|
ShortTernaryOperatorSniff | ||
| ||
|
CryptStringSniff | |||
| |||
|
UseConstFunctionSniff | ||
| ||
|
UseTraitSniff | ||
| ||
|
«interface» IteratorAggregate | |
|
«interface» Traversable |
«interface» Countable | |
|
MessengerQueryBus | ||
|
«interface» QueryBusInterface | |
|
AnalyserCommand | |
| |
«abstract» AbstractCommand | |
|
«interface» CommandInterface |
DiagnoseCommand | |
| |
|
Command | ||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||
|
Input |
ArgvInput | |||||
|
«abstract» Input | ||||||||||||||||
|
«interface» StreamableInputInterface | ||
|
«interface» InputInterface | |||||||||||||||
|
«interface» Stringable | |
|
Output |
ConsoleOutput | |||||||
|
StreamOutput | ||
|
«abstract» Output | |||||||||||||
| |||||||||||||
|
«interface» OutputInterface | ||||||||||||
| ||||||||||||
|
«interface» ConsoleOutputInterface | ||||||||
| ||||||||
|
Application | ||||||||
| ||||||||
|
«interface» ApplicationInterface | ||||||
| ||||||
|
«interface» CommandLoaderInterface |
FactoryCommandLoader | |
|
Style | |||
|
«interface» StyleInterface | ||||||||
| ||||||||
|
Application | ||||||||||||||||||||||||||||||||||||||
|
«interface» ResetInterface | |
|
«interface» CommandLoaderInterface | |||
|
FactoryCommandLoader | ||||
|
SymfonyStyle | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
|
«abstract» OutputStyle | |||||||||||||||
| |||||||||||||||
|
«interface» StyleInterface | ||||||||||||||||||
|