Documentation

Documentation resources

README.md

Your module directory should contain a README.md file. We recommend using the markdown format. The file should provide basic information about the extension, e.g.:

  • Title – the name of the module

  • Author – the author/company of the module

  • Prefix – the prefix you use

  • Version – version of the module which is described

  • Link – a link to the homepage of the author/company

  • Mail – email for contact

  • Description – a short description of the function of the module

  • Installation – a detailed description how to install the module

  • Modules – which other modules are used

  • Resources – other resources

Here is a (shortened) example:

The ... extension for OXID eShop 6
==================================

![Alt text for an image](an-image.jpg)

### List of features

* List item A
* List item B
* List item C

### Setup

For installation instructions please see...

### Module installation via Composer

Install this module...

CHANGELOG.md

The file CHANGELOG.md should contain a description of the changes that were added for each release. The latest releases should be on top of that file.

A simple example:

### 1.0.1

* Fixed a bug that prevented...

### 1.0.0

* Completed all features, tested and stable.

PHPDoc

You can provide a HTML document that contains the PHPdoc from the code’s comments. See also PHP comments.

Documentation directory

You can provide additional documentation materials inside a documentation directory (within the directory structore of the module), e.g. in PDF files.

PHP Comments

Add comments to your code. Each class, variable and method should have a comment. A comment should give additional information and not only repeat the name. See the following example:

<?php
/**
* Cupboard
*
* @package Furniture
* @version $Revision$
* @author
* @copyright Copyright (C) 2003-2017 Somecompany . All rights reserved.
* @license http://www.gnu.org/licenses/gpl-3.0.txt GPL
* @extend Base
*/
class Cupboard extends Cupboard_parent
{
/**
* Number of cups in the cupboard. Declared in units
*
* @var int
*/
protected $numberOfCups;
/**
* Take a cup from cupboard
*
* Reduces the amount of cups by the specified amount. If
* there are not enough cups left the cupboard is emptied. The actual amount
* of cups removed from the cupboard will be returned.
*
* @extend drink
* @param int $amount
* @return int
*/
public function take( $amount )
{
    // inline comment
    $this->numberOfCups -= $amount = max( $this->numberOfCups, $amount );
    return $amount;
}

Get rid of old standards

No copy_this directory

As the modules must be installable via Composer, an additional directory structure would make it complicated to install them. Your module package should have the vendor directory on top.

No changed_full directory

This directory is no longer needed.

No install.sql

Unlike in previous shop versions, the database setup should not happen with a SQL file, but rather using an installer with an onActivate() method as well as configurations in the settings array on the metadata.php file.