| Conditions | 2 |
| Paths | 2 |
| Total Lines | 67 |
| Code Lines | 56 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 62 | function parser(): ParserInterface |
||
| 63 | { |
||
| 64 | static $instance = null; |
||
| 65 | |||
| 66 | if (null === $instance) { |
||
| 67 | $builders = [ |
||
| 68 | // Standard |
||
| 69 | new ArgumentBuilder(), |
||
| 70 | new BooleanBuilder(), |
||
| 71 | new DirectiveBuilder(), |
||
| 72 | new DocumentBuilder(), |
||
| 73 | new EnumBuilder(), |
||
| 74 | new FieldBuilder(), |
||
| 75 | new FloatBuilder(), |
||
| 76 | new FragmentDefinitionBuilder(), |
||
| 77 | new FragmentSpreadBuilder(), |
||
| 78 | new InlineFragmentBuilder(), |
||
| 79 | new IntBuilder(), |
||
| 80 | new ListBuilder(), |
||
| 81 | new ListTypeBuilder(), |
||
| 82 | new NameBuilder(), |
||
| 83 | new NamedTypeBuilder(), |
||
| 84 | new NonNullTypeBuilder(), |
||
| 85 | new NullBuilder(), |
||
| 86 | new ObjectBuilder(), |
||
| 87 | new ObjectFieldBuilder(), |
||
| 88 | new OperationDefinitionBuilder(), |
||
| 89 | new SelectionSetBuilder(), |
||
| 90 | new StringBuilder(), |
||
| 91 | new VariableBuilder(), |
||
| 92 | new VariableDefinitionBuilder(), |
||
| 93 | // Schema Definition Language (SDL) |
||
| 94 | new FieldDefinitionBuilder(), |
||
| 95 | new ObjectTypeDefinitionBuilder(), |
||
| 96 | new ObjectTypeExtensionBuilder(), |
||
| 97 | new EnumTypeDefinitionBuilder(), |
||
| 98 | new EnumValueDefinitionBuilder(), |
||
| 99 | new InterfaceTypeDefinitionBuilder(), |
||
| 100 | new InputValueDefinitionBuilder(), |
||
| 101 | new UnionTypeDefinitionBuilder(), |
||
| 102 | new ScalarTypeDefinitionBuilder(), |
||
| 103 | new InputObjectTypeDefinitionBuilder(), |
||
| 104 | ]; |
||
| 105 | |||
| 106 | $readers = [ |
||
| 107 | new AmpReader(), |
||
| 108 | new AtReader(), |
||
| 109 | new BangReader(), |
||
| 110 | new BlockStringReader(), |
||
| 111 | new BraceReader(), |
||
| 112 | new BracketReader(), |
||
| 113 | new ColonReader(), |
||
| 114 | new CommentReader(), |
||
| 115 | new DollarReader(), |
||
| 116 | new EqualsReader(), |
||
| 117 | new NameReader(), |
||
| 118 | new NumberReader(), |
||
| 119 | new ParenthesisReader(), |
||
| 120 | new PipeReader(), |
||
| 121 | new SpreadReader(), |
||
| 122 | new StringReader(), |
||
| 123 | ]; |
||
| 124 | |||
| 125 | $instance = new ASTParser($builders, $readers); |
||
| 126 | } |
||
| 127 | |||
| 128 | return $instance; |
||
| 129 | } |
||
| 169 |