6.0.0-git
2019-10-21

Diff for Doc/Dev/Libraries between 1 and 2

[[toc]]

+ Horde Library Structure

This page will document the structure of Horde 4 framework libraries (or any other library using Horde's coding standards and directory organization).

++ lib/

Contains source files. The full directory path should be represented here, so if the package name is Horde_Xml_Element, the structure would be:

<code>
lib/
  Horde/
    Xml/
      Element/
        ...
      Element.php
</code>

++ data/

Contains data files, such as SQL scripts.

++ doc/

Contains documentation files. Similar to lib/, the full tree is represented.

++ examples/

Contains example files.

++ script/

Contains command-line scripts

++ test/

Contains fixtures and PHPUnit tests. Follows the same full-tree approach.

++ Example Structure

Following these rules, a theoretical package with all of these kinds of files named Horde_Some_Package would look like this:

<code>
Some_Package/
  data/
    Horde/
      Some/
        Package/
          horde_something.sql

  doc/
    Horde/
      Some/
        Package/
          docbook.xml
          manual.txt

  examples/
    Horde/
      Some/
        Package/
          how_to_do_something.php

  lib/
    Horde/
      Some/
        Package/
          Adapter/
            Base.php
            Doohickey.php
        Package.php

This page will document the structure of Horde 4 framework libraries (or any other library using Horde's coding standards and directory organization).
  script/
    Horde/
      Some/
        Package/
          dosomething

  test/
    Horde/
      Some/
        Package/
          AllTests.php
          SomeTest.php
</code>

TODOThis may look a bit unwieldy, but the benefit of it is that you can unzip multiple packages in the same top level directory and have all of their files fall correctly in to place.