{"id":28559,"date":"2018-05-08T09:06:20","date_gmt":"2018-05-08T07:06:20","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=28559"},"modified":"2018-05-08T09:06:20","modified_gmt":"2018-05-08T07:06:20","slug":"composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools\/","title":{"rendered":"composer-plugin-qa &#8211; Composer Plugin for PHP Quality Assurance Tools"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa.jpeg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"28560\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools\/composer-plugin-qa\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa.jpeg?fit=690%2C409&amp;ssl=1\" data-orig-size=\"690,409\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"composer-plugin-qa\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa.jpeg?fit=660%2C391&amp;ssl=1\" class=\"aligncenter size-medium wp-image-28560\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa-500x296.jpeg?resize=500%2C296&#038;ssl=1\" alt=\"\" width=\"500\" height=\"296\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa.jpeg?resize=500%2C296&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2018\/05\/composer-plugin-qa.jpeg?w=690&amp;ssl=1 690w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/github.com\/Webysther\/composer-plugin-qa\">composer-plugin-qa<\/a> is a <a href=\"https:\/\/getcomposer.org\/\">Composer<\/a> plugin which adds all the most popular PHP quality assurance tools as <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/03\/19\/have-you-tried-composer-scripts-you-do-not-need-phing\/\">composer scripts<\/a>, so that you don&#8217;t have to install and set them up one by one.\u00a0 The list of tools includes the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/phpunit\">PHPUnit<\/a>: Testing Framework<\/li>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/phpcov\">PHPCOV<\/a>: CLI frontend for the\u00a0<a href=\"https:\/\/github.com\/sebastianbergmann\/php-code-coverage\">PHP_CodeCoverage<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/brianium\/paratest\">Paratest<\/a>: Parallel testing for PHPUnit<\/li>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/dbunit\">DbUnit<\/a>: Puts your database into a known state between test runs<\/li>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/phploc\">PHPLOC<\/a>: A tool for quickly measuring the size of a PHP project<\/li>\n<li><a href=\"https:\/\/github.com\/sebastianbergmann\/phpcpd\">PHPCPD<\/a>: Copy\/Paste Detector<\/li>\n<li><a href=\"https:\/\/github.com\/pdepend\/pdepend\">PHP_Depend<\/a>: Quality of your design in the terms of extensibility, reusability and maintainability<\/li>\n<li><a href=\"https:\/\/github.com\/phpmd\/phpmd\">PHPMD<\/a>: User friendly frontend application for the raw metrics stream measured by PHP Depend<\/li>\n<li><a href=\"https:\/\/github.com\/phpmetrics\/PhpMetrics\">PhpMetrics<\/a>: Static analysis tool, gives metrics about PHP project and classes<\/li>\n<li><a href=\"https:\/\/github.com\/squizlabs\/PHP_CodeSniffer\">PHP_CodeSniffer<\/a>: Detects violations of a defined set of coding standards<\/li>\n<li><a href=\"https:\/\/github.com\/FriendsOfPHP\/PHP-CS-Fixer\">PHP-CS-Fixer<\/a>: A tool to automatically fix coding standards issues<\/li>\n<li><a href=\"https:\/\/github.com\/sensiolabs\/security-checker\">Security-Checker<\/a>: Checks if your application uses dependencies with known security vulnerabilities<\/li>\n<\/ul>\n<p>This list is very similar to the one in my other <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/02\/code-quality-tools-in-php-to-check-and-improve-your-code\/\">recent post<\/a>.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>composer-plugin-qa is a Composer plugin which adds all the most popular PHP quality assurance tools as composer scripts, so that you don&#8217;t have to install and set them up one by one.\u00a0 The list of tools includes the following: PHPUnit: Testing Framework PHPCOV: CLI frontend for the\u00a0PHP_CodeCoverage Paratest: Parallel testing for PHPUnit DbUnit: Puts your &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">composer-plugin-qa &#8211; Composer Plugin for PHP Quality Assurance Tools<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"composer-plugin-qa - Composer Plugin for PHP Quality Assurance Tools #WebDev #PHP #composer #QA #testing","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3489,38,3074,1108,1330],"keyring_services":[],"class_list":["post-28559","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-composer","tag-php","tag-quality-assurance","tag-testing","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27299,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/08\/composer-plugin-development\/","url_meta":{"origin":28559,"position":0},"title":"Composer plugin development","author":"Leonid Mamchenkov","date":"February 8, 2017","format":false,"excerpt":"Composer is great as it is. \u00a0It's even greater with all those plugins that people have created for it. \u00a0But for when I'll need to write my own, I'm sure I'll find this blog post quite handy - \"A Composer plugin development environment\".","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27280,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/01\/31\/composer-patches-simple-patches-plugin-for-composer\/","url_meta":{"origin":28559,"position":1},"title":"composer-patches &#8211; Simple patches plugin for Composer","author":"Leonid Mamchenkov","date":"January 31, 2017","format":false,"excerpt":"composer-patches is a plugin for Composer which helps with applying patches to the installed dependencies. \u00a0It supports patches from URLs, local files, and from other dependencies. I think this is absolutely brilliant! It's quite often that one finds bugs and issues in external dependencies. \u00a0Once the bug (or even the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/01\/commit-500x263.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28490,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/18\/wordpress-plugin-boilerplate-a-standardized-organized-object-oriented-foundation-for-building-high-quality-wordpress-plugins\/","url_meta":{"origin":28559,"position":2},"title":"WordPress Plugin Boilerplate &#8211; a standardized, organized, object-oriented foundation for building high-quality WordPress Plugins","author":"Leonid Mamchenkov","date":"April 18, 2018","format":false,"excerpt":"WordPress is an excellent system for a whole lot of different projects and needs.\u00a0 It's widely used, fast, and flexible.\u00a0 However it does show its age in many ways.\u00a0 One of the areas where things could be a lot better and simpler is the WordPress plugin development. WordPress plugins are\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28431,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/03\/14\/updating-wordpress-with-composer-and-wp-cli\/","url_meta":{"origin":28559,"position":3},"title":"Updating WordPress with Composer and WP-CLI","author":"Leonid Mamchenkov","date":"March 14, 2018","format":false,"excerpt":"The other day I came across this blog post by\u00a0Mark Jaquith, who is one of the lead contributors to WordPress, in which he describes his process of updating WordPress plugins with WP-CLI and Git.\u00a0 I think a lot of people these days are trying to use Git for version control\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26051,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/04\/21\/adventure-in-composer-private-repositories\/","url_meta":{"origin":28559,"position":4},"title":"Adventure in composer private repositories","author":"Leonid Mamchenkov","date":"April 21, 2016","format":false,"excerpt":"First of all, I would like to take this opportunity and wish composer a happy birthday and many more years to come. \u00a0It's been five years, and the world of PHP has changed so drastically that not many people remember how it used to be before. I would have completely\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27363,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/26\/composer-require-inline-alias\/","url_meta":{"origin":28559,"position":5},"title":"Composer require inline alias","author":"Leonid Mamchenkov","date":"February 26, 2017","format":false,"excerpt":"Here's a feature of composer that I didn't know about until a few days ago - require inline alias. \u00a0Here's the example from the documentation: This is super useful when you have dependencies in your project that require a particular version of a third-party library or plugin, and you want\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=28559"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/28559\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=28559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=28559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=28559"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=28559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}