{"id":3262,"date":"2014-05-30T19:28:38","date_gmt":"2014-05-30T19:28:38","guid":{"rendered":"https:\/\/www.inmotionhosting.com\/support\/2014\/05\/30\/docblocks\/"},"modified":"2020-10-06T15:31:42","modified_gmt":"2020-10-06T19:31:42","slug":"docblocks","status":"publish","type":"post","link":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/","title":{"rendered":"DocBlocks &#8211; Documentation headers in Joomla"},"content":{"rendered":"<style>   .table tbody td {text-align:left;} <\/style>\n<p>The knowledge is this article has been obtained from <a href=\"https:\/\/joomla.github.io\/coding-standards\/?coding-standards\/chapters\/docblocks.md\" target=\"_blank\" rel=\"noopener noreferrer\">this page<\/a>. While learning about DocBlocks, we felt the information in that article would be more easily absorbed if reformatted.<\/p>\n<h2>What is a DocBlock?<\/h2>\n<p><strong>DocBlocks<\/strong>, short for <strong>Documentation Blocks<\/strong>, are notes that describe what certain sections of code do.<\/p>\n<p>There are 1000&#8217;s of lines of code within Joomla. Documentation blocks (<em>written by the developers<\/em>) help others looking at the code understand what exactly the code is \/ does.<\/p>\n<h2>Where do DocBlocks go?<\/h2>\n<p>DocBlocks go above the code it is describing, but not every section of code needs a DocBlock above it. The following is a list of where within Joomla code DocBlocks are needed:<\/p>\n<ul>\n<li>Files<\/li>\n<li>Class Definitions<\/li>\n<li>Class Properties<\/li>\n<li>Class Methods<\/li>\n<\/ul>\n<h2>DocBlock Formatting<\/h2>\n<table class=\"table table-striped table-bordered\">\n<tbody>\n<tr>\n<th>Spaces,\u00a0not\u00a0tabs<\/th>\n<td>\n<ul>\n<li>Instead of using a tab \/ indent, use <strong>two spaces<\/strong>.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>Credit<\/th>\n<td>\n<ul>\n<li>Instead of getting credit for the code you&#8217;ve contributed using the @author tag, update the CREDITS.php file.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>3rd\u00a0Party\u00a0Code<\/th>\n<td>\n<ul>\n<li>Leave 3rd party DocBlocks as they are.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>DocBlock Headers<\/h2>\n<p>The type of information found within a DocBlock is categorized into different &#8220;headers&#8221;, and some headers are required while others are not.<\/p>\n<p>Below is a list of optional \/ required headers, along with helpful notes.<\/p>\n<p class=\"alert alert-danger\">The headers should be written in the order they are found below!<\/p>\n<div class=\"in_this_tutorial\">\n<h2>DocBlock Types:<\/h2>\n<p>Files Class Definitions Class Properties Class Methods<\/p>\n<\/div>\n<p><a name=\"file\"><\/a><\/p>\n<h3>Files<\/h3>\n<table class=\"table table-striped\">\n<tbody>\n<tr>\n<th>Header<\/th>\n<th>Requirement<\/th>\n<th>Additional notes<\/th>\n<\/tr>\n<tr>\n<th>Short\u00a0description<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>\n<ul>\n<li><span style=\"color: green;\">Optional<\/span>, unless the file contains more than two classes or functions.<\/li>\n<li>Followed by a blank line.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>Long\u00a0Description<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Followed by a blank line.<\/td>\n<\/tr>\n<tr>\n<th>@category<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Rarely used<\/td>\n<\/tr>\n<tr>\n<th>@package<\/th>\n<td><span style=\"color: orange;\">generally optional<\/span><\/td>\n<td>Required when files contain only procedural code<\/td>\n<\/tr>\n<tr>\n<th>@subpackage<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@author<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Only allowed on non-joomla source files (like 3rd party extensions)<\/td>\n<\/tr>\n<tr>\n<th>@copyright<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@license<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>Must be compatible with the Joomla license<\/td>\n<\/tr>\n<tr>\n<th>@deprecated<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@link<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@see<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@since<\/th>\n<td><span style=\"color: orange;\">generally optional<\/span><\/td>\n<td>Required when files contain only procedural code<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Example File DocBlock<\/h4>\n<pre class=\"code_block\"> &lt;?php <span style=\"color: green;\">\/**  * @package     Joomla.Platform  * @subpackage  Database  *  * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.  * @license     GNU General Public License version 2 or later; see LICENSE  *\/<\/span>  defined('JPATH_PLATFORM') or die;<\/pre>\n<p><a name=\"definition\"><\/a><\/p>\n<h3>Class Definition<\/h3>\n<table class=\"table table-striped\">\n<tbody>\n<tr>\n<th>Header<\/th>\n<th>Requirement<\/th>\n<th>Additional notes<\/th>\n<\/tr>\n<tr>\n<th>Short Description<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>\n<ul>\n<li>Unless the file contains more than two classes or functions<\/li>\n<li>Followed by a blank line.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>Long Description<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Followed by a blank line.<\/td>\n<\/tr>\n<tr>\n<th>@category<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Rarely used.<\/td>\n<\/tr>\n<tr>\n<th>@package<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@subpackage<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@author<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Only allowed on non-joomla source files (like 3rd party extensions)<\/td>\n<\/tr>\n<tr>\n<th>@copyright<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Unless different from the file DocBlock.<\/td>\n<\/tr>\n<tr>\n<th>@license<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Unless different from the file DocBlock.<\/td>\n<\/tr>\n<tr>\n<th>@deprecated<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@link<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@see<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@since<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>@since should be the version of the software the class was introduced.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Example Class Definition DocBlock<\/h4>\n<pre class=\"code_block\"> \/**  * Controller class to initialise the database for the Joomla Installer.  *  * @package     Joomla.Installation  * @subpackage  Controller  * @since       3.1  *\/<\/pre>\n<p><a name=\"property\"><\/a><\/p>\n<h3>Class Property<\/h3>\n<table class=\"table table-striped\">\n<tbody>\n<tr>\n<th>Header<\/th>\n<th>Requirement<\/th>\n<th>Additional notes<\/th>\n<\/tr>\n<tr>\n<th>Short Description<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>\n<ul>\n<li>Unless the file contains more than two classes or functions<\/li>\n<li>Followed by a blank line.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>@var<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>Followed by the property type.<\/td>\n<\/tr>\n<tr>\n<th>@deprecated<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<th>@since<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Example Class Property DocBlock<\/h4>\n<pre class=\"code_block\">     <span style=\"color: green;\">\/**      * The generated user ID      *      * @var    integer      * @since  3.1      *\/<\/span>     protected static $userId = 0;<\/pre>\n<p><a name=\"method\"><\/a><\/p>\n<h3>Class Method \/ Function<\/h3>\n<table class=\"table table-striped\">\n<tbody>\n<tr>\n<th>Header<\/th>\n<th>Requirement<\/th>\n<th>Additional notes<\/th>\n<\/tr>\n<tr>\n<th>Short Description<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>\n<ul>\n<li>Unless the file contains more than two classes or functions<\/li>\n<li>Followed by a blank line.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>Long Description<\/th>\n<td><span style=\"color: green;\">optional<\/span><\/td>\n<td>Followed by a blank line.<\/td>\n<\/tr>\n<tr>\n<th>@param<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>\n<ul>\n<li><span style=\"color: red;\">Required<\/span> if there are method or function arguments.<\/li>\n<li>The last @param tag is followed by a blank line.<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr>\n<th>@return<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td>Followed by a blank line.<\/td>\n<\/tr>\n<tr>\n<th>@since<\/th>\n<td><span style=\"color: red;\">required<\/span><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Example Class Method DocBlock<\/h4>\n<pre class=\"code_block\">     <span style=\"color: green; word-wrap: normal;\">\/**      * Set a controller class suffix for a given HTTP method.      *      * @package Joomla.Framework      * @subpackage Router       *      *      * @param   string  $method  The HTTP method for which to set the class suffix.      * @param   string  $suffix  The class suffix to use when fetching the controller name for a given request.      *      * @return  Router  Returns itself to support chaining.      *      * @since   1.0      *\/<\/span>     public function setHttpMethodSuffix($method, $suffix)<\/pre>\n<h2>Example file<\/h2>\n<p>Now that we&#8217;ve finished our review of the do&#8217;s and don&#8217;ts of DocBlocks, let&#8217;s see them in action. Below is an actual file from Joomla! &#8211; <em>components\/com_content\/models\/categories.php<\/em>. We&#8217;ve highlighted the various DocBlock types in different colors to make it easier to review.<\/p>\n<table class=\"table table-striped table-bordered\">\n<tbody>\n<tr style=\"color: red;\">\n<td>File DocBlock<\/td>\n<td>highlighted in red<\/td>\n<\/tr>\n<tr style=\"color: green;\">\n<td>Class Definition DocBlock<\/td>\n<td>highlighted in green<\/td>\n<\/tr>\n<tr style=\"color: orange;\">\n<td>Class Property DocBlock<\/td>\n<td>highlighted in orange<\/td>\n<\/tr>\n<tr style=\"color: purple;\">\n<td>Class Method DocBlock<\/td>\n<td>highlighted in purple<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre class=\"code_block\" style=\"word-wrap: normal;\"> EXAMPLE FILE: components\/com_content\/models\/categories.php  &lt;?php <span style=\"color: red; font-weight: bold; background: #FFE5E5;\">\/**  * @package     Joomla.Site  * @subpackage  com_content  *  * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.  * @license     GNU General Public License version 2 or later; see LICENSE.txt  *\/<\/span>  defined('_JEXEC') or die;  <span style=\"color: green; font-weight: bold; background: #E5FFE5;\">\/**  * This models supports retrieving lists of article categories.  *  * @package     Joomla.Site  * @subpackage  com_content  * @since       1.6  *\/<\/span> class ContentModelCategories extends JModelList {         <span style=\"color: orange; font-weight: bold; background: #FFFFE5;\">\/**          * Model context string.          *          * @var         string          *\/<\/span>         public $_context = 'com_content.categories';          <span style=\"color: orange; font-weight: bold; background: #FFFFE5;\">\/**          * The category context (allows other extensions to derived from this model).          *          * @var         string          *\/<\/span>         protected $_extension = 'com_content';          private $_parent = null;          private $_items = null;          <span style=\"color: purple; font-weight: bold; background: #FFE5F2;\">\/**          * Method to auto-populate the model state.          *          * Note. Calling getState in this method will result in recursion.          *          * @since   1.6          *\/<\/span>         protected function populateState($ordering = null, $direction = null)         {                 $app = JFactory::getApplication();                 $this-&gt;setState('filter.extension', $this-&gt;_extension);                  \/\/ Get the parent id if defined.                 $parentId = $app-&gt;input-&gt;getInt('id');                 $this-&gt;setState('filter.parentId', $parentId);                  $params = $app-&gt;getParams();                 $this-&gt;setState('params', $params);                  $this-&gt;setState('filter.published',     1);                 $this-&gt;setState('filter.access',        true);         }          <span style=\"color: purple; font-weight: bold; background: #FFE5F2;\">\/**          * Method to get a store id based on model configuration state.          *          * This is necessary because the model is used by the component and          * different modules that might need different sets of data or different          * ordering requirements.          *          * @param   string  $id A prefix for the store id.          *          * @return  string  A store id.          *\/<\/span>         protected function getStoreId($id = '')         {                 \/\/ Compile the store id.                 $id     .= ':'.$this-&gt;getState('filter.extension');                 $id     .= ':'.$this-&gt;getState('filter.published');                 $id     .= ':'.$this-&gt;getState('filter.access');                 $id     .= ':'.$this-&gt;getState('filter.parentId');                  return parent::getStoreId($id);         }          <span style=\"color: purple; font-weight: bold; background: #FFE5F2;\">\/**          * Redefine the function an add some properties to make the styling more easy          *          * @param   bool        $recursive      True if you want to return children recursively.          *          * @return  mixed  An array of data items on success, false on failure.          * @since   1.6          *\/<\/span>         public function getItems($recursive = false)         {                 if (!count($this-&gt;_items))                 {                         $app = JFactory::getApplication();                         $menu = $app-&gt;getMenu();                         $active = $menu-&gt;getActive();                         $params = new JRegistry;                          if ($active)                         {                                 $params-&gt;loadString($active-&gt;params);                         }                          $options = array();                         $options['countItems'] = $params-&gt;get('show_cat_num_articles_cat', 1) || !$params-&gt;get('show_empty_categories_cat', 0);                         $categories = JCategories::getInstance('Content', $options);                         $this-&gt;_parent = $categories-&gt;get($this-&gt;getState('filter.parentId', 'root'));                          if (is_object($this-&gt;_parent))                         {                                 $this-&gt;_items = $this-&gt;_parent-&gt;getChildren($recursive);                         }                         else {                                 $this-&gt;_items = false;                         }                 }                  return $this-&gt;_items;         }          public function getParent()         {                 if (!is_object($this-&gt;_parent))                 {                         $this-&gt;getItems();                 }                  return $this-&gt;_parent;         } }<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The knowledge is this article has been obtained from this page. While learning about DocBlocks, we felt the information in that article would be more easily absorbed if reformatted. What is a DocBlock? DocBlocks, short for Documentation Blocks, are notes that describe what certain sections of code do. There are 1000&#8217;s of lines of code<a class=\"moretag\" href=\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\"> Read More ><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4403,94],"tags":[4404],"class_list":["post-3262","post","type-post","status-publish","format-standard","hentry","category-joomla","category-joomla-3","tag-joomla-v3"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>DocBlocks - Documentation headers in Joomla | InMotion Hosting<\/title>\n<meta name=\"description\" content=\"In this tutorial we&#039;ll try to explain what and how to use DocBlocks in Joomla 3.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DocBlocks - Documentation headers in Joomla | InMotion Hosting\" \/>\n<meta property=\"og:description\" content=\"In this tutorial we&#039;ll try to explain what and how to use DocBlocks in Joomla 3.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\" \/>\n<meta property=\"og:site_name\" content=\"InMotion Hosting Support Center\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inmotionhosting\/\" \/>\n<meta property=\"article:published_time\" content=\"2014-05-30T19:28:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-06T19:31:42+00:00\" \/>\n<meta name=\"author\" content=\"Brad Markle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@InMotionHosting\" \/>\n<meta name=\"twitter:site\" content=\"@InMotionHosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brad Markle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\"},\"author\":{\"name\":\"Brad Markle\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/5ae05d1210b0ef63c437ccedce2799bf\"},\"headline\":\"DocBlocks &#8211; Documentation headers in Joomla\",\"datePublished\":\"2014-05-30T19:28:38+00:00\",\"dateModified\":\"2020-10-06T19:31:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\"},\"wordCount\":590,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\"},\"keywords\":[\"Joomla v3\"],\"articleSection\":[\"Joomla\",\"Joomla 3\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\",\"name\":\"DocBlocks - Documentation headers in Joomla | InMotion Hosting\",\"isPartOf\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#website\"},\"datePublished\":\"2014-05-30T19:28:38+00:00\",\"dateModified\":\"2020-10-06T19:31:42+00:00\",\"description\":\"In this tutorial we'll try to explain what and how to use DocBlocks in Joomla 3.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.inmotionhosting.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DocBlocks &#8211; Documentation headers in Joomla\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#website\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/\",\"name\":\"InMotion Hosting Support Center\",\"description\":\"Web Hosting Support &amp; Tutorials\",\"publisher\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.inmotionhosting.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#organization\",\"name\":\"InMotion Hosting\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg\",\"contentUrl\":\"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg\",\"width\":696,\"height\":696,\"caption\":\"InMotion Hosting\"},\"image\":{\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/inmotionhosting\/\",\"https:\/\/x.com\/InMotionHosting\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/5ae05d1210b0ef63c437ccedce2799bf\",\"name\":\"Brad Markle\",\"url\":\"https:\/\/www.inmotionhosting.com\/support\/author\/bradm\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DocBlocks - Documentation headers in Joomla | InMotion Hosting","description":"In this tutorial we'll try to explain what and how to use DocBlocks in Joomla 3.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/","og_locale":"en_US","og_type":"article","og_title":"DocBlocks - Documentation headers in Joomla | InMotion Hosting","og_description":"In this tutorial we'll try to explain what and how to use DocBlocks in Joomla 3.","og_url":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/","og_site_name":"InMotion Hosting Support Center","article_publisher":"https:\/\/www.facebook.com\/inmotionhosting\/","article_published_time":"2014-05-30T19:28:38+00:00","article_modified_time":"2020-10-06T19:31:42+00:00","author":"Brad Markle","twitter_card":"summary_large_image","twitter_creator":"@InMotionHosting","twitter_site":"@InMotionHosting","twitter_misc":{"Written by":"Brad Markle","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#article","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/"},"author":{"name":"Brad Markle","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/5ae05d1210b0ef63c437ccedce2799bf"},"headline":"DocBlocks &#8211; Documentation headers in Joomla","datePublished":"2014-05-30T19:28:38+00:00","dateModified":"2020-10-06T19:31:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/"},"wordCount":590,"commentCount":0,"publisher":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#organization"},"keywords":["Joomla v3"],"articleSection":["Joomla","Joomla 3"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/","url":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/","name":"DocBlocks - Documentation headers in Joomla | InMotion Hosting","isPartOf":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#website"},"datePublished":"2014-05-30T19:28:38+00:00","dateModified":"2020-10-06T19:31:42+00:00","description":"In this tutorial we'll try to explain what and how to use DocBlocks in Joomla 3.","breadcrumb":{"@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.inmotionhosting.com\/support\/edu\/joomla\/joomla-3\/docblocks\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inmotionhosting.com\/support\/"},{"@type":"ListItem","position":2,"name":"DocBlocks &#8211; Documentation headers in Joomla"}]},{"@type":"WebSite","@id":"https:\/\/www.inmotionhosting.com\/support\/#website","url":"https:\/\/www.inmotionhosting.com\/support\/","name":"InMotion Hosting Support Center","description":"Web Hosting Support &amp; Tutorials","publisher":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inmotionhosting.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.inmotionhosting.com\/support\/#organization","name":"InMotion Hosting","url":"https:\/\/www.inmotionhosting.com\/support\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/","url":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg","contentUrl":"https:\/\/www.inmotionhosting.com\/support\/wp-content\/uploads\/2023\/02\/inmotion-hosting-logo-yoast.jpg","width":696,"height":696,"caption":"InMotion Hosting"},"image":{"@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inmotionhosting\/","https:\/\/x.com\/InMotionHosting"]},{"@type":"Person","@id":"https:\/\/www.inmotionhosting.com\/support\/#\/schema\/person\/5ae05d1210b0ef63c437ccedce2799bf","name":"Brad Markle","url":"https:\/\/www.inmotionhosting.com\/support\/author\/bradm\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"primary_category":null,"_links":{"self":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/3262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/comments?post=3262"}],"version-history":[{"count":2,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/3262\/revisions"}],"predecessor-version":[{"id":61571,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/posts\/3262\/revisions\/61571"}],"wp:attachment":[{"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/media?parent=3262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/categories?post=3262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inmotionhosting.com\/support\/wp-json\/wp\/v2\/tags?post=3262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}