From 0cce8cf246a38157507e37e0b32184b24f92a269 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Fri, 1 Dec 2023 15:14:09 +0100 Subject: [PATCH] Fixed CI --- .github/workflows/deploy.yml | 4 +- .php-cs-fixer.dist.php | 231 +++++- docs/changes/1.1.0.md | 10 +- phpunit.xml.dist | 57 +- samples/Sample_03_Image.php | 2 +- samples/Sample_05_Chart.php | 24 +- samples/Sample_06_Fill.php | 4 + samples/Sample_07_Border.php | 4 + samples/Sample_11_Shape.php | 8 +- samples/Sample_15_Background.php | 4 +- samples/Sample_Header.php | 34 +- samples/index.php | 6 +- src/PhpPresentation/AbstractShape.php | 41 +- src/PhpPresentation/Autoloader.php | 1 - src/PhpPresentation/ComparableInterface.php | 3 +- src/PhpPresentation/DocumentLayout.php | 15 +- src/PhpPresentation/DocumentProperties.php | 24 +- .../Exception/DirectoryNotFoundException.php | 1 - .../FeatureNotImplementedException.php | 1 - .../Exception/FileCopyException.php | 1 - .../Exception/FileNotFoundException.php | 1 - .../Exception/FileRemoveException.php | 1 - .../Exception/InvalidClassException.php | 1 - .../Exception/InvalidFileFormatException.php | 1 - .../Exception/InvalidParameterException.php | 1 - .../Exception/OutOfBoundsException.php | 1 - .../Exception/PhpPresentationException.php | 1 - ...ShapeContainerAlreadyAssignedException.php | 1 - .../UnauthorizedMimetypeException.php | 2 - .../Exception/UndefinedChartTypeException.php | 1 - src/PhpPresentation/GeometryCalculator.php | 1 - src/PhpPresentation/HashTable.php | 1 - src/PhpPresentation/IOFactory.php | 22 +- src/PhpPresentation/PhpPresentation.php | 11 +- .../PresentationProperties.php | 27 +- src/PhpPresentation/Reader/ODPresentation.php | 61 +- src/PhpPresentation/Reader/PowerPoint2007.php | 88 +-- src/PhpPresentation/Reader/PowerPoint97.php | 208 ++--- .../Reader/ReaderInterface.php | 1 - src/PhpPresentation/Reader/Serialized.php | 14 +- src/PhpPresentation/Shape/AbstractGraphic.php | 3 +- src/PhpPresentation/Shape/AutoShape.php | 27 +- src/PhpPresentation/Shape/Chart.php | 27 +- src/PhpPresentation/Shape/Chart/Axis.php | 132 +--- src/PhpPresentation/Shape/Chart/Gridlines.php | 1 - src/PhpPresentation/Shape/Chart/Legend.php | 9 +- src/PhpPresentation/Shape/Chart/Marker.php | 17 - src/PhpPresentation/Shape/Chart/PlotArea.php | 16 +- src/PhpPresentation/Shape/Chart/Series.php | 50 +- src/PhpPresentation/Shape/Chart/Title.php | 7 +- .../Shape/Chart/Type/AbstractType.php | 3 +- .../Shape/Chart/Type/AbstractTypeBar.php | 6 - .../Shape/Chart/Type/AbstractTypeLine.php | 11 +- .../Shape/Chart/Type/AbstractTypePie.php | 1 - src/PhpPresentation/Shape/Chart/Type/Area.php | 1 - src/PhpPresentation/Shape/Chart/Type/Bar.php | 1 - .../Shape/Chart/Type/Bar3D.php | 1 - .../Shape/Chart/Type/Doughnut.php | 1 - src/PhpPresentation/Shape/Chart/Type/Line.php | 1 - src/PhpPresentation/Shape/Chart/Type/Pie.php | 1 - .../Shape/Chart/Type/Pie3D.php | 1 - .../Shape/Chart/Type/Radar.php | 3 +- .../Shape/Chart/Type/Scatter.php | 1 - src/PhpPresentation/Shape/Chart/View3D.php | 5 +- src/PhpPresentation/Shape/Comment.php | 7 +- src/PhpPresentation/Shape/Comment/Author.php | 1 - .../Shape/Drawing/AbstractDrawingAdapter.php | 1 - src/PhpPresentation/Shape/Drawing/Base64.php | 18 +- src/PhpPresentation/Shape/Drawing/File.php | 10 +- src/PhpPresentation/Shape/Drawing/Gd.php | 9 +- src/PhpPresentation/Shape/Drawing/ZipFile.php | 14 +- src/PhpPresentation/Shape/Group.php | 13 - src/PhpPresentation/Shape/Hyperlink.php | 33 +- src/PhpPresentation/Shape/Line.php | 1 - src/PhpPresentation/Shape/Media.php | 4 +- src/PhpPresentation/Shape/Placeholder.php | 3 +- src/PhpPresentation/Shape/RichText.php | 123 +-- .../Shape/RichText/BreakElement.php | 1 - .../Shape/RichText/Paragraph.php | 52 +- src/PhpPresentation/Shape/RichText/Run.php | 5 +- .../Shape/RichText/TextElement.php | 11 +- .../Shape/RichText/TextElementInterface.php | 1 - src/PhpPresentation/Shape/Table.php | 18 - src/PhpPresentation/Shape/Table/Cell.php | 13 +- src/PhpPresentation/Shape/Table/Row.php | 21 +- .../ShapeContainerInterface.php | 1 - src/PhpPresentation/Slide.php | 20 +- .../Slide/AbstractBackground.php | 1 - src/PhpPresentation/Slide/AbstractSlide.php | 24 +- src/PhpPresentation/Slide/Animation.php | 1 - .../Slide/Background/Color.php | 5 +- .../Slide/Background/Image.php | 11 +- .../Slide/Background/SchemeColor.php | 5 +- src/PhpPresentation/Slide/Iterator.php | 15 +- src/PhpPresentation/Slide/Layout.php | 1 - src/PhpPresentation/Slide/Note.php | 11 +- src/PhpPresentation/Slide/SlideLayout.php | 13 +- src/PhpPresentation/Slide/SlideMaster.php | 29 +- src/PhpPresentation/Slide/Transition.php | 19 +- src/PhpPresentation/Style/Alignment.php | 21 +- src/PhpPresentation/Style/Border.php | 33 +- src/PhpPresentation/Style/Borders.php | 3 +- src/PhpPresentation/Style/Bullet.php | 7 +- src/PhpPresentation/Style/Color.php | 13 +- src/PhpPresentation/Style/ColorMap.php | 1 - src/PhpPresentation/Style/Fill.php | 27 +- src/PhpPresentation/Style/Font.php | 45 +- src/PhpPresentation/Style/Outline.php | 1 - src/PhpPresentation/Style/SchemeColor.php | 1 - src/PhpPresentation/Style/Shadow.php | 9 +- src/PhpPresentation/Style/TextStyle.php | 10 +- .../Writer/AbstractDecoratorWriter.php | 4 - src/PhpPresentation/Writer/AbstractWriter.php | 11 +- src/PhpPresentation/Writer/ODPresentation.php | 21 +- .../AbstractDecoratorWriter.php | 1 - .../Writer/ODPresentation/Content.php | 91 ++- .../Writer/ODPresentation/Meta.php | 8 +- .../Writer/ODPresentation/MetaInfManifest.php | 4 - .../Writer/ODPresentation/Mimetype.php | 4 - .../Writer/ODPresentation/ObjectsChart.php | 35 +- .../Writer/ODPresentation/Pictures.php | 4 - .../Writer/ODPresentation/Styles.php | 12 +- .../ODPresentation/ThumbnailsThumbnail.php | 3 +- src/PhpPresentation/Writer/PowerPoint2007.php | 18 +- .../AbstractDecoratorWriter.php | 8 +- .../Writer/PowerPoint2007/AbstractSlide.php | 101 ++- .../Writer/PowerPoint2007/CommentAuthors.php | 1 - .../Writer/PowerPoint2007/ContentTypes.php | 2 +- .../Writer/PowerPoint2007/DocPropsApp.php | 1 - .../Writer/PowerPoint2007/DocPropsCore.php | 5 +- .../Writer/PowerPoint2007/DocPropsCustom.php | 6 +- .../PowerPoint2007/DocPropsThumbnail.php | 1 - .../Writer/PowerPoint2007/PptCharts.php | 59 +- .../Writer/PowerPoint2007/PptComments.php | 7 - .../Writer/PowerPoint2007/PptMedia.php | 4 - .../Writer/PowerPoint2007/PptPresProps.php | 4 - .../Writer/PowerPoint2007/PptPresentation.php | 4 - .../Writer/PowerPoint2007/PptSlideLayouts.php | 6 +- .../Writer/PowerPoint2007/PptSlideMasters.php | 10 +- .../Writer/PowerPoint2007/PptSlides.php | 5 +- .../Writer/PowerPoint2007/PptTableProps.php | 4 - .../Writer/PowerPoint2007/PptTheme.php | 6 +- .../Writer/PowerPoint2007/PptViewProps.php | 4 - .../Writer/PowerPoint2007/Relationships.php | 4 +- src/PhpPresentation/Writer/Serialized.php | 11 +- .../Writer/WriterInterface.php | 3 +- .../Tests/AbstractShapeTest.php | 147 ++-- .../PhpPresentation/Tests/AutoloaderTest.php | 7 +- .../Tests/DocumentLayoutTest.php | 75 +- .../Tests/DocumentPropertiesTest.php | 99 ++- tests/PhpPresentation/Tests/HashTableTest.php | 43 +- tests/PhpPresentation/Tests/IOFactoryTest.php | 7 +- .../Tests/PhpPresentationTest.php | 33 +- .../Tests/PresentationPropertiesTest.php | 99 ++- .../Tests/Reader/ODPresentationTest.php | 653 ++++++++-------- .../Tests/Reader/PowerPoint2007Test.php | 711 +++++++++--------- .../Tests/Reader/PowerPoint97Test.php | 35 +- .../Tests/Reader/SerializedTest.php | 3 +- .../Tests/Shape/AbstractGraphicTest.php | 85 ++- .../Tests/Shape/AutoShapeTest.php | 27 +- .../Tests/Shape/Chart/AxisTest.php | 177 +++-- .../Tests/Shape/Chart/GridlinesTest.php | 9 +- .../Tests/Shape/Chart/LegendTest.php | 91 ++- .../Tests/Shape/Chart/MarkerTest.php | 21 +- .../Tests/Shape/Chart/PlotAreaTest.php | 47 +- .../Tests/Shape/Chart/SeriesTest.php | 171 +++-- .../Tests/Shape/Chart/TitleTest.php | 79 +- .../Tests/Shape/Chart/Type/AbstractTest.php | 27 +- .../Tests/Shape/Chart/Type/AreaTest.php | 19 +- .../Tests/Shape/Chart/Type/Bar3DTest.php | 57 +- .../Tests/Shape/Chart/Type/BarTest.php | 79 +- .../Tests/Shape/Chart/Type/DoughnutTest.php | 37 +- .../Tests/Shape/Chart/Type/LineTest.php | 25 +- .../Tests/Shape/Chart/Type/Pie3DTest.php | 25 +- .../Tests/Shape/Chart/Type/PieTest.php | 19 +- .../Tests/Shape/Chart/Type/RadarTest.php | 3 +- .../Tests/Shape/Chart/Type/ScatterTest.php | 25 +- .../Tests/Shape/Chart/View3DTest.php | 59 +- .../PhpPresentation/Tests/Shape/ChartTest.php | 51 +- .../Tests/Shape/Comment/AuthorTest.php | 25 +- .../Tests/Shape/CommentTest.php | 43 +- .../Tests/Shape/Drawing/Base64Test.php | 13 +- .../Tests/Shape/Drawing/FileTest.php | 23 +- .../Tests/Shape/Drawing/ZipFileTest.php | 5 +- .../PhpPresentation/Tests/Shape/GroupTest.php | 59 +- .../Tests/Shape/HyperlinkTest.php | 67 +- .../PhpPresentation/Tests/Shape/LineTest.php | 13 +- .../PhpPresentation/Tests/Shape/MediaTest.php | 11 +- .../Tests/Shape/PlaceholderTest.php | 20 +- .../Tests/Shape/RichText/BreakElementTest.php | 21 +- .../Tests/Shape/RichText/ParagraphTest.php | 107 ++- .../Tests/Shape/RichText/RunTest.php | 33 +- .../Tests/Shape/RichText/TextElementTest.php | 41 +- .../Tests/Shape/RichTextTest.php | 195 +++-- .../Tests/Shape/Table/CellTest.php | 105 ++- .../Tests/Shape/Table/RowTest.php | 27 +- .../PhpPresentation/Tests/Shape/TableTest.php | 21 +- .../Tests/Slide/AbstractSlideTest.php | 13 +- .../Tests/Slide/AnimationTest.php | 23 +- .../Tests/Slide/Background/ColorTest.php | 11 +- .../Tests/Slide/Background/ImageTest.php | 33 +- .../Slide/Background/SchemeColorTest.php | 11 +- .../Tests/Slide/IteratorTest.php | 15 +- .../PhpPresentation/Tests/Slide/NoteTest.php | 29 +- .../Tests/Slide/SlideLayoutTest.php | 17 +- .../Tests/Slide/SlideMasterTest.php | 41 +- .../Tests/Slide/TransitionTest.php | 61 +- tests/PhpPresentation/Tests/SlideTest.php | 91 ++- .../Tests/Style/AlignmentTest.php | 133 ++-- .../Tests/Style/BorderTest.php | 55 +- .../Tests/Style/BordersTest.php | 21 +- .../Tests/Style/BulletTest.php | 67 +- .../Tests/Style/ColorMapTest.php | 21 +- .../PhpPresentation/Tests/Style/ColorTest.php | 59 +- .../PhpPresentation/Tests/Style/FillTest.php | 43 +- .../PhpPresentation/Tests/Style/FontTest.php | 193 +++-- .../Tests/Style/OutlineTest.php | 17 +- .../Tests/Style/ShadowTest.php | 81 +- .../Tests/Style/TextStyleTest.php | 131 ++-- .../Tests/Writer/AbstractWriter.php | 3 - .../Tests/Writer/AbstractWriterTest.php | 9 +- .../Writer/ODPresentation/ContentTest.php | 62 +- .../ODPresentation/MetaInfManifestTest.php | 1 - .../Tests/Writer/ODPresentation/MetaTest.php | 8 +- .../ODPresentation/ObjectsChartTest.php | 228 ++---- .../Writer/ODPresentation/StylesTest.php | 6 +- .../Tests/Writer/ODPresentationTest.php | 15 +- .../PowerPoint2007/CommentAuthorsTest.php | 1 - .../Writer/PowerPoint2007/DocPropsAppTest.php | 1 - .../PowerPoint2007/DocPropsCoreTest.php | 1 - .../PowerPoint2007/DocPropsCustomTest.php | 1 - .../PowerPoint2007/DocPropsThumbnailTest.php | 1 - .../Writer/PowerPoint2007/PptChartsTest.php | 35 +- .../Writer/PowerPoint2007/PptCommentsTest.php | 1 - .../Writer/PowerPoint2007/PptMediaTest.php | 1 - .../PowerPoint2007/PptPresPropsTest.php | 3 +- .../PowerPoint2007/PptPresentationTest.php | 1 - .../PowerPoint2007/PptSlideMastersTest.php | 35 +- .../Writer/PowerPoint2007/PptSlidesTest.php | 51 +- .../PowerPoint2007/PptTablePropsTest.php | 1 - .../PowerPoint2007/PptViewPropsTest.php | 1 - .../PowerPoint2007/RelationshipsTest.php | 1 - .../Tests/Writer/PowerPoint2007Test.php | 17 +- .../Tests/Writer/SerializedTest.php | 9 +- .../_includes/PhpPresentationTestCase.php | 31 +- tests/bootstrap.php | 5 +- 246 files changed, 3729 insertions(+), 4244 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fcc83844ae..e188ab4f70 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -25,7 +25,7 @@ jobs: - name: Setup PHP uses: shivammathur/setup-php@v2 with: - php-version: '7.4' + php-version: '8.1' extensions: mbstring, intl, gd, xml, dom, json, fileinfo, curl, zip, iconv coverage: xdebug - name: Create directory public/coverage @@ -39,7 +39,7 @@ jobs: - name: Build Coverage Report run: XDEBUG_MODE=coverage ./vendor/bin/phpunit -c ./ --coverage-text --coverage-html ./public/coverage - name: Build Documentation - run: ./phpDocumentor.phar -d ./src -t ./public/docs + run: ./phpDocumentor.phar run -d ./src -t ./public/docs ### Deploy - name: Deploy diff --git a/.php-cs-fixer.dist.php b/.php-cs-fixer.dist.php index 532c34a425..dd9be6be69 100644 --- a/.php-cs-fixer.dist.php +++ b/.php-cs-fixer.dist.php @@ -6,36 +6,215 @@ ->setUsingCache(true) ->setRiskyAllowed(true) ->setRules([ - '@Symfony' => true, + 'align_multiline_comment' => true, 'array_indentation' => true, - 'cast_spaces' => [ - 'space' => 'single', - ], + 'array_syntax' => ['syntax' => 'short'], + 'backtick_to_shell_exec' => true, + 'binary_operator_spaces' => true, + 'blank_line_after_namespace' => true, + 'blank_line_after_opening_tag' => true, + 'blank_line_before_statement' => true, + 'braces' => true, + 'cast_spaces' => true, + 'class_attributes_separation' => ['elements' => ['method' => 'one', 'property' => 'one']], // const are often grouped with other related const + 'class_definition' => false, + 'class_keyword_remove' => false, // ::class keyword gives us better support in IDE 'combine_consecutive_issets' => true, - 'concat_space' => [ - 'spacing' => 'one', - ], - 'error_suppression' => [ - 'mute_deprecation_error' => false, - 'noise_remaining_usages' => false, - 'noise_remaining_usages_exclude' => [], - ], - 'function_to_constant' => false, + 'combine_consecutive_unsets' => true, + 'combine_nested_dirname' => true, + 'comment_to_phpdoc' => false, // interferes with annotations + 'compact_nullable_typehint' => true, + 'concat_space' => ['spacing' => 'one'], + 'constant_case' => true, + 'date_time_immutable' => false, // Break our unit tests + 'declare_equal_normalize' => true, + 'declare_strict_types' => false, // Too early to adopt strict types + 'dir_constant' => true, + 'doctrine_annotation_array_assignment' => true, + 'doctrine_annotation_braces' => true, + 'doctrine_annotation_indentation' => true, + 'doctrine_annotation_spaces' => true, + 'elseif' => true, + 'encoding' => true, + 'ereg_to_preg' => true, + 'escape_implicit_backslashes' => true, + 'explicit_indirect_variable' => false, // I feel it makes the code actually harder to read + 'explicit_string_variable' => false, // I feel it makes the code actually harder to read + 'final_class' => false, // We need non-final classes + 'final_internal_class' => true, + 'final_public_method_for_abstract_class' => false, // We need non-final methods + 'fopen_flag_order' => true, + 'fopen_flags' => true, + 'full_opening_tag' => true, + 'fully_qualified_strict_types' => true, + 'function_declaration' => true, + 'function_to_constant' => true, + 'function_typehint_space' => true, + 'general_phpdoc_annotation_remove' => ['annotations' => ['access', 'category', 'copyright', 'throws']], + 'global_namespace_import' => true, + 'header_comment' => false, // We don't use common header in all our files + 'heredoc_indentation' => false, // Requires PHP >= 7.3 + 'heredoc_to_nowdoc' => false, // Not sure about this one + 'implode_call' => true, + 'include' => true, + 'increment_style' => true, + 'indentation_type' => true, + 'is_null' => true, + 'line_ending' => true, + 'linebreak_after_opening_tag' => true, + 'list_syntax' => ['syntax' => 'short'], + 'logical_operators' => true, + 'lowercase_cast' => true, + 'lowercase_keywords' => true, + 'lowercase_static_reference' => true, + 'magic_constant_casing' => true, + 'magic_method_casing' => true, + 'mb_str_functions' => false, // No, too dangerous to change that + 'method_argument_space' => true, 'method_chaining_indentation' => true, - 'no_alias_functions' => false, - 'no_superfluous_phpdoc_tags' => false, - 'non_printable_character' => [ - 'use_escape_sequences_in_strings' => true, - ], - 'phpdoc_align' => [ - 'align' => 'left', - ], - 'phpdoc_summary' => false, - 'protected_to_private' => false, - 'self_accessor' => false, + 'modernize_types_casting' => true, + 'multiline_comment_opening_closing' => true, + 'multiline_whitespace_before_semicolons' => true, + 'native_constant_invocation' => false, // Micro optimization that look messy + 'native_function_casing' => true, + 'native_function_invocation' => false, // I suppose this would be best, but I am still unconvinced about the visual aspect of it + 'native_function_type_declaration_casing' => true, + 'new_with_braces' => true, + 'no_alias_functions' => true, + 'no_alternative_syntax' => true, + 'no_binary_string' => true, + 'no_blank_lines_after_class_opening' => true, + 'no_blank_lines_after_phpdoc' => true, + 'no_blank_lines_before_namespace' => false, // we want 1 blank line before namespace + 'no_break_comment' => true, + 'no_closing_tag' => true, + 'no_empty_comment' => true, + 'no_empty_phpdoc' => true, + 'no_empty_statement' => true, + 'no_extra_blank_lines' => true, + 'no_homoglyph_names' => true, + 'no_leading_import_slash' => true, + 'no_leading_namespace_whitespace' => true, + 'no_mixed_echo_print' => true, + 'no_multiline_whitespace_around_double_arrow' => true, + 'no_null_property_initialization' => true, + 'no_php4_constructor' => true, + 'no_short_bool_cast' => true, + 'echo_tag_syntax' => ['format' => 'long'], + 'no_singleline_whitespace_before_semicolons' => true, + 'no_spaces_after_function_name' => true, + 'no_spaces_around_offset' => true, + 'no_spaces_inside_parenthesis' => true, + 'no_superfluous_elseif' => false, // Might be risky on a huge code base + 'no_superfluous_phpdoc_tags' => ['allow_mixed' => true], + 'no_trailing_comma_in_list_call' => true, + 'no_trailing_comma_in_singleline_array' => true, + 'no_trailing_whitespace' => true, + 'no_trailing_whitespace_in_comment' => true, + 'no_unneeded_control_parentheses' => true, + 'no_unneeded_curly_braces' => true, + 'no_unneeded_final_method' => true, + 'no_unreachable_default_argument_value' => true, + 'no_unset_cast' => true, + 'no_unset_on_property' => true, + 'no_unused_imports' => true, + 'no_useless_else' => true, + 'no_useless_return' => true, + 'no_whitespace_before_comma_in_array' => true, + 'no_whitespace_in_blank_line' => true, + 'non_printable_character' => true, + 'normalize_index_brace' => true, + 'not_operator_with_space' => false, // No we prefer to keep '!' without spaces + 'not_operator_with_successor_space' => false, // idem + 'nullable_type_declaration_for_default_null_value' => true, + 'object_operator_without_whitespace' => true, + 'ordered_class_elements' => false, // We prefer to keep some freedom + 'ordered_imports' => true, + 'ordered_interfaces' => true, + 'php_unit_construct' => true, + 'php_unit_dedicate_assert' => true, + 'php_unit_dedicate_assert_internal_type' => true, + 'php_unit_expectation' => true, + 'php_unit_fqcn_annotation' => true, + 'php_unit_internal_class' => false, // Because tests are excluded from package + 'php_unit_method_casing' => true, + 'php_unit_mock' => true, + 'php_unit_mock_short_will_return' => true, + 'php_unit_namespaced' => true, + 'php_unit_no_expectation_annotation' => true, + 'phpdoc_order_by_value' => ['annotations' => ['covers']], + 'php_unit_set_up_tear_down_visibility' => true, + 'php_unit_size_class' => false, // That seems extra work to maintain for little benefits + 'php_unit_strict' => false, // We sometime actually need assertEquals + 'php_unit_test_annotation' => true, + 'php_unit_test_case_static_method_calls' => ['call_type' => 'self'], + 'php_unit_test_class_requires_covers' => false, // We don't care as much as we should about coverage + 'phpdoc_add_missing_param_annotation' => false, // Don't add things that bring no value + 'phpdoc_align' => false, // Waste of time + 'phpdoc_annotation_without_dot' => true, + 'phpdoc_indent' => true, + //'phpdoc_inline_tag' => true, + 'phpdoc_line_span' => false, // Unfortunately our old comments turn even uglier with this + 'phpdoc_no_access' => true, + 'phpdoc_no_alias_tag' => true, + 'phpdoc_no_empty_return' => true, + 'phpdoc_no_package' => true, + 'phpdoc_no_useless_inheritdoc' => true, + 'phpdoc_order' => true, + 'phpdoc_return_self_reference' => true, + 'phpdoc_scalar' => true, + 'phpdoc_separation' => true, + 'phpdoc_single_line_var_spacing' => true, + 'phpdoc_summary' => true, + 'phpdoc_to_comment' => false, // interferes with annotations + 'phpdoc_to_param_type' => false, // Because experimental, but interesting for one shot use + 'phpdoc_to_return_type' => false, // idem + 'phpdoc_trim' => true, + 'phpdoc_trim_consecutive_blank_line_separation' => true, + 'phpdoc_types' => true, + 'phpdoc_types_order' => true, + 'phpdoc_var_annotation_correct_order' => true, + 'phpdoc_var_without_name' => true, + 'pow_to_exponentiation' => true, + 'protected_to_private' => true, + 'psr_autoloading' => true, + 'random_api_migration' => true, + 'return_assignment' => false, // Sometimes useful for clarity or debug + 'return_type_declaration' => true, + 'self_accessor' => true, + 'self_static_accessor' => true, + 'semicolon_after_instruction' => false, // Buggy in `samples/index.php` + 'set_type_to_cast' => true, + 'short_scalar_cast' => true, + 'simple_to_complex_string_variable' => false, // Would differ from TypeScript without obvious advantages + 'simplified_null_return' => false, // Even if technically correct we prefer to be explicit + 'single_blank_line_at_eof' => true, + 'single_blank_line_before_namespace' => true, + 'single_class_element_per_statement' => true, + 'single_import_per_statement' => true, + 'single_line_after_imports' => true, + 'single_line_comment_style' => true, + 'single_line_throw' => false, // I don't see any reason for having a special case for Exception + 'single_quote' => true, + 'single_trait_insert_per_statement' => true, + 'space_after_semicolon' => true, + 'standardize_increment' => true, + 'standardize_not_equals' => true, + 'static_lambda' => false, // Risky if we can't guarantee nobody use `bindTo()` + 'strict_comparison' => false, // No, too dangerous to change that + 'strict_param' => false, // No, too dangerous to change that + 'string_line_ending' => true, + 'switch_case_semicolon_to_colon' => true, + 'switch_case_space' => true, + 'ternary_operator_spaces' => true, + 'ternary_to_null_coalescing' => true, + 'trailing_comma_in_multiline' => true, + 'trim_array_spaces' => true, + 'unary_operator_spaces' => true, + 'visibility_required' => ['elements' => ['property', 'method']], // not const + 'void_return' => true, + 'whitespace_after_comma_in_array' => true, 'yoda_style' => false, - 'single_line_throw' => false, - 'no_alias_language_construct_call' => false, ]) ->getFinder() ->in(__DIR__) diff --git a/docs/changes/1.1.0.md b/docs/changes/1.1.0.md index 47613d194d..f92efb5674 100644 --- a/docs/changes/1.1.0.md +++ b/docs/changes/1.1.0.md @@ -1,11 +1,15 @@ -# 1.0.0 - WIP +# 1.1.0 - WIP ## Features -- Support for axis options - [@mindline](https://github.com/mindline-analytics) GH-676 +- Support for axis options - [@mindline](https://github.com/mindline-analytics) in [#676](https://github.com/PHPOffice/PHPPresentatio /pull/676) - Axis intersection point (axis crossing) through `setCrossesAt`/ `getCrossesAt` - Reverse axis order through `setIsReversedOrder`/ `isReversedOrder` - PowerPoint2007 Writer -- Support for Hyperlink Text Color - [@MartynasJanu](https://github.com/MartynasJanu) & [@Progi1984](https://github.com/Progi1984) GH-682 +- Support for Hyperlink Text Color - [@MartynasJanu](https://github.com/MartynasJanu) & [@Progi1984](https://github.com/Progi1984) in [#682](https://github.com/PHPOffice/PHPPresentatio /pull/682) - PowerPoint2007 Reader - PowerPoint2007 Writer + +## Bugfixes + +- Fixed CI - [@Progi1984](https://github.com/Progi1984) in [#766](https://github.com/PHPOffice/PHPPresentatio /pull/766) \ No newline at end of file diff --git a/phpunit.xml.dist b/phpunit.xml.dist index a9f7e2189e..bb1e1593b1 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,24 +1,33 @@ - - - - ./tests/PhpPresentation - - - - - ./src - - - - - - - + + + + + ./src + + + + + + + + + + + + ./tests/PhpPresentation/Tests + + + + \ No newline at end of file diff --git a/samples/Sample_03_Image.php b/samples/Sample_03_Image.php index 8c6e0e847c..888c5ba971 100644 --- a/samples/Sample_03_Image.php +++ b/samples/Sample_03_Image.php @@ -17,7 +17,7 @@ // Generate an image echo date('H:i:s') . ' Generate an image' . EOL; -$gdImage = @imagecreatetruecolor(140, 20) or exit('Cannot Initialize new GD image stream'); +$gdImage = imagecreatetruecolor(140, 20); $textColor = imagecolorallocate($gdImage, 255, 255, 255); imagestring($gdImage, 1, 5, 5, 'Created with PHPPresentation', $textColor); diff --git a/samples/Sample_05_Chart.php b/samples/Sample_05_Chart.php index 9169b1f43b..201d9a46a4 100644 --- a/samples/Sample_05_Chart.php +++ b/samples/Sample_05_Chart.php @@ -21,7 +21,7 @@ use PhpOffice\PhpPresentation\Style\Fill; use PhpOffice\PhpPresentation\Style\Shadow; -function fnSlide_Area(PhpPresentation $objPHPPresentation) +function fnSlide_Area(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -71,7 +71,7 @@ function fnSlide_Area(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Bar(PhpPresentation $objPHPPresentation) +function fnSlide_Bar(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -125,7 +125,7 @@ function fnSlide_Bar(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_BarHorizontal(PhpPresentation $objPHPPresentation) +function fnSlide_BarHorizontal(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -161,7 +161,7 @@ function fnSlide_BarHorizontal(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_BarStacked(PhpPresentation $objPHPPresentation) +function fnSlide_BarStacked(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -223,7 +223,7 @@ function fnSlide_BarStacked(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_BarPercentStacked(PhpPresentation $objPHPPresentation) +function fnSlide_BarPercentStacked(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -302,7 +302,7 @@ function fnSlide_BarPercentStacked(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Bar3D(PhpPresentation $objPHPPresentation) +function fnSlide_Bar3D(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -356,7 +356,7 @@ function fnSlide_Bar3D(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Bar3DHorizontal(PhpPresentation $objPHPPresentation) +function fnSlide_Bar3DHorizontal(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -395,7 +395,7 @@ function fnSlide_Bar3DHorizontal(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Doughnut(PhpPresentation $objPHPPresentation) +function fnSlide_Doughnut(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -450,7 +450,7 @@ function fnSlide_Doughnut(PhpPresentation $objPHPPresentation) $shape->getLegend()->setPosition(Legend::POSITION_LEFT); } -function fnSlide_Pie3D(PhpPresentation $objPHPPresentation) +function fnSlide_Pie3D(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -499,7 +499,7 @@ function fnSlide_Pie3D(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Pie(PhpPresentation $objPHPPresentation) +function fnSlide_Pie(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -550,7 +550,7 @@ function fnSlide_Pie(PhpPresentation $objPHPPresentation) $shape->getLegend()->getFont()->setItalic(true); } -function fnSlide_Radar(PhpPresentation $objPHPPresentation) +function fnSlide_Radar(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; @@ -607,7 +607,7 @@ function fnSlide_Radar(PhpPresentation $objPHPPresentation) ->setStartColor(new Color(Color::COLOR_BLUE)); // 0000FF } -function fnSlide_Scatter(PhpPresentation $objPHPPresentation) +function fnSlide_Scatter(PhpPresentation $objPHPPresentation): void { global $oFill; global $oShadow; diff --git a/samples/Sample_06_Fill.php b/samples/Sample_06_Fill.php index e917a34f90..41bc149a61 100644 --- a/samples/Sample_06_Fill.php +++ b/samples/Sample_06_Fill.php @@ -46,15 +46,19 @@ switch ($inc) { case 1: $shape->getFill()->setFillType(Fill::FILL_NONE); + break; case 2: $shape->getFill()->setFillType(Fill::FILL_GRADIENT_LINEAR)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF000000')); + break; case 3: $shape->getFill()->setFillType(Fill::FILL_GRADIENT_PATH)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF000000')); + break; case 4: $shape->getFill()->setFillType(Fill::FILL_SOLID)->setRotation(90)->setStartColor(new Color('FF4672A8'))->setEndColor(new Color('FF4672A8')); + break; } diff --git a/samples/Sample_07_Border.php b/samples/Sample_07_Border.php index 24816fedda..fff1aa1bb2 100644 --- a/samples/Sample_07_Border.php +++ b/samples/Sample_07_Border.php @@ -38,15 +38,19 @@ switch ($inc) { case 1: $shape->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_SOLID)->setLineStyle(Border::LINE_DOUBLE); + break; case 2: $shape->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_DASH)->setLineStyle(Border::LINE_SINGLE); + break; case 3: $shape->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_DOT)->setLineStyle(Border::LINE_THICKTHIN); + break; case 4: $shape->getBorder()->setColor(new Color('FF4672A8'))->setDashStyle(Border::DASH_LARGEDASHDOT)->setLineStyle(Border::LINE_THINTHICK); + break; } diff --git a/samples/Sample_11_Shape.php b/samples/Sample_11_Shape.php index 37dc5a221d..af3059f2b4 100644 --- a/samples/Sample_11_Shape.php +++ b/samples/Sample_11_Shape.php @@ -7,7 +7,7 @@ include_once 'Sample_Header.php'; -function fnSlideRichText(PhpPresentation $objPHPPresentation) +function fnSlideRichText(PhpPresentation $objPHPPresentation): void { // Create templated slide echo date('H:i:s') . ' Create templated slide' . EOL; @@ -35,7 +35,7 @@ function fnSlideRichText(PhpPresentation $objPHPPresentation) $textRun->getFont()->setColor(new Color('FF000000')); } -function fnSlideRichTextLineSpacing(PhpPresentation $objPHPPresentation) +function fnSlideRichTextLineSpacing(PhpPresentation $objPHPPresentation): void { // Create templated slide echo date('H:i:s') . ' Create templated slide' . EOL; @@ -81,7 +81,7 @@ function fnSlideRichTextLineSpacing(PhpPresentation $objPHPPresentation) $shape->createTextRun('Line Spacing 300'); } -function fnSlideRichTextShadow(PhpPresentation $objPHPPresentation) +function fnSlideRichTextShadow(PhpPresentation $objPHPPresentation): void { // Create templated slide echo date('H:i:s') . ' Create templated slide' . EOL; @@ -101,7 +101,7 @@ function fnSlideRichTextShadow(PhpPresentation $objPHPPresentation) $textRun->getFont()->setColor(new Color('FF000000')); } -function fnSlideRichTextList(PhpPresentation $objPHPPresentation) +function fnSlideRichTextList(PhpPresentation $objPHPPresentation): void { // Create templated slide echo date('H:i:s') . ' Create templated slide' . EOL; diff --git a/samples/Sample_15_Background.php b/samples/Sample_15_Background.php index 74135eeceb..9e1280fd99 100644 --- a/samples/Sample_15_Background.php +++ b/samples/Sample_15_Background.php @@ -29,9 +29,7 @@ $oSlide2->addShape(clone $oShapeRichText); // Slide > Background > Image -/* - * @link : http://publicdomainarchive.com/public-domain-images-cave-red-rocks-light-beam-cavern/ - */ +// @link : http://publicdomainarchive.com/public-domain-images-cave-red-rocks-light-beam-cavern/ $oBkgImage = new Image(); $oBkgImage->setPath(__DIR__ . '/resources/background.jpg'); $oSlide2->setBackground($oBkgImage); diff --git a/samples/Sample_Header.php b/samples/Sample_Header.php index eb16a62a3c..0ed440b98d 100644 --- a/samples/Sample_Header.php +++ b/samples/Sample_Header.php @@ -1,7 +1,7 @@ $extension) { $result .= date('H:i:s') . " Write to {$writer} format"; - if (!is_null($extension)) { + if (null !== $extension) { $xmlWriter = IOFactory::createWriter($phpPresentation, $writer); $xmlWriter->save(__DIR__ . "/{$filename}.{$extension}"); rename(__DIR__ . "/{$filename}.{$extension}", __DIR__ . "/results/{$filename}.{$extension}"); @@ -158,7 +158,7 @@ function getEndingNotes($writers) $result .= '

 

