ordered_imports.rst 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. ========================
  2. Rule ``ordered_imports``
  3. ========================
  4. Ordering ``use`` statements.
  5. Configuration
  6. -------------
  7. ``sort_algorithm``
  8. ~~~~~~~~~~~~~~~~~~
  9. whether the statements should be sorted alphabetically or by length, or not
  10. sorted
  11. Allowed values: ``'alpha'``, ``'length'``, ``'none'``
  12. Default value: ``'alpha'``
  13. ``imports_order``
  14. ~~~~~~~~~~~~~~~~~
  15. Defines the order of import types.
  16. Allowed types: ``array``, ``null``
  17. Default value: ``null``
  18. Examples
  19. --------
  20. Example #1
  21. ~~~~~~~~~~
  22. *Default* configuration.
  23. .. code-block:: diff
  24. --- Original
  25. +++ New
  26. @@ -1,2 +1,2 @@
  27. <?php
  28. -use Z; use A;
  29. +use A; use Z;
  30. Example #2
  31. ~~~~~~~~~~
  32. With configuration: ``['sort_algorithm' => 'length']``.
  33. .. code-block:: diff
  34. --- Original
  35. +++ New
  36. @@ -1,5 +1,5 @@
  37. <?php
  38. +use Bar;
  39. +use Acme;
  40. +use Bar1;
  41. use Acme\Bar;
  42. -use Bar1;
  43. -use Acme;
  44. -use Bar;
  45. Example #3
  46. ~~~~~~~~~~
  47. *Default* configuration.
  48. .. code-block:: diff
  49. --- Original
  50. +++ New
  51. @@ -1,4 +1,4 @@
  52. <?php
  53. +use AAA;
  54. +use const AAB;
  55. use function AAC;
  56. -use const AAB;
  57. -use AAA;
  58. Example #4
  59. ~~~~~~~~~~
  60. With configuration: ``['sort_algorithm' => 'length', 'imports_order' => ['const', 'class', 'function']]``.
  61. .. code-block:: diff
  62. --- Original
  63. +++ New
  64. @@ -1,10 +1,10 @@
  65. <?php
  66. +use const BBB;
  67. use const AAAA;
  68. -use const BBB;
  69. +use AAC;
  70. use Bar;
  71. -use AAC;
  72. use Acme;
  73. +use function DDD;
  74. use function CCC\AA;
  75. -use function DDD;
  76. Example #5
  77. ~~~~~~~~~~
  78. With configuration: ``['sort_algorithm' => 'alpha', 'imports_order' => ['const', 'class', 'function']]``.
  79. .. code-block:: diff
  80. --- Original
  81. +++ New
  82. @@ -1,10 +1,10 @@
  83. <?php
  84. +use const AAAA;
  85. use const BBB;
  86. -use const AAAA;
  87. +use AAC;
  88. use Acme;
  89. -use AAC;
  90. use Bar;
  91. +use function CCC\AA;
  92. use function DDD;
  93. -use function CCC\AA;
  94. Example #6
  95. ~~~~~~~~~~
  96. With configuration: ``['sort_algorithm' => 'none', 'imports_order' => ['const', 'class', 'function']]``.
  97. .. code-block:: diff
  98. --- Original
  99. +++ New
  100. @@ -2,9 +2,9 @@
  101. use const BBB;
  102. use const AAAA;
  103. -use function DDD;
  104. -use function CCC\AA;
  105. -
  106. use Acme;
  107. use AAC;
  108. +
  109. use Bar;
  110. +use function DDD;
  111. +use function CCC\AA;
  112. Rule sets
  113. ---------
  114. The rule is part of the following rule sets:
  115. @PhpCsFixer
  116. Using the `@PhpCsFixer <./../../ruleSets/PhpCsFixer.rst>`_ rule set will enable the ``ordered_imports`` rule with the default config.
  117. @Symfony
  118. Using the `@Symfony <./../../ruleSets/Symfony.rst>`_ rule set will enable the ``ordered_imports`` rule with the default config.