{"id":27879,"date":"2017-08-28T11:18:22","date_gmt":"2017-08-28T09:18:22","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27879"},"modified":"2017-08-28T11:18:22","modified_gmt":"2017-08-28T09:18:22","slug":"clean-code-solid-principles-applied-to-php","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/","title":{"rendered":"Clean Code SOLID principles applied to PHP"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/jupeter\/clean-code-php\">clean-code-php<\/a> is an excellent set of examples for the SOLID principles as applied to PHP programming:<\/p>\n<blockquote><p>Software engineering principles, from Robert C. Martin&#8217;s book\u00a0<a href=\"https:\/\/www.amazon.com\/Clean-Code-Handbook-Software-Craftsmanship\/dp\/0132350882\"><em>Clean Code<\/em><\/a>, adapted for PHP. This is not a style guide. It&#8217;s a guide to producing readable, reusable, and refactorable software in PHP.<\/p>\n<p>Not every principle herein has to be strictly followed, and even fewer will be universally agreed upon. These are guidelines and nothing more, but they are ones codified over many years of collective experience by the authors of\u00a0<em>Clean Code<\/em>.<\/p>\n<p>Inspired from\u00a0<a href=\"https:\/\/github.com\/ryanmcdermott\/clean-code-javascript\">clean-code-javascript<\/a><\/p><\/blockquote>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>clean-code-php is an excellent set of examples for the SOLID principles as applied to PHP programming: Software engineering principles, from Robert C. Martin&#8217;s book\u00a0Clean Code, adapted for PHP. This is not a style guide. It&#8217;s a guide to producing readable, reusable, and refactorable software in PHP. Not every principle herein has to be strictly followed, &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Clean Code SOLID principles applied to PHP<\/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":"Clean Code SOLID principles applied to PHP #WebDev #PHP #BestPractices","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":[3069,38,1330],"keyring_services":[],"class_list":["post-27879","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-best-practices","tag-php","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":204,"url":"https:\/\/mamchenkov.net\/wordpress\/2003\/04\/28\/porting-php-to-perl\/","url_meta":{"origin":27879,"position":0},"title":"Porting PHP to Perl","author":"Leonid Mamchenkov","date":"April 28, 2003","format":false,"excerpt":"I am doing lots of perl programming these days. And there is yet lots more to come. I am currently porting most of my PHP code base to Perl. This provides a good practice, as well as code review and clean-up. Although, I know that porting is somewhat easier then\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":28538,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/02\/code-quality-tools-in-php-to-check-and-improve-your-code\/","url_meta":{"origin":27879,"position":1},"title":"Code quality tools in PHP to check and improve your code","author":"Leonid Mamchenkov","date":"May 2, 2018","format":false,"excerpt":"\"Code quality tools in PHP to check and improve your code\" is a list of both some very well known tools and some new kids on the block.\u00a0 The article covers the following: PHP-CS-Fixer Documentation Github PHPCS Documentation Github PHPMD Documenation Official website PHPStan Github PHPUnit Documentation Github PHPLoc Github\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":28612,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/07\/weird-operators-in-php\/","url_meta":{"origin":27879,"position":2},"title":"Weird operators in PHP","author":"Leonid Mamchenkov","date":"June 7, 2018","format":false,"excerpt":"\"Weird operators in PHP\" covers a variety of awkward and weird operators in PHP.\u00a0 I don't think I'll ever write any code using any of these.\u00a0 But in case I come across any code in the future, that utilizes them, I should be sure to search back in the archives\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\/2018\/06\/impossible.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":29219,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/01\/14\/new-in-php-7-4\/","url_meta":{"origin":27879,"position":3},"title":"New in PHP 7.4","author":"Leonid Mamchenkov","date":"January 14, 2019","format":false,"excerpt":"\"New in PHP 7.4\" is a quick and simple introduction into changes and new features of the upcoming PHP 7.4, which is planned for release in December of 2019. In brief: Preloading (parsed source code caching)Typed propertiesImproved type varianceFFI (Foreign Function Interface) - a way to run C code from\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":27454,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/03\/26\/phpqa-all-in-one-analyzer-cli-tool\/","url_meta":{"origin":27879,"position":4},"title":"PHPQA all-in-one Analyzer CLI tool","author":"Leonid Mamchenkov","date":"March 26, 2017","format":false,"excerpt":"PHPQA all-in-one Analyzer CLI tool. \u00a0This project bundles together all the usual PHP quality control tools, and then some. \u00a0It simplifies the installation and configuration of the tools and helps developers to push up the quality control bar on their projects. The tools currently included are: PHP Parallel Lint PHP\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\/03\/phplint-500x390.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28282,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/12\/18\/the-2018-guide-to-building-secure-php-software\/","url_meta":{"origin":27879,"position":5},"title":"The 2018 Guide to Building Secure PHP Software","author":"Leonid Mamchenkov","date":"December 18, 2017","format":false,"excerpt":"\"The 2018 Guide to Building Secure PHP Software\" is an excellent guide to writing modern PHP applications with security in mind.\u00a0 It covers a bunch of the usual topics, but provides fresher solutions than most other similar guides.","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\/12\/php-security-2018-500x204.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27879","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=27879"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27879\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27879"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27879"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27879"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27879"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}