File: upgrade-to-v6.rst

package info (click to toggle)
php-phpdocumentor-reflection-docblock 6.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 1,400 kB
  • sloc: php: 7,928; xml: 113; makefile: 57
file content (51 lines) | stat: -rw-r--r-- 2,299 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Upgrade Guide to v6
===================

This guide helps you upgrade your project to ReflectionDocBlock v6. It covers breaking changes, removals, new features, and migration tips to ensure a smooth transition.

Supported PHP Versions
----------------------
- v6 requires PHP 7.4 or higher (PHP 8+ recommended).

Breaking Changes & Removals
---------------------------
- **Removal of `::create` static method for type-based tags**
    - The `create` static method has been removed from tag classes that represent type definitions, such as `@param` and `@return` tags. Most users will not be affected, as these methods are rarely used directly. The deprecation notice for these methods was present throughout v5.
    - **Migration:**
        - If you are instantiating these tag objects directly, use the tag factory or the recommended construction pattern instead.
        - Before:
            .. code-block:: php

               $tag = Param::create($body);
        - After:
            .. code-block:: php

               $factory = \phpDocumentor\Reflection\DocBlock\Tags\Factory\StandardTagFactory::createInstance();
               $tag = $factory->create('@param int $foo');

- **StandardTagFactory instantiation**
    - `StandardTagFactory` must now be created via `createInstance()`.
    - **Migration:**
        - Before:
            .. code-block:: php

               $factory = new StandardTagFactory();
        - After:
            .. code-block:: php

               $factory = StandardTagFactory::createInstance();

- **Removed methods**
    - `Method::getArguments` has been removed.
    - `Method::create` has been removed.
    - **Migration:**
        - Refactor code to use the new API for method arguments and creation.

TypeResolver Upgrade
-------------------
- **Generics Support**: The TypeResolver component now supports generics,
    which replaces the previous `Collection` type handling. This allows
    for more accurate and expressive type definitions, such as `MyClass<int, MyClass>` or `Collection<MyClass>`,
    and improves compatibility with modern PHPDoc standards.

- For more details and advanced migration scenarios, consult the `TypeResolver upgrade guide <https://docs.phpdoc.org/components/type-resolver/guides/upgrade-v1-to-v2.html#upgrade-to-version-2>`_