'; $result .= '

Results: '; foreach ($types as $type) { - if (!is_null($type)) { + if (null !== $type) { $resultFile = 'results/' . SCRIPT_FILENAME . '.' . $type; if (file_exists($resultFile)) { $result .= "{$type} "; @@ -174,12 +174,8 @@ function getEndingNotes($writers) /** * Creates a templated slide. - * - * @param PHPPresentation $objPHPPresentation - * - * @return \PhpOffice\PhpPresentation\Slide */ -function createTemplatedSlide(PhpOffice\PhpPresentation\PhpPresentation $objPHPPresentation) +function createTemplatedSlide(PHPPresentation $objPHPPresentation): Slide { // Create slide $slide = $objPHPPresentation->createSlide(); @@ -200,9 +196,10 @@ function createTemplatedSlide(PhpOffice\PhpPresentation\PhpPresentation $objPHPP return $slide; } -class PhpPptTree +class Sample_Header { protected $oPhpPresentation; + protected $htmlOutput; public function __construct(PhpPresentation $oPHPPpt) @@ -230,12 +227,12 @@ public function display() return $this->htmlOutput; } - protected function append($sHTML) + protected function append($sHTML): void { $this->htmlOutput .= $sHTML; } - protected function displayPhpPresentation(PhpPresentation $oPHPPpt) + protected function displayPhpPresentation(PhpPresentation $oPHPPpt): void { $this->append('

  • PhpPresentation'); $this->append('