{"id":27142,"date":"2016-12-16T09:37:23","date_gmt":"2016-12-16T07:37:23","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=27142"},"modified":"2016-12-16T09:37:23","modified_gmt":"2016-12-16T07:37:23","slug":"php-package-development-standards","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/","title":{"rendered":"PHP Package Development Standards"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"http:\/\/paul-m-jones.com\/archives\/6457\">Paul M. Jones announces<\/a> the availability of <a href=\"http:\/\/php-pds.com\/\">PHP Package Development Standards<\/a> for review:<\/p>\n<blockquote><p>This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors.<\/p>\n<p>PDS publications are derived from and supported by common practices existing in real packages, as adopted by existing authors who have a continuing interest in the quality and consistency of their own work.<\/p><\/blockquote>\n<p>Have a look at <a href=\"https:\/\/github.com\/php-pds\/skeleton\">php-pds\/skeleton<\/a> GitHub repository.<\/p>\n<p>Personally, I welcome this initiative. \u00a0PHP ecosystem exploded in the recent years with the help of <a href=\"http:\/\/getcomposer.org\">composer<\/a> and <a href=\"https:\/\/packagist.org\/\">Packagist.org<\/a>. \u00a0There are <a href=\"https:\/\/packagist.org\/statistics\">over 120,000 packages<\/a> just on the Packagist.org. \u00a0I think, it&#8217;s good to have some standards and best practices. \u00a0The <a href=\"http:\/\/www.php-fig.org\/\">PHP Framework Interop Group<\/a> (PHP-FIG) is doing its best with the <a href=\"http:\/\/www.php-fig.org\/psr\/\">PHP Standards Recommendations<\/a> (PSRs). \u00a0But we could have some more guidelines in order to have some consistency.<\/p>\n<p><a href=\"http:\/\/php-pds.com\/\">PHP Package Development Standards<\/a> takes, in my opinion, the right way of looking at what&#8217;s out there, what works and what doesn&#8217;t, and than setting the guidelines based on the real world practices. \u00a0They cover things like file and directory naming conventions, versioning, changelog and licensing &#8211; which are common issues for pretty much every package.<\/p>\n<p>Looking at the packages that I am involved with, only a few minor changes are necessary to comply. \u00a0Mostly, the &#8220;<em>config<\/em>&#8221; folder instead of the Unix-style &#8220;<em>etc<\/em>&#8220;, CONTRIBUTING file, and a CHANGELOG file, which I&#8217;m still to find a good way to semi-automate.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PHP Package Development Standards<\/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_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"PHP Package Development Standards #PHP #WebDev #standards #BestPracticies","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},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[3069,38,1216,1330],"keyring_services":[],"class_list":["post-27142","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-best-practices","tag-php","tag-standards","tag-web-development"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"PHP Package Development Standards - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-12-16T07:37:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-12-16T07:37:23+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"PHP Package Development Standards - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#blogposting\",\"name\":\"PHP Package Development Standards - Leonid Mamchenkov\",\"headline\":\"PHP Package Development Standards\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2016-12-16T09:37:23+02:00\",\"dateModified\":\"2016-12-16T09:37:23+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":1,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, Web work, best practices, PHP, standards, web development\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#listItem\",\"name\":\"PHP Package Development Standards\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#listItem\",\"position\":4,\"name\":\"PHP Package Development Standards\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/\",\"name\":\"PHP Package Development Standards - Leonid Mamchenkov\",\"description\":\"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2016\\\/12\\\/16\\\/php-package-development-standards\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2016-12-16T09:37:23+02:00\",\"dateModified\":\"2016-12-16T09:37:23+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"PHP Package Development Standards - Leonid Mamchenkov","description":"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#blogposting","name":"PHP Package Development Standards - Leonid Mamchenkov","headline":"PHP Package Development Standards","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2016-12-16T09:37:23+02:00","dateModified":"2016-12-16T09:37:23+02:00","inLanguage":"en-US","commentCount":1,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#webpage"},"articleSection":"All, Programming, Technology, Web work, best practices, PHP, standards, web development"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#listItem","name":"PHP Package Development Standards"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#listItem","position":4,"name":"PHP Package Development Standards","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/","name":"PHP Package Development Standards - Leonid Mamchenkov","description":"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2016-12-16T09:37:23+02:00","dateModified":"2016-12-16T09:37:23+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"PHP Package Development Standards - Leonid Mamchenkov","og:description":"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing","og:url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2016-12-16T07:37:23+00:00","article:modified_time":"2016-12-16T07:37:23+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"PHP Package Development Standards - Leonid Mamchenkov","twitter:description":"Paul M. Jones announces the availability of PHP Package Development Standards for review: This initiative researches the PHP package ecosystem to recognize commonly adopted development practices. It rationalizes and refines those practices, then publishes them as PDS packages for reference by PHP package authors. PDS publications are derived from and supported by common practices existing","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"27142","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-20 04:14:38","updated":"2026-01-15 12:33:45","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tPHP Package Development Standards\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"PHP Package Development Standards","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/16\/php-package-development-standards\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27321,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/02\/10\/pdsskeleton-is-now-stable\/","url_meta":{"origin":27142,"position":0},"title":"pds\/skeleton is now stable","author":"Leonid Mamchenkov","date":"February 10, 2017","format":false,"excerpt":"PHP Package Development Standard, aka pds\/skeleton, is now stable. \u00a0I've linked to it before and I think it's a great idea and I'm glad I'm not alone: Roughly 78,000 packages already comply with the pds\/skeleton standard, although they may not know it. To formally show that your package has adopted\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\/02\/standards-500x283.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":24282,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/06\/02\/php-package-checklist\/","url_meta":{"origin":27142,"position":1},"title":"PHP Package Checklist","author":"Leonid Mamchenkov","date":"June 2, 2015","format":"link","excerpt":"PHP Package Checklist - now if only there was a tool attached to this that could generate the report against the package...","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"logo","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/06\/logo.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28003,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/13\/on-semantic-versioning\/","url_meta":{"origin":27142,"position":2},"title":"On Semantic Versioning","author":"Leonid Mamchenkov","date":"September 13, 2017","format":false,"excerpt":"First of all, you should know that versioning is important.\u00a0 Even the worst versioning practices provide more value than no versioning at all.\u00a0 At work, we are big fans of the Semantic Versioning, and we use it for all our projects, plugins, and libraries.\u00a0 And I think, you should do\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\/09\/versioning-500x468.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28394,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/02\/19\/composer-local-packages-for-dummies\/","url_meta":{"origin":27142,"position":3},"title":"Composer Local Packages for Dummies","author":"Leonid Mamchenkov","date":"February 19, 2018","format":false,"excerpt":"Composer (in combination with Packagist) is one technology that has significantly changed the ecosystem of the PHP programming language.\u00a0 Anybody working with PHP in this day and age MUST know how to use composer.\u00a0 However, not everyone does.\u00a0 So here is a nice tutorial on how to get started with\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\/02\/composer.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27245,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/01\/16\/phpmetrics-a-static-analysis-tool-for-php\/","url_meta":{"origin":27142,"position":4},"title":"PhpMetrics &#8211; a static analysis tool for PHP","author":"Leonid Mamchenkov","date":"January 16, 2017","format":false,"excerpt":"PHPMetrics is yet another tool for static analysis of your PHP codebase. \u00a0It aims to provide a simpler and easier to understand report, than all those other tools in the PHP ecosystem today.","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\/animated-demo-annoted-500x329.gif?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":28277,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/12\/11\/rector-reconstruct-legacy-php-codebase-to-modern-standards\/","url_meta":{"origin":27142,"position":5},"title":"rector &#8211; reconstruct legacy PHP codebase to modern standards","author":"Leonid Mamchenkov","date":"December 11, 2017","format":false,"excerpt":"rector looks like an excellent tool for those days when you need to rewrite large chunks of legacy code for the modern coding standards and best practices.\u00a0 Of course, there are IDEs that can help a lot with refactoring, but they are usually complex and slow.\u00a0 Regular expressions have always\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\/27142","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=27142"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/27142\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=27142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=27142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=27142"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=27142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